:root{--ink:#17232e;--muted:#677582;--line:#dfe5e9;--bg:#f4f6f7;--nav:#14232b;--accent:#cf6f3c;--green:#187b5b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px Inter,Segoe UI,Arial,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:220px;background:var(--nav);color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:19px;padding:0 8px 32px}.brand span{display:grid;place-items:center;width:35px;height:35px;background:var(--accent);border-radius:9px;font-weight:800}.brand strong{font-weight:650}nav{display:grid;gap:5px}nav a{color:#abb8be;text-decoration:none;padding:12px 14px;border-radius:8px}nav a:hover,nav a.active{background:#21353f;color:#fff}.aside-foot{margin-top:auto;color:#b5c0c5;padding:12px}.aside-foot small{color:#71848d}main{margin-left:220px;padding:38px 44px 70px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1{font-size:32px;margin:3px 0 5px;letter-spacing:-.6px}h2{margin:0;font-size:19px}p{margin:0;color:var(--muted)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:var(--accent)}button,.actions a{border:1px solid #ccd5da;background:white;padding:10px 15px;border-radius:7px;font-family:inherit;font-size:13px;font-weight:650;color:var(--ink);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.actions{display:flex;gap:9px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.metrics article,.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 1px 2px #14232b0a}.metrics article{padding:20px}.metrics small{display:block;font-size:10px;font-weight:750;letter-spacing:.8px;color:var(--muted)}.metrics strong{display:block;font-size:25px;margin:10px 0 4px}.metrics span{color:var(--muted);font-size:12px}.filters{padding:18px;margin-bottom:18px}.filters form{display:grid;gap:13px}.filters label,dialog label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#53636f}input:not([type=checkbox]):not([type=radio]),select{width:100%;border:1px solid #ccd5da;border-radius:7px;padding:10px 11px;background:#fff;color:var(--ink)}
input[type=checkbox],input[type=radio]{width:17px;height:17px;margin:0;accent-color:var(--accent);cursor:pointer;flex:none}
/* Caixa clicavel inteira, nao so o quadradinho — mesmo padrao do "Manter
   conectado" na tela de login, para toda marcacao de opcao unica do sistema. */
.checkbox-field{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:#f7f9fa;font-size:12.5px;font-weight:650;color:#5b6a76;line-height:1.4;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s,color .15s}
.checkbox-field:has(:checked){border-color:#cf6f3c59;background:#fdf6f1;color:var(--ink)}
.checkbox-field:hover{border-color:#c3ced5}
.checkbox-field:has(:checked):hover{border-color:#cf6f3c8c}
.checkbox-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #cf6f3c33}
.checkbox-field input{margin-top:1px;flex:none}
.checkbox-field small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.filter-actions{display:flex;align-items:end;gap:9px}.filter-actions a{padding:10px;color:var(--muted)}.table-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.table-head p{font-size:12px;margin-top:3px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:11px 14px;background:#fafbfb;color:#6c7882;font-size:10px;letter-spacing:.5px}td{padding:14px;border-top:1px solid #edf0f2;vertical-align:middle}td strong,td small{display:block;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}td small{color:var(--muted);font-size:11px;margin-top:3px}.type{float:left;margin-right:9px;padding:4px 6px;border-radius:4px;font-size:9px;font-weight:800;background:#e9f0f6;color:#37627e}.type.cte{background:#f0eafa;color:#674d8c}.type.nfse{background:#fff0e7;color:#a2542d}.status{color:var(--green);background:#e8f5f0;padding:5px 8px;border-radius:12px;font-size:11px}.status.cancelled{color:#a43d3d;background:#fbeaea}.links{white-space:nowrap}.links a{color:var(--accent);font-weight:700;text-decoration:none;margin-left:9px}.empty{text-align:center;padding:55px}.empty span{display:block;color:var(--muted);margin-top:6px}.companies{margin-top:18px}.companies>article{display:grid;grid-template-columns:44px 1fr auto auto;gap:12px;align-items:center;padding:14px 20px;border-top:1px solid var(--line)}.company-icon{width:38px;height:38px;display:grid;place-items:center;background:#e8edef;border-radius:8px;font-weight:800}.companies small{display:block;color:var(--muted);margin-top:4px}.env,.cert{font-size:11px;background:#eef1f3;border-radius:12px;padding:6px 9px}.cert.ok{background:#e8f5f0;color:var(--green)}.muted{padding:25px}.flash{padding:13px 16px;border-radius:8px;margin-bottom:18px}.flash.success{background:#e5f4ee;color:#14664d}.flash.error{background:#f9e5e5;color:#8d3030}dialog{border:0;border-radius:13px;padding:0;width:min(620px,calc(100% - 30px));box-shadow:0 20px 70px #0b1b2455}dialog::backdrop{background:#0d1d26aa}dialog form{padding:25px}.modal-head{display:flex;justify-content:space-between;margin-bottom:22px}.modal-head h2{font-size:24px;margin-top:4px}.modal-head button{border:0;font-size:22px;padding:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid .full{grid-column:1/-1}dialog footer{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.drop{margin-top:18px;border:1px dashed #aab7be;border-radius:9px;padding:26px;text-align:center}.drop input{margin-bottom:12px}.drop span,.drop small{display:block}.drop small{margin-top:4px;color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}@keyframes danfehub-girar{to{transform:rotate(360deg)}}button.is-loading{position:relative;color:transparent!important}button.is-loading[disabled]{opacity:1}button.is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;border:2px solid #ffffff00;border-top-color:var(--ink);border-right-color:#00000030;border-bottom-color:#00000030;border-left-color:#00000030;border-radius:50%;animation:danfehub-girar .6s linear infinite}button.primary.is-loading::after{border-top-color:#fff;border-right-color:#ffffff4d;border-bottom-color:#ffffff4d;border-left-color:#ffffff4d}@media(max-width:1000px){aside{position:static;width:auto;height:auto;padding:16px}.brand{padding:0}.aside-foot,nav{display:none}main{margin:0;padding:25px 18px}.metrics{grid-template-columns:1fr}header{align-items:flex-start;gap:20px}.actions{flex-wrap:wrap}}@media(max-width:600px){header{display:block}.actions{margin-top:18px}.grid{grid-template-columns:1fr}.grid .full{grid-column:auto}.companies>article{grid-template-columns:44px 1fr}.env,.cert{grid-column:2}.metrics{gap:9px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.update-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:10px;background:var(--nav);color:#fff;box-shadow:0 10px 30px #0b1b2455;font-size:13px}
.update-bar button{background:var(--accent);border-color:var(--accent);color:#fff;padding:7px 13px;font-size:12px}

.table-head{flex-wrap:wrap;gap:12px}.toast-stack{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:9999;pointer-events:none}.toast{background:#17232e;color:#fff;padding:11px 16px;border-radius:9px;font-size:13px;line-height:1.4;box-shadow:0 10px 30px #17232e40;max-width:min(520px,92vw);transition:opacity .3s,transform .3s}.toast-error{background:#8c2f24}.toast.saindo{opacity:0;transform:translateY(8px)}[hidden]{display:none!important}#save-folder-dialog .modal-body{padding:25px}#save-folder-dialog .folder-hint{margin:14px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}#save-folder-dialog .folder-current{margin:14px 0 0;font-size:13px;color:var(--ink)}#save-folder-dialog .folder-current strong{color:var(--accent)}#save-folder-dialog footer{flex-wrap:wrap}.toast button{margin-left:12px;border:1px solid #ffffff59;background:transparent;color:inherit;font:inherit;font-size:12px;font-weight:650;padding:3px 9px;border-radius:6px;cursor:pointer}.toast button:hover{background:#ffffff26}.nfce{background:#e7f5ec;color:#2c6b45}
/* td strong tem max-width:240px com reticencias para nome de empresa nao
   esticar a tabela. O aviso de lista vazia nao e dado de coluna: cabe inteiro. */
td.empty strong{display:block;max-width:none;white-space:normal;overflow:visible;text-overflow:clip}
