body.portal{background:var(--soft);min-height:100vh;min-height:100dvh}
body.lock{overflow:hidden}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.login-side{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 0% 0%,#0a3a8c 0%,#03246a 45%,#021a4f 100%);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.login-side::after{content:"";position:absolute;right:-160px;bottom:-200px;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.08)}
.login-side .logo-chip{display:inline-block;background:#fff;padding:10px 14px;border-radius:12px}
.login-side .logo-chip img{height:44px;width:auto}
.login-side h1{color:#fff;font-size:clamp(2rem,3.4vw,3rem);max-width:15ch}
.login-side p{color:#c3cfea;margin-top:16px;max-width:44ch}
.login-side ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:10px}
.login-side li{display:flex;gap:12px;align-items:center;color:#dfe7f8;font-weight:500}
.login-side li::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--orange)}
.login-side small{color:#8ea3cf}
.login-main{display:grid;place-items:center;padding:40px 24px;background:#fff}
.login-box{width:min(400px,100%)}
.login-box h2{font-size:1.9rem}
.login-box>p{color:var(--muted);margin-top:8px}
.login-form{display:grid;gap:16px;margin-top:30px}
.pw{position:relative}
.pw input{padding-right:52px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;width:40px;height:40px;border-radius:8px;cursor:pointer;color:var(--muted);display:grid;place-items:center}
.pw button svg{width:20px;height:20px}
.msg{min-height:22px;font-size:.9rem;font-weight:600}
.msg.err{color:#c62828}
.msg.ok{color:#13965a}
.btn[disabled]{opacity:.7;cursor:progress}
.back{display:inline-flex;gap:8px;align-items:center;margin-top:26px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.92rem}
.back:hover{color:var(--navy)}

.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh;min-height:100dvh}
.side{background:var(--ink);color:#aebdde;padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.side .logo-chip{display:block;background:#fff;padding:10px 12px;border-radius:12px;margin-bottom:18px}
.side .logo-chip img{height:36px;width:auto}
.side h5{margin:16px 10px 6px;font-size:.72rem;letter-spacing:.08em;color:#6f80a8;font-weight:700}
.side button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:0;border-radius:10px;background:none;color:#cdd8f0;font-weight:600;font-size:.93rem;cursor:pointer;text-align:left}
.side button svg{width:18px;height:18px;flex:none}
.side button:hover{background:rgba(255,255,255,.06);color:#fff}
.side button[aria-current=page]{background:var(--orange);color:#fff}
.side button .badge{margin-left:auto;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.1);color:#cdd8f0}
.side button[aria-current=page] .badge{background:rgba(255,255,255,.25);color:#fff}
.side button[disabled]{opacity:.55;cursor:default}
.side button[disabled]:hover{background:none;color:#cdd8f0}
.side .who{margin-top:auto;padding:14px 12px;border-radius:12px;background:rgba(255,255,255,.05);font-size:.85rem}
.side .who b{display:block;color:#fff}
.side .who .row{display:flex;gap:8px;margin-top:10px}
.side .who span{display:block}
.side .who .row button{flex:1;justify-content:center;align-items:center;font-size:.82rem;padding:8px;min-height:40px;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none;display:flex;margin:0}
.side .who .row button.out{background:rgba(255,255,255,.14)}
.main{padding:28px 32px 48px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}
.topbar h1{font-size:1.9rem}
.topbar p{color:var(--muted);margin-top:4px}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;padding:7px 12px;border-radius:999px;background:#fff1e6;color:#b44b00}
.pill.ok{background:#e6f7ee;color:#11834e}
.pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.notice{display:block;padding:14px 18px;border-radius:14px;background:#fff8f3;border:1px solid #ffd9bd;color:#7a3a00;margin-bottom:20px;font-size:.92rem}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.kpi small{color:var(--muted);font-weight:600;font-size:.82rem}
.kpi b{display:block;font-family:var(--display);font-size:2rem;color:var(--navy);margin:6px 0 2px;letter-spacing:-.02em}
.kpi span{font-size:.85rem;color:var(--muted)}
.kpi span.up{color:#11834e;font-weight:600}
.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-top:14px}
.box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.box-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}
.box-head h3{font-size:1.1rem}
.box-head p{color:var(--muted);font-size:.85rem}
.seg{display:inline-flex;background:var(--soft);border-radius:10px;padding:4px;border:1px solid var(--line)}
.seg button{border:0;background:none;padding:6px 10px;border-radius:7px;font-size:.8rem;font-weight:700;color:var(--muted);cursor:pointer}
.seg button[aria-pressed=true]{background:#fff;color:var(--navy);box-shadow:0 2px 8px -4px rgba(0,32,96,.4)}
.bars{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;align-items:end;height:220px;padding-top:24px}
.bar{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.bar i{display:block;width:100%;max-width:46px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#1c4fb0,var(--navy));transition:height .4s ease}
.bar.hot i{background:linear-gradient(180deg,#ff8a2b,var(--orange))}
.bar em{position:absolute;top:-2px;font-style:normal;font-size:.72rem;font-weight:700;color:var(--slate);transform:translateY(-100%)}
.bar span{margin-top:8px;font-size:.78rem;color:var(--muted);font-weight:600}
.quick{display:grid;gap:10px}
.quick button{display:flex;align-items:center;gap:14px;padding:14px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;text-align:left;width:100%}
.quick button:hover:not([disabled]){border-color:var(--orange)}
.quick button[disabled]{cursor:default;opacity:.65}
.quick .ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--navy);flex:none}
.quick .ic svg{width:20px;height:20px}
.quick b{display:block;font-size:.95rem;color:var(--ink)}
.quick small{color:var(--muted)}
.quick .tag{margin-left:auto;font-size:.72rem;font-weight:700;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.news{display:grid;gap:10px}
.news article{padding:16px;border-radius:12px;border:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}
.news b{display:block}
.news p{color:var(--muted);font-size:.9rem}
.news .tag{font-size:.72rem;font-weight:700;padding:4px 8px;border-radius:999px;background:#fff1e6;color:#b44b00;height:fit-content}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:var(--soft);font-size:.78rem;color:var(--muted);font-weight:700;letter-spacing:.02em}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
.st{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.85rem}
.st::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.st.ok{color:#11834e}.st.warn{color:#c76a00}.st.off{color:#8a94a8}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.toolbar input{flex:1;min-width:200px;padding:11px 14px;border-radius:10px;border:1px solid #cfd7e6}
.uform{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end}
.uform{align-items:start}
.uform .field{min-width:0}
.uform .field label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uform .field input,.uform .field select{height:46px;padding:0 12px}
.uform>.btn,.uform>div>.btn{min-height:46px}
.mbox .uform{grid-template-columns:1fr}
.btn-sm{padding:9px 14px;font-size:.85rem;border-radius:10px}
.btn-danger{background:#fff;color:#c62828;border-color:#f3c5c5}
.btn-danger:hover{background:#fff5f5}
.row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.gh{margin-top:14px}
.gh summary{cursor:pointer;font-weight:700;color:var(--navy)}
.gh .uform{grid-template-columns:1fr auto;margin-top:12px}
.view[hidden]{display:none}
.menu-btn{display:none}
@media (max-width:1100px){.kpi-grid{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}.uform{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
.login-wrap{grid-template-columns:1fr}
.login-side{padding:28px 24px}
.login-side ul,.login-side small{display:none}
.app{grid-template-columns:1fr}
.side{position:fixed;inset:0 auto 0 0;width:270px;z-index:60;transform:translateX(-100%);transition:transform .2s}
.side.open{transform:none;box-shadow:30px 0 60px rgba(0,0,0,.3)}
.main{padding:18px 16px 40px}
.menu-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;margin-bottom:14px;cursor:pointer}
.menu-btn svg{width:20px;height:20px}
.topbar{flex-direction:column;align-items:flex-start}
.uform{grid-template-columns:1fr}
.bars{gap:6px}
}
.login-side .logo-chip,.side .logo-chip{align-self:flex-start;width:fit-content}
.side button .badge{white-space:nowrap}
.upd{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--slate);white-space:nowrap}
.upd i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(31,191,107,.18)}
.banner{padding:14px 18px;border-radius:14px;background:linear-gradient(90deg,#fff1e6,#fff8f3);border:1px solid #ffc89e;color:#7a3a00;margin-bottom:18px;font-size:.92rem}
.mt{margin-top:14px}
.empty{color:var(--muted);text-align:center;padding:18px}
.kpi span.down{color:#c62828;font-weight:600}
.grid-2.eq{grid-template-columns:1fr 1fr}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:center}
.filters select,.filters input,.per select,.per input,.sbox{padding:10px 12px;border-radius:10px;border:1px solid #cfd7e6;background:#fff;min-height:42px}
.filters input[type=search]{flex:1;min-width:180px}
.per{display:flex;gap:8px;flex-wrap:wrap}
.hb{display:grid;gap:10px}
.hbr{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:10px;align-items:center;font-size:.86rem}
.hbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--slate);font-weight:600}
.hbt{height:12px;border-radius:99px;background:var(--soft);overflow:hidden}
.hbt i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1c4fb0,var(--navy))}
.hbr:first-child .hbt i{background:linear-gradient(90deg,#ff8a2b,var(--orange))}
.hbr b{font-variant-numeric:tabular-nums;color:var(--navy);min-width:48px;text-align:right}
.vb{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;align-items:end;height:230px;padding-top:26px;overflow-x:auto}
.vb.sm{gap:4px;grid-auto-columns:minmax(22px,1fr)}
.vbc{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.vbc i{display:block;width:100%;max-width:44px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#1c4fb0,var(--navy))}
.vbc.hot i{background:linear-gradient(180deg,#ff8a2b,var(--orange))}
.vbc em{font-style:normal;font-size:.72rem;font-weight:700;color:var(--slate);margin-bottom:4px;white-space:nowrap}
.vb.sm .vbc em{font-size:.6rem}
.vbc span{margin-top:6px;font-size:.72rem;color:var(--muted);font-weight:600;white-space:nowrap}
.vb.sm .vbc span{font-size:.6rem}
.main.full{padding:0}
.perf-wrap iframe{display:block;width:100%;height:100vh;height:100dvh;border:0;background:var(--soft)}
.modal{position:fixed;inset:0;z-index:100;background:rgba(6,16,40,.55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.mbox{width:min(520px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:20px;padding:22px;box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
.mbox.wide{width:min(900px,100%)}
.mhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.mfoot{display:flex;justify-content:flex-end;margin-top:16px}
.icon-x{border:0;background:var(--soft);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer}
.icon-x svg{width:18px;height:18px}
.vid{position:relative;border-radius:16px;overflow:hidden;background:#0c1831;aspect-ratio:3/4;max-height:56vh;margin:0 auto}
.vid video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.oval{position:absolute;inset:12% 20%;border:3px dashed rgba(255,255,255,.7);border-radius:50%}
.geo-st{margin-top:12px;font-size:.88rem;color:var(--slate);font-weight:600}
.consent{margin-bottom:14px;display:grid;gap:12px;border-color:#ffc89e}
.consent p{color:var(--slate)}
.ponto-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:14px}
.ponto-grid.dim{opacity:.45;pointer-events:none}
.clock{display:grid;place-items:center;text-align:center;gap:10px;padding:32px 22px}
.clk{font-family:var(--display);font-size:clamp(2.6rem,7vw,3.6rem);font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.clk-d{color:var(--muted)}
.btn.big{padding:18px 24px;font-size:1.05rem;width:100%;max-width:360px}
.hint{color:var(--muted);font-size:.85rem}
.done{font-weight:700;color:#11834e}
.marks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.marks li{display:flex;gap:12px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line)}
.marks li.ok{border-color:#bfe9d2;background:#f4fbf7}
.marks img,.marks .ph{width:52px;height:52px;border-radius:12px;object-fit:cover;flex:none;background:var(--soft)}
.marks small{display:block;color:var(--muted);font-size:.8rem}
.marks small.geo{font-variant-numeric:tabular-nums}
.miss{color:#c62828;font-weight:700}
.clk-row{cursor:pointer}
.clk-row:hover td{background:#f7f9fd}
td.loc{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.det{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.dcard{display:grid;gap:4px;font-size:.85rem}
.dcard img,.ph.big{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:var(--soft);display:grid;place-items:center;color:var(--muted);font-size:.8rem}
.dcard small{color:var(--muted)}
.dcard a{color:var(--navy);font-weight:600;font-size:.8rem}
.uform.four{grid-template-columns:repeat(4,1fr)}
.uform.four .full{grid-column:1/-1}
.uform.two{grid-template-columns:1fr auto}
.uform textarea{width:100%;min-height:90px;padding:11px 12px;border-radius:10px;border:1px solid #cfd7e6}
.lbl{display:block;font-size:.88rem;font-weight:600;margin-bottom:6px}
.days{display:flex;flex-wrap:wrap;gap:8px}
.days label{display:flex;gap:6px;align-items:center;padding:8px 12px;border-radius:10px;border:1px solid var(--line);font-weight:600;font-size:.88rem;cursor:pointer}
.days input{accent-color:var(--orange)}
.drop{display:block;border:2px dashed #cfd7e6;border-radius:14px;padding:22px;text-align:center;cursor:pointer;color:var(--slate);font-weight:600}
.drop:hover{border-color:var(--orange)}
.drop input{display:block;margin:0 auto 8px}
.news small{display:block;color:var(--muted);font-size:.78rem;margin-top:4px}
.news article .btn{align-self:center}
.bnav,.scrim{display:none}
.app-grid{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}
.phone{width:290px;height:590px;border-radius:44px;background:#0c1831;padding:14px;position:relative;box-shadow:0 40px 80px -40px rgba(0,32,96,.7)}
.notch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:110px;height:22px;background:#0c1831;border-radius:0 0 14px 14px;z-index:2}
.screen{height:calc(100% - 56px);border-radius:32px 32px 0 0;background:linear-gradient(180deg,#f5f7fb,#fff);padding:40px 18px 18px;display:grid;align-content:start;gap:14px;overflow:hidden}
.ph-nav{display:flex;height:56px;background:#fff;border-radius:0 0 32px 32px;border-top:1px solid var(--line)}
.ph-nav button{flex:1;border:0;background:none;font-weight:700;font-size:.8rem;color:var(--muted);cursor:pointer}
.ph-nav button[aria-current]{color:var(--orange)}
.ph-h b{display:block;font-family:var(--display);font-size:1.3rem;color:var(--navy)}
.ph-h small{color:var(--muted)}
.ph-k{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ph-k div{background:var(--navy);color:#fff;border-radius:16px;padding:14px}
.ph-k b{display:block;font-family:var(--display);font-size:1.5rem}
.ph-k small{color:#b9c7e6}
.ph-l{display:grid;gap:8px}
.ph-l span{padding:12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:600}
.ph-b{margin-top:auto;text-align:center;padding:14px;border-radius:14px;background:var(--orange);color:#fff;font-weight:700}
.ph-scan{height:170px;border-radius:16px;background:#0c1831;position:relative;overflow:hidden}
.ph-scan span{position:absolute;left:12%;right:12%;top:20%;height:2px;background:var(--orange);box-shadow:0 0 12px var(--orange);animation:scan 2s ease-in-out infinite alternate}
@keyframes scan{to{top:78%}}
.ph-face{height:170px;border-radius:16px;background:radial-gradient(circle at 50% 40%,#dfe7f8 0 26%,transparent 27%),#0c1831}
@media (max-width:1100px){.uform.four{grid-template-columns:1fr 1fr}.det{grid-template-columns:1fr 1fr}.grid-2.eq{grid-template-columns:1fr}}
@media (max-width:860px){
.perf-wrap iframe{height:calc(100vh - 68px);height:calc(100dvh - 68px - env(safe-area-inset-bottom,0px))}
.side{height:100vh;height:100dvh;width:min(290px,86vw)}
.map{height:340px}
.ponto-grid,.app-grid{grid-template-columns:1fr}
.phone{margin:0 auto;width:260px;height:530px}
.uform.four,.uform.two{grid-template-columns:1fr}
.main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
.bnav button{flex:1;display:grid;justify-items:center;gap:2px;border:0;background:none;padding:6px 2px;border-radius:12px;font-size:.68rem;font-weight:700;color:var(--muted);cursor:pointer}
.bnav button svg{width:22px;height:22px}
.bnav button[aria-current]{color:var(--orange);background:#fff4ec}
.scrim{position:fixed;inset:0;z-index:55;background:rgba(6,16,40,.45)}
.scrim.on{display:block}
.menu-btn{display:none}
.filters>*{flex:1 1 140px}
.per{flex:1 1 100%}
.per>*{flex:1 1 120px}
.hbr{grid-template-columns:minmax(80px,40%) 1fr auto}
.vb{height:200px}
.topbar h1{font-size:1.5rem}
.upd{white-space:normal}
}
@media print{
.side,.bnav,.filters,.banner,.notice,.topbar .upd,.kpi-grid,.modal{display:none!important}
.app{display:block}.main{padding:0}body.portal{background:#fff}
.box{border:0;padding:0}.table-wrap{overflow:visible;border:0}th,td{white-space:normal;font-size:10px;padding:6px}
}

/* Topo das telas: indicador de atualização e ações */
.top-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.upd{gap:10px;flex-wrap:wrap}
.upd>span{white-space:nowrap}
.upd b{color:var(--navy)}
.upd em{font-style:normal;color:#b45309;font-weight:700}
.upd i.wait{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.2)}
.upd i.off{background:#9aa3b5;box-shadow:none}
.top-link{margin:-6px 0 14px}
.empty-state{text-align:center;padding:36px 22px}
.empty-state h3{color:var(--navy)}
.empty-state p{color:var(--muted);margin-top:6px}
/* Carregamento discreto no formato da tela (sem esconder a demora real) */
.skel-wrap{display:grid;gap:14px}
.sk{display:block;border-radius:14px;background:linear-gradient(90deg,#e9edf5 25%,#f4f6fb 50%,#e9edf5 75%);background-size:200% 100%;animation:sk 1.2s linear infinite}
.sk.h{height:44px;width:min(360px,70%)}.sk.k{height:104px}.sk.b{height:260px}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}}
/* Mapa isolado: as camadas do Leaflet não passam por cima do menu, da barra inferior ou de janelas */
.map{height:460px;border-radius:12px;position:relative;z-index:0;isolation:isolate;overflow:hidden}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);z-index:120;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;font-size:.9rem;max-width:calc(100vw - 32px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translate(-50%,0)}
.marks li.wait{border-color:#fde3c3;background:#fffaf3}
.marks small.sending{color:#b45309;font-weight:600}
#ajb{margin-top:6px}
.box.attn{border-color:#ffc89e;margin-bottom:14px}
.box.attn .news article{align-items:center;flex-wrap:wrap}
.dcard .row-actions{justify-content:flex-start;margin-top:4px}
details.box summary{cursor:pointer;font-weight:700;color:var(--navy)}
.mbox .uform .btn{width:100%}
@media (max-width:860px){
.toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.top-act{width:100%;flex-wrap:nowrap;align-items:stretch}
.top-act .upd{flex:1 1 auto;border-radius:12px;padding:7px 10px;gap:2px 10px;font-size:.74rem}
.top-act .btn{min-height:44px;flex:none}
.box.attn .row-actions{width:100%;justify-content:flex-start}
.row-actions{flex-wrap:wrap}
.row-actions .btn-sm{min-height:40px}
.filters select,.filters input,.per select,.per input{min-height:44px;font-size:16px}
.det{grid-template-columns:1fr 1fr}
.mbox{border-radius:16px;padding:18px}
}
/* Financeiro */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end}
.form label{display:grid;gap:5px;font-size:.84rem;font-weight:600;color:var(--ink)}
.form input,.form select{width:100%;height:42px;padding:0 10px;border-radius:var(--radius-s);border:1px solid #cfd7e6;background:#fff;font:inherit}
.form .btn{height:42px}
/* Tema escuro (botão sol/lua). Fundo azul-escuro, cartões um tom acima, texto claro; laranja e verdes mantidos com contraste. */
[data-theme=dark] body.portal{--line:#24304B;--soft:#0B1222;--muted:#98A3BC;--slate:#B4BED3;background:#0B1222;color:#E7ECF6}
[data-theme=dark] body.portal h1,[data-theme=dark] body.portal h2,[data-theme=dark] body.portal h3,[data-theme=dark] body.portal h4{color:#E7ECF6}
[data-theme=dark] .kpi,[data-theme=dark] .box,[data-theme=dark] table,[data-theme=dark] .quick button,[data-theme=dark] .mbox,[data-theme=dark] .upd,[data-theme=dark] .menu-btn,[data-theme=dark] .login-main{background:#121B30;color:#E7ECF6}
[data-theme=dark] th{background:#0F1729;color:#98A3BC}
[data-theme=dark] td{border-color:#24304B}
[data-theme=dark] .clk-row:hover td{background:#18233D}
[data-theme=dark] .kpi b,[data-theme=dark] .hbr b,[data-theme=dark] .upd b,[data-theme=dark] .clk,[data-theme=dark] .empty-state h3,[data-theme=dark] .gh summary,[data-theme=dark] details.box summary,[data-theme=dark] .dcard a,[data-theme=dark] .quick .ic{color:#C9D5FF}
[data-theme=dark] .quick b,[data-theme=dark] .form label,[data-theme=dark] .field label{color:#E7ECF6}
[data-theme=dark] .btn-ghost{background:#121B30;color:#C9D5FF;border-color:#2E3B5C}
[data-theme=dark] .btn-ghost:hover{border-color:#6F8BD8}
[data-theme=dark] .btn-danger{background:#121B30;color:#FF8A8A;border-color:#5A2A2A}
[data-theme=dark] .filters select,[data-theme=dark] .filters input,[data-theme=dark] .per select,[data-theme=dark] .per input,[data-theme=dark] .sbox,[data-theme=dark] .form input,[data-theme=dark] .form select,[data-theme=dark] .field input,[data-theme=dark] .field select,[data-theme=dark] .field textarea{background:#0F1729;color:#E7ECF6;border-color:#2E3B5C}
[data-theme=dark] .seg button[aria-pressed=true]{background:#24304B;color:#fff}
[data-theme=dark] .seg button{color:#B4BED3}
[data-theme=dark] .hbt i,[data-theme=dark] .vbc i,[data-theme=dark] .bar i{background:linear-gradient(90deg,#4F7BE0,#2F5BC4)}
[data-theme=dark] .vbc i,[data-theme=dark] .bar i{background:linear-gradient(180deg,#6A90EA,#2F5BC4)}
[data-theme=dark] .hbt{background:#1A2440}
[data-theme=dark] .side{background:#070D1C}
[data-theme=dark] .bnav{background:rgba(18,27,48,.96)}
[data-theme=dark] .bnav button[aria-current]{background:#3A2414}
[data-theme=dark] .pill,[data-theme=dark] .news .tag{background:#3A2414;color:#FFB27A}
[data-theme=dark] .pill.ok{background:#0F2E1C;color:#5BE39A}
[data-theme=dark] .kpi span.up,[data-theme=dark] .st.ok,[data-theme=dark] .done,[data-theme=dark] .msg.ok{color:#5BE39A}
[data-theme=dark] .kpi span.down,[data-theme=dark] .miss,[data-theme=dark] .msg.err{color:#FF8A8A}
[data-theme=dark] .notice,[data-theme=dark] .banner{background:#2A1B10;border-color:#5C3A1E;color:#FFD2AE}
[data-theme=dark] .upd em,[data-theme=dark] .marks small.sending{color:#FBBF24}
[data-theme=dark] .marks li.ok{background:#0F2E1C;border-color:#1F5A38}
[data-theme=dark] .marks li.wait{background:#2A1F0B;border-color:#5C4518}
[data-theme=dark] .box.attn,[data-theme=dark] .consent{border-color:#5C3A1E}
[data-theme=dark] .toast{background:#E7ECF6;color:#0B1222}
[data-theme=dark] .icon-x{color:#E7ECF6}
[data-theme=dark] .screen{background:linear-gradient(180deg,#0F1729,#121B30)}
[data-theme=dark] .ph-nav,[data-theme=dark] .ph-l span{background:#121B30}
.tema-btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding-left:10px;padding-right:10px}
/* Tempo de operação: linha do tempo */
.gantt{display:grid;gap:6px;overflow-x:auto}
.g-axis,.g-row{display:grid;grid-template-columns:minmax(120px,220px) minmax(420px,1fr);gap:12px;align-items:center}
.g-axis>div{position:relative;height:20px;border-bottom:1px solid var(--line)}
.g-axis i{position:absolute;transform:translateX(-50%);font-style:normal;font-size:.72rem;color:var(--muted)}
.g-row>span{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-row>div{position:relative;height:22px;border-radius:6px;background:var(--soft)}
.g-row b{position:absolute;top:3px;bottom:3px;border-radius:5px;background:#2f5bc4}
.g-row b.lg{background:#f86800}.g-row b.ct{background:#d4a017}
.g-row em{position:absolute;top:2px;font-style:normal;font-size:.72rem;font-weight:700;color:var(--slate);white-space:nowrap}
.g-leg{display:flex;gap:14px;align-items:center;font-size:.78rem;color:var(--muted);margin-top:12px;flex-wrap:wrap}
.g-leg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:-8px}
.g-leg i.ok{background:#2f5bc4}.g-leg i.ct{background:#d4a017}.g-leg i.lg{background:#f86800}
.tg{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.tg-g{background:#e6f7ee;color:#11834e}.tg-y{background:#fff7e0;color:#8a6100}.tg-r{background:#fff1e6;color:#b44b00}
[data-theme=dark] .tg-g{background:#0F2E1C;color:#5BE39A}[data-theme=dark] .tg-y{background:#2A1F0B;color:#FBBF24}[data-theme=dark] .tg-r{background:#3A2414;color:#FFB27A}
[data-theme=dark] .g-row b{background:#4F7BE0}
/* Linha do tempo mais compacta + matriz de dias */
.gantt{gap:3px}.g-row>div{height:16px}.g-row b{top:2px;bottom:2px;border-radius:4px}.g-row em{top:0;font-size:.68rem}.g-row>span{font-size:.76rem}
.mx th,.mx td{padding:6px 8px;font-size:.8rem;white-space:nowrap}.mx-0{color:var(--muted)}.mx-1{font-weight:700;color:#11834e}
[data-theme=dark] .mx-1{color:#5BE39A}
.gantt{max-height:460px;overflow:auto}.g-axis{position:sticky;top:0;background:var(--white,#fff);z-index:1}[data-theme=dark] .g-axis{background:#121B30}
/* Período de/até (dois cliques) */
.per{position:relative}
.prb{padding:10px 12px;border-radius:10px;border:1px solid #cfd7e6;background:#fff;min-height:42px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}
.cal-pop{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:290px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 20px 40px -18px rgba(0,32,96,.35)}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-h b{font-size:.9rem}
.cal-h button{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer;font-size:1.1rem;color:inherit}
.cal-pop .cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-pop .cal-g i{font-style:normal;text-align:center;font-size:.7rem;color:var(--muted);font-weight:700}
.cal-pop .cal-g button{height:34px;border:0;border-radius:8px;background:none;cursor:pointer;font:inherit;font-size:.85rem;color:inherit}
.cal-pop .cal-g button:hover{background:var(--soft)}.cal-pop .cal-g button.in{background:#e8edf9}.cal-pop .cal-g button.sel{background:var(--orange);color:#fff;font-weight:700}
.cal-t{font-size:.78rem;color:var(--muted);margin:8px 0 0;text-align:center}
[data-theme=dark] .prb{background:#0F1729;color:#E7ECF6;border-color:#2E3B5C}[data-theme=dark] .cal-pop{background:#121B30;border-color:#2E3B5C}[data-theme=dark] .cal-pop .cal-g button.in{background:#1B2A55}
/* Resumo por dia: abrir motoristas */
.rd-row{cursor:pointer}.rd-row:hover td{background:var(--soft)}
.rd-car{display:inline-block;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin-right:10px;transition:transform .15s}
.rd-row[aria-expanded=true] .rd-car{transform:rotate(45deg) translate(-2px,-2px)}
.rd-det td{background:var(--soft)}.rd-list{display:flex;flex-wrap:wrap;gap:6px}
.rd-list span{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.78rem;font-weight:600}
.rd-list small{color:var(--muted);font-weight:500}
[data-theme=dark] .rd-list span{background:#121B30}
.ch-t{font-size:.8rem;font-weight:700;color:var(--muted);margin:0 0 6px}.clk-row{cursor:pointer}.clk-row.on td{background:#fff4ec}[data-theme=dark] .clk-row.on td{background:#3A2414}
/* Resumo por dia: motoristas em colunas, ordem alfabética de cima para baixo */
.rd-list{display:block;columns:4 260px;column-gap:24px;padding:4px 2px}
.rd-list div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line);break-inside:avoid;font-size:.8rem}
.rd-list div em{font-style:normal;color:var(--muted);font-size:.72rem;text-align:right}
.rd-list div span{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:0;padding:0;border-radius:0}
.rd-list div small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
/* Barras agrupadas (pacotes + sellers) */
.gb-leg{display:flex;gap:16px;font-size:.78rem;color:var(--muted);font-weight:600;margin-bottom:6px}.gb-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.gb{display:flex;align-items:flex-end;gap:10px;height:230px;padding-top:6px;overflow-x:auto}
.gbc{flex:1;min-width:46px;display:flex;flex-direction:column;align-items:center;height:100%;cursor:pointer;border-radius:8px}
.gbc.hot{background:var(--soft)}
.gbp{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:14px}
.gbp>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;width:42%;max-width:28px}
.gbp em{font-style:normal;font-size:.64rem;font-weight:700;color:var(--slate);margin-bottom:3px;white-space:nowrap}
.gbp i{display:block;width:100%;border-radius:5px 5px 2px 2px}
.ga{background:linear-gradient(180deg,#1c4fb0,var(--navy))}.gbb{background:linear-gradient(180deg,#ff8a2b,var(--orange))}
.gbc>span{font-size:.72rem;color:var(--muted);margin-top:6px;white-space:nowrap}
.gb.sm .gbp em{font-size:.6rem}
[data-theme=dark] .ga{background:linear-gradient(180deg,#6A90EA,#2F5BC4)}[data-theme=dark] .gbp em{color:#C9D5FF}
