/* Identidade visual VirtusLog — cores e fontes extraídas de https://virtuslog.com.br (assets/index-*.css, :root --virtus-dark/--virtus-red) */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/brand/fonts/inter-latin.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/brand/fonts/montserrat-latin.woff2) format("woff2")}
:root{--virtus-dark:#001f3f;--virtus-navy2:#0a2f5f;--virtus-red:#c41e3a;--virtus-red-dark:#a3182f;--virtus-blue:#004b9f;--virtus-gray:#f5f5f5;--bg:#f5f6f8;--card:#fff;--ink:#001f3f;--muted:#5b6576;--line:#e0e4ea;--brand:var(--virtus-dark);--brand2:var(--virtus-red);--accent:var(--virtus-red);--link:var(--virtus-blue);--ok:#15803d;--warn:#b45309;--err:#b91c1c;--radius:10px;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08)}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,.bname,.kpi-val{font-family:Montserrat,Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}h1{font-size:22px;margin:0 0 4px;font-weight:700}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:16px 0 8px}
.muted{color:var(--muted)}.small{font-size:12.5px}.sub{font-size:12px;color:var(--muted)}.strong{font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}
.ok{color:var(--ok)}.warn{color:var(--warn)}.danger{color:var(--err)!important}
.hidden{display:none!important}
.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:64px;background:#fff;color:var(--ink);border-bottom:3px solid var(--virtus-red);box-shadow:0 1px 3px rgba(0,31,63,.08);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:18px}.brand-logo{height:30px;width:auto;display:block}.brand:hover{text-decoration:none}.brand b{color:var(--brand2)}
.brand small{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:12px;white-space:nowrap;font-weight:600;letter-spacing:.02em}
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:7px;background:var(--brand2);color:var(--brand);font-weight:800}
.logo.big{width:44px;height:44px;font-size:22px;border-radius:10px}
.mainnav{display:flex;gap:4px;flex:1}.mainnav a{color:var(--ink);padding:8px 12px;border-radius:8px;font-weight:500}.mainnav a:hover{background:#f1f4f8;color:var(--virtus-red);text-decoration:none}.mainnav a.active{background:#fbe9ec;color:var(--virtus-red-dark);font-weight:600}
.userbox{display:flex;align-items:center;gap:12px}.who{display:flex;align-items:center;gap:8px;color:var(--ink)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--virtus-dark);color:#fff;display:inline-grid;place-items:center;font-weight:700}
.tag{font-style:normal;font-size:10px;background:var(--virtus-red);color:#fff;padding:1px 6px;border-radius:99px;margin-left:4px}
.btn-link{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}
.topbar .btn-link{color:var(--ink)}.topbar .btn-link:hover{color:var(--virtus-red)}
.container{max-width:1280px;margin:0 auto;padding:24px}
.foot{max-width:1280px;margin:0 auto;padding:8px 24px 32px;color:var(--muted);font-size:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}
.card.flush{padding:0;overflow-x:auto}.card.narrow{max-width:420px;margin:60px auto}.center{text-align:center}
.cardhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.backlink{display:inline-block;margin-bottom:8px;font-size:13px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2.wide-left{grid-template-columns:1.4fr 1fr}
.grid2>.card{margin-bottom:0}.grid2{margin-bottom:18px}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit;font-weight:500;white-space:nowrap}
.btn:hover{background:#f8fafc;text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--virtus-red-dark);border-color:var(--virtus-red-dark)}
.btn.danger{color:var(--err);border-color:#f3c4c4}.btn.sm{padding:4px 10px;font-size:12.5px}.btn.block{width:100%;justify-content:center;padding:10px}
input,select{font:inherit;border:1px solid #cfd8e3;border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);min-width:0}
input:focus,select:focus{outline:2px solid #f3c3cc;border-color:var(--accent)}
.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:4px;font-weight:500}
.form label.check,.form label.radio{flex-direction:row;align-items:center;gap:8px;font-weight:400}
.row{display:flex;gap:8px;flex-wrap:wrap}.row>input{flex:1}
.inline{display:flex;gap:8px;align-items:center}.grow{flex:1}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}.alert.ok{background:#ecfdf3;border-color:#abefc6;color:#05603a}
.alert.err{background:#fef3f2;border-color:#fecdca;color:#b42318}.alert.info{background:#eff8ff;border-color:#b2ddff;color:#175cd3}
.alert input.copy{width:100%;margin-top:6px}
.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px}
.w-cnpj{width:150px}
.seg{display:inline-flex;border:1px solid #cfd8e3;border-radius:8px;overflow:hidden}.segbtn{padding:7px 12px;cursor:pointer;border-right:1px solid #cfd8e3;color:var(--muted)}
.segbtn:last-child{border-right:0}.segbtn input{display:none}.segbtn.on{background:var(--brand);color:#fff}
.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);background:#f7f8fa;white-space:nowrap}
.table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}
.table.sm td,.table.sm th{padding:7px 8px}
tr.rowlink{cursor:pointer}tr.rowlink:hover td{background:#f2f5f9}
.ellip{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.empty{text-align:center;color:var(--muted);padding:28px!important;list-style:none}
.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:99px;background:#eef2f6;color:#344054;white-space:nowrap;vertical-align:middle}
.badge.s-OPENED{background:#ecfdf3;color:#067647}.badge.s-FINISHED{background:#eef4ff;color:#3538cd}.badge.s-CANCELLED,.badge.s-DELETED{background:#fef3f2;color:#b42318}.badge.info{background:#eff8ff;color:#175cd3}
.modal{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;background:#f2f4f7}.m-SEA{background:#e0f2fe;color:#075985}.m-AIR{background:#fdf2fa;color:#9e165f}.m-GROUND{background:#fef6ee;color:#93370d}
.pill{font-size:10.5px;padding:1px 6px;border-radius:99px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;vertical-align:middle}
.chip{display:inline-block;background:#f2f4f7;border-radius:6px;padding:2px 6px;margin:0 4px 4px 0}
.pager{display:flex;gap:12px;align-items:center;justify-content:center}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 12px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}.kv.sm{grid-template-columns:140px 1fr;font-size:13px}
.branchbox{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;min-width:240px}
.milestones{display:flex;align-items:center;gap:16px}.ms{flex:1}.ms .lbl{font-size:11.5px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}
.ms .place{font-size:16px;font-weight:600;margin:2px 0}.ms .dates{display:flex;gap:12px;font-size:13px;color:var(--muted)}.ms .dates .ok{font-weight:600}
.ms.done .lbl{color:var(--ok)}.msline{flex:1.2;height:2px;background:repeating-linear-gradient(90deg,#cbd5e1 0 8px,transparent 8px 14px);position:relative;display:flex;justify-content:center}
.plane{position:relative;top:-12px;background:#fff;padding:0 8px;font-size:18px;color:var(--brand)}
.track{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px}.trackhead{display:flex;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
progress.progress{width:100%;height:8px;margin-top:10px;accent-color:var(--brand2)}
.timeline{list-style:none;margin:0;padding:0 0 0 6px;position:relative}
.timeline li{display:flex;gap:12px;position:relative;padding:0 0 16px}
.timeline li:before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:2px;background:var(--line)}.timeline li:last-child:before{display:none}
.tdot{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #94a3b8;margin-top:4px;flex:none;z-index:1}
li.act .tdot{background:var(--brand2);border-color:var(--brand2)}li.act.src-smartcomex .tdot{background:var(--link);border-color:var(--link)}
li.est{opacity:.75}.tt{font-size:13.5px}.td{font-size:12.5px;color:#475467;white-space:pre-line}.tm{font-size:11.5px;color:var(--muted)}.srcl{font-weight:600}
.docs{list-style:none;margin:0;padding:0}.docs li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.docs li:last-child{border-bottom:0}
.ficon{font-size:18px}
.upload{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.stat b{display:block;font-size:24px}.stat span{color:var(--muted);font-size:12.5px}.stat.warnbg{background:#fffaeb;border-color:#fedf89}
.plain{list-style:none;padding:0;margin:0}.plain li{padding:4px 0}
.checks li:before{content:"● ";}.checks li.ok:before{color:var(--ok)}.checks li.warn:before{color:var(--warn)}.checks li{color:var(--ink)}
.rootlist{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px}
fieldset.root{border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:0}fieldset.root.multi{border-color:#b2ddff;background:#f5faff}
fieldset legend{font-size:12px;color:var(--muted);padding:0 4px}
label.check.disabled{opacity:.5}
.suggest{background:#f5faff;border:1px solid #b2ddff;border-radius:8px;padding:12px;margin-top:12px}
.userrow{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px}.userrow.inactive{opacity:.6}
.uhead{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.uact{display:flex;gap:12px}
.scope{display:flex;flex-direction:column;gap:6px;margin-top:8px}.scope .radio,.scope .check{display:flex;gap:8px;align-items:center}
.scopelist{display:flex;flex-direction:column;gap:4px;padding:6px 10px;background:#fafbfc;border-radius:6px}
.newuser{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* Login / senha: foto de fundo (servida localmente, CSP-safe) com overlay navy */
body.auth{background:#001f3f;min-height:100vh;position:relative}
body.auth::before{content:"";position:fixed;inset:0;z-index:-1;
  background-color:#001f3f;
  background-image:linear-gradient(90deg,rgba(0,31,63,.92) 0%,rgba(0,31,63,.78) 32%,rgba(0,31,63,.25) 62%,rgba(0,31,63,.10) 100%),url("/static/brand/login-bg.jpg");
  background-image:linear-gradient(90deg,rgba(0,31,63,.92) 0%,rgba(0,31,63,.78) 32%,rgba(0,31,63,.25) 62%,rgba(0,31,63,.10) 100%),image-set(url("/static/brand/login-bg.webp") type("image/webp"),url("/static/brand/login-bg.jpg") type("image/jpeg"));
  background-size:cover;background-position:65% center;background-repeat:no-repeat}
.authwrap{display:grid;place-items:center start;min-height:100vh;padding:24px 24px 24px clamp(24px,8vw,120px)}
.authtag{position:fixed;right:24px;bottom:18px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.8);opacity:.9}
@media (max-width:760px){
  body.auth::before{background-image:linear-gradient(180deg,rgba(0,31,63,.55) 0%,rgba(0,31,63,.80) 55%,rgba(0,31,63,.92) 100%),url("/static/brand/login-bg.jpg");
    background-image:linear-gradient(180deg,rgba(0,31,63,.55) 0%,rgba(0,31,63,.80) 55%,rgba(0,31,63,.92) 100%),image-set(url("/static/brand/login-bg-720.webp") type("image/webp"),url("/static/brand/login-bg.jpg") type("image/jpeg"));
    background-position:70% center}
  .authwrap{place-items:center;padding:20px 16px 56px}
  .authtag{left:0;right:0;text-align:center;bottom:14px;font-size:12px}}
.authcard{background:#fff;border-radius:14px;border-top:4px solid var(--virtus-red);padding:32px;width:100%;max-width:400px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.authbrand{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-bottom:22px}.authlogo{width:220px;max-width:100%;height:auto;display:block}.bsub{font-weight:600;letter-spacing:.02em}.bname{font-size:22px;color:var(--brand)}.bname b{color:var(--brand2)}.bsub{color:var(--muted);font-size:13px}
@media (max-width:900px){.grid2,.grid2.wide-left{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.kv{grid-template-columns:130px 1fr}
.topbar{flex-wrap:wrap;height:auto;padding:10px 14px;gap:8px}.mainnav{order:3;width:100%;overflow-x:auto}.brand small,.wname{display:none}.brand-logo{height:24px}
.container{padding:14px}.milestones{flex-direction:column;align-items:stretch}.msline{display:none}
.table th:nth-child(4),.table td:nth-child(4),.table th:nth-child(6),.table td:nth-child(6){display:none}}
.nowrap{white-space:nowrap}.table .ellip{max-width:200px}
.sub.mono,td.mono{white-space:nowrap}.table td,.table th{padding:9px 10px}
/* ---------------- dashboards ---------------- */
.container.wide{max-width:1480px}
.nowrap{white-space:nowrap}.inline-form{display:inline}
.dashcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.dashcard{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fbfcfe;color:var(--ink)}
.dashcard:hover{border-color:var(--accent);text-decoration:none;background:#f5f9fd}.dc-name{font-weight:600;font-size:15px}
.tplgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}
.tplcard{border:1px solid var(--line);border-radius:var(--radius);padding:14px}.tplcard h3{margin:0 0 6px}.tplcard .row{align-items:center}
.dashhead{align-items:flex-start}.dashhead h1{margin:0}.dashactions{align-items:center}
.dash-name{font-size:20px;font-weight:600;min-width:320px}
.warnbadge{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.grid-stack{min-height:80px}
.dash-editing .grid-stack{background:repeating-linear-gradient(0deg,transparent 0 73px,#e7edf4 73px 74px);border-radius:var(--radius);outline:1px dashed #c9d6e3;outline-offset:4px}
.grid-stack-item-content{overflow:hidden!important}
.wg{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.wg-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px 4px;min-height:34px}
.wg-title{font-weight:600;font-size:13px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wg-tools{display:none;gap:2px}.dash-editing .wg-tools{display:inline-flex}
.dash-editing .wg-head{cursor:move;background:#f8fafc;border-bottom:1px solid var(--line);padding-bottom:8px}
.wg-btn{border:1px solid var(--line);background:#fff;border-radius:6px;width:26px;height:24px;cursor:pointer;font-size:13px;line-height:1;color:#475569}
.wg-btn:hover{background:#eef4fa;color:var(--accent)}
.wg-body{flex:1;min-height:0;position:relative;padding:4px 12px 10px;display:flex;flex-direction:column}
.wg-loading,.wg-empty{margin:auto;color:var(--muted);font-size:13px;text-align:center}.wg-error{margin:auto;color:var(--err);font-size:13px;text-align:center}
.chartbox{position:relative;flex:1;min-height:0}
.kpi{margin:auto 0;display:flex;flex-direction:column;gap:2px}.kpi-val{font-size:34px;font-weight:700;color:var(--brand);line-height:1.1}.kpi-lbl{font-size:12px;color:var(--muted)}
.wg-kpi .wg-body{justify-content:center}
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:auto 0}
.pipe-step{border-radius:8px;padding:8px 12px;background:#f8fafc;border-left:4px solid #94a3b8}
.pipe-val{font-size:24px;font-weight:700}.pipe-lbl{font-size:12px;color:var(--muted)}
.pipe-bar{height:4px;background:#e2e8f0;border-radius:4px;margin-top:6px;overflow:hidden}.pipe-bar span{display:block;height:100%;background:currentColor}
.st-await{border-color:#f59e0b;color:#b45309}.st-transit{border-color:#004b9f;color:#004b9f}.st-arrived{border-color:#10b981;color:#047857}.st-done{border-color:#6366f1;color:#4338ca}
.pipe-step .pipe-lbl{color:var(--muted)}.pipe-step .pipe-val{color:var(--ink)}
.stage{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:99px;background:#f1f5f9;white-space:nowrap}
.stage.st-await{background:#fffbeb}.stage.st-transit{background:#eff8ff}.stage.st-arrived{background:#ecfdf3}.stage.st-done{background:#eef2ff}
.wg-tablewrap{flex:1;overflow:auto;margin:0 -12px}.wg-tablewrap .table th{position:sticky;top:0}
.wg-foot{font-size:11.5px;color:var(--muted);padding-top:6px}
.tl{flex:1;overflow:auto;display:flex;flex-direction:column}
.tl-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.tl-row:last-child{border-bottom:0}
.tl-info{flex:1.2;min-width:0}.tl-info .modal{margin-left:6px}.tl-info .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-steps{flex:1;display:flex;align-items:center;gap:6px;min-width:200px}
.tl-step{display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--muted);min-width:78px}
.tl-dot{width:12px;height:12px;border-radius:50%;border:2px solid #94a3b8;background:#fff}.tl-step.done .tl-dot{background:var(--ok);border-color:var(--ok)}
.tl-step.done .tl-lbl{color:var(--ok);font-weight:600}.tl-lbl{font-weight:500}.tl-date{white-space:nowrap}
.tl-line{flex:1;height:2px;background:repeating-linear-gradient(90deg,#cbd5e1 0 6px,transparent 6px 10px);margin-bottom:22px}.tl-line.done{background:var(--ok)}
.wdlg{border:0;border-radius:12px;padding:0;width:min(980px,96vw);max-height:92vh;box-shadow:0 20px 60px rgba(15,23,42,.35)}
.wdlg::backdrop{background:rgba(15,23,42,.45)}
.wdlg form{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto auto;gap:0 18px;padding:18px 20px;max-height:92vh}
.wdlg-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.wdlg-head h2{margin:0}
.wfields{display:contents}.wsec{overflow:auto;padding-right:6px;max-height:calc(92vh - 360px);min-height:200px}.wsec h3{margin:0 0 8px}
.wf{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.wf-lbl{font-size:12px;font-weight:600;color:#475569}
.wf-row{display:flex;gap:10px}.wf-row>.wf{flex:1}
.wf-checks{border:1px solid var(--line);border-radius:8px;padding:6px 10px 8px;display:flex;flex-wrap:wrap;gap:4px 14px}.wf-checks legend{padding:0 4px}
.wf-checks label.check{font-size:13px;display:inline-flex;align-items:center;gap:4px}
label.check.wf{flex-direction:row;align-items:center;font-size:13px}
.wpreview{grid-column:1/-1;height:220px;border:1px dashed #cbd5e1;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;margin-top:8px;background:#fbfcfe}
.wpreview .wg-body{padding:4px 0}
.wdlg-foot{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
#werr{grid-column:1/-1;margin:8px 0 0}
.tplsettings{margin-top:24px}.grid2.flat{margin-bottom:0}.groupchecks{border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 18px}
@media (max-width:800px){.pipe{grid-template-columns:1fr 1fr}.wdlg form{grid-template-columns:1fr}.tplgrid{grid-template-columns:1fr}.wsec{max-height:none}}

/* ---------------------------------------------------------------- relatórios dinâmicos */
.repwrap { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; margin-bottom: 16px; }
.reppanel { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; padding: 12px 14px; }
.reppreview { min-width: 0; }
.repbar { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line, #e5e7eb); flex-wrap: wrap; }
.repbar .grow { flex: 1; }
.repbar select { width: auto; padding: 2px 6px; }
.tablewrap { overflow: auto; max-height: 70vh; }
.reptable th.sortable { cursor: pointer; white-space: nowrap; user-select: none; }
.reptable th.sortable:hover { text-decoration: underline; }
.reptable td, .reptable th { font-size: 13px; }
.reptable .num { text-align: right; font-variant-numeric: tabular-nums; }
.rsec { border-bottom: 1px solid var(--line, #e5e7eb); padding: 6px 0; }
.rsec > summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.rsec .rsec { border: 0; padding-left: 0; }
.rsec .rsec > summary { font-weight: 500; font-size: 13px; }
.rsec-body { display: grid; gap: 8px; padding: 6px 0 4px; }
.rfield { display: grid; gap: 2px; margin: 0; }
.rfield input, .rfield select { width: 100%; }
.rrow { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rchecks { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.rcols { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; max-height: 320px; overflow: auto; }
.rcols li { display: flex; align-items: center; gap: 6px; font-size: 13px; padding: 2px 4px; border-radius: 4px; }
.rcols li.on { background: #eef6fb; }
.rcols li.off { color: #6b7280; }
.rcols .btn-link { padding: 0 4px; }
.rep-name { font-size: 22px; font-weight: 700; min-width: 280px; width: min(640px, 60vw); }
.reptable td:first-child { white-space: nowrap; }
@media (max-width: 900px) { .repwrap { grid-template-columns: 1fr; } .reppanel { position: static; max-height: none; } }
/* usuários: funcionários x clientes */
.userform fieldset.typeseg{padding:0;margin:0 0 4px;display:inline-flex}.userform fieldset.typeseg legend{display:none}
.userform .flabel{font-weight:600;margin:6px 0 2px}.userform .staffonly,.userform .clientonly,.userform .carteira{display:flex;flex-direction:column;gap:8px}
.userform label.radio span{line-height:1.35}.carteiralist{max-height:240px;overflow:auto}
.table.perms td,.table.perms th{white-space:normal}
.userform label.radio input,.userform label.check input{flex-shrink:0}.table.users td.uact{white-space:nowrap}.table.users td.uact form{display:inline}
.userform label.radio input[type=radio],.userform label.check input[type=checkbox]{flex:0 0 16px;width:16px;height:16px;margin:0}
/* contatos SmartComex */
.contacts-card{margin-top:18px}.contacts-card .cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px 0}
.contacts-card .cardhead h2{margin:0}.contacts-card .pad{padding:0 16px}
.bulkbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:#fafbfc}
.bulkbar select{max-width:320px}.table.contacts tr.has-user td{background:#fcfcfd}.table.contacts tr.has-user td b{color:#475467}
.tablewrap{overflow-x:auto}.form.newuser.prefilled{outline:2px solid #b2ddff;border-radius:10px;padding:10px}
.alert.info .table td{background:transparent;border:0;padding:4px 6px}.alert.info .table td.grow{width:100%}.alert.info .table input{width:100%}
/* integrações (admin) */
.integ .ifield{margin:14px 0}.integ label{display:block;font-weight:600;margin-bottom:6px}
.integ .irow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.integ .irow input{flex:1 1 260px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;font-size:14px}
.integ .irow .btn{padding:10px 14px}.integ .ievents li{margin:4px 0;word-break:break-all}
@media (max-width:600px){.integ .irow input{flex-basis:100%}.integ .irow .btn{flex:1;justify-content:center}}
.table.hooks td:nth-child(3),.table.hooks th:nth-child(3){display:table-cell}
