
:root{
  --ink:#1B2A44;
  --ink-2:#2C3E5C;
  --paper:#EEEEE7;
  --paper-2:#F7F7F2;
  --card:#FFFFFF;
  --rule:#D8D6CB;
  --gold:#8A6A1E;
  --gold-bg:#F3ECD9;
  --red:#8C2318;
  --red-bg:#F5E1DE;
  --slate:#46566B;
  --slate-bg:#E7EAEE;
  --green:#2E6B4F;
  --green-bg:#DEEBE3;
  --text:#22293A;
  --text-dim:#5B6472;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--paper);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;}
::selection{background:var(--gold-bg);}

.wrap{max-width:1180px;margin:0 auto;padding:0 20px 60px;}

header.top{
  background:var(--ink);
  color:#fff;
  padding:28px 0 22px;
  border-bottom:4px double #4A5C7D;
}
header.top .wrap{padding-bottom:0;}
header.top h1{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:600;
  font-size:28px;
  margin:0 0 4px;
  letter-spacing:.2px;
}
header.top .sub{
  font-size:13px;
  color:#C6CEDD;
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
}
header.top .sub b{color:#fff;font-weight:600;}

.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin:-26px 0 26px;
}
.stat{
  background:var(--card);
  border:1px solid var(--rule);
  border-top:3px solid var(--ink);
  padding:16px 18px;
  box-shadow:0 2px 6px rgba(27,42,68,.06);
}
.stat .label{
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-dim);
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  margin-bottom:6px;
}
.stat .value{
  font-family:Georgia,'Times New Roman',serif;
  font-size:22px;
  font-weight:600;
  color:var(--ink);
}
.stat.alert .value{color:var(--red);}

.stamp{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  font-weight:600;
  font-size:11px;
  letter-spacing:.06em;
  padding:4px 10px;
  border-radius:3px;
  border:1.5px solid currentColor;
  text-transform:uppercase;
  white-space:nowrap;
}
.stamp.gold{color:var(--gold);background:var(--gold-bg);}
.stamp.slate{color:var(--slate);background:var(--slate-bg);}
.stamp.red{color:var(--red);background:var(--red-bg);}
.stamp.green{color:var(--green);background:var(--green-bg);}

nav.tabs{
  display:flex;
  gap:2px;
  border-bottom:2px solid var(--ink);
  margin-bottom:20px;
}
nav.tabs button{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  font-weight:600;
  font-size:13.5px;
  padding:10px 18px;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-bottom:none;
  color:var(--text-dim);
  cursor:pointer;
  position:relative;
  top:2px;
}
nav.tabs button.active{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
nav.tabs button:hover:not(.active){color:var(--ink);}

section.panel{display:none;}
section.panel.active{display:block;}

.toolbar{
  display:flex;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.toolbar input[type=search]{
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  font-size:13px;
  padding:8px 12px;
  border:1px solid var(--rule);
  background:var(--card);
  min-width:260px;
  color:var(--text);
}
.toolbar input[type=search]:focus{outline:2px solid var(--ink);outline-offset:1px;}
.toolbar .count{
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  font-size:12px;
  color:var(--text-dim);
}
.toolbar select{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:13px;
  padding:7px 10px;
  border:1px solid var(--rule);
  background:var(--card);
  color:var(--text);
}

.card-table{
  background:var(--card);
  border:1px solid var(--rule);
  overflow:auto;
  max-height:66vh;
}
table{border-collapse:collapse;width:100%;font-size:13px;}
thead th{
  position:sticky;top:0;
  background:var(--ink);
  color:#fff;
  text-align:left;
  padding:10px 12px;
  font-weight:600;
  font-size:11.5px;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.12);
}
thead th:hover{background:var(--ink-2);}
thead th .arrow-sort{opacity:.5;font-size:10px;margin-left:4px;}
tbody td{
  padding:9px 12px;
  border-bottom:1px solid var(--rule);
  vertical-align:top;
}
tbody tr:nth-child(even){background:var(--paper-2);}
tbody tr:hover{background:var(--gold-bg);}
td.num, th.num{text-align:right;font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;}
td.mono{font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;font-size:12px;color:var(--text-dim);}
tfoot td{
  font-weight:700;
  background:var(--paper-2);
  border-top:2px solid var(--ink);
  padding:10px 12px;
  position:sticky;bottom:0;
}

.badge-obs{
  display:inline-block;
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  font-size:10.5px;
  font-weight:600;
  padding:2px 7px;
  border-radius:2px;
  letter-spacing:.03em;
}
.badge-obs.judicial{color:var(--red);background:var(--red-bg);}
.badge-obs.extra{color:var(--gold);background:var(--gold-bg);}
.badge-obs.serasa{color:var(--slate);background:var(--slate-bg);}
.badge-obs.manual{color:var(--green);background:var(--green-bg);}

/* Manual entry form */
.manual-intro{
  background:var(--paper-2);
  border:1px dashed var(--rule);
  padding:14px 16px;
  font-size:12.5px;
  color:var(--text-dim);
  margin-bottom:20px;
  line-height:1.5;
}
.manual-form{
  background:var(--card);
  border:1px solid var(--rule);
  padding:18px 20px;
  margin-bottom:20px;
}
.f-row{display:flex;gap:16px;margin-bottom:14px;flex-wrap:wrap;}
.f-row label{
  flex:1;
  min-width:180px;
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:11.5px;
  font-weight:600;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.f-row label.f-wide{flex:1 1 100%;}
.f-row input{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:14px;
  font-weight:400;
  text-transform:none;
  padding:9px 10px;
  border:1px solid var(--rule);
  background:var(--paper-2);
  color:var(--text);
}
.f-row input:focus{outline:2px solid var(--ink);outline-offset:1px;background:#fff;}
.f-actions{display:flex;align-items:center;gap:14px;}
.form-msg{font-size:12.5px;color:var(--green);font-weight:600;}
.manual-h3{
  font-family:Georgia,'Times New Roman',serif;
  font-size:15px;
  color:var(--ink);
  margin:0 0 10px;
}
button.btn-primary,button.btn-secondary,button.btn-danger,label.btn-secondary{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:12.5px;
  font-weight:600;
  padding:9px 16px;
  border:1.5px solid var(--ink);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
button.btn-primary{background:var(--ink);color:#fff;}
button.btn-primary:hover{background:var(--ink-2);}
button.btn-secondary,label.btn-secondary{background:var(--card);color:var(--ink);}
button.btn-secondary:hover,label.btn-secondary:hover{background:var(--paper-2);}
button.btn-danger{background:var(--card);color:var(--red);border-color:var(--red);}
button.btn-danger:hover{background:var(--red-bg);}
.export-box{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:20px 0 10px;
  padding-top:16px;
  border-top:1px dashed var(--rule);
}
.storage-note{
  font-size:11px;
  color:var(--text-dim);
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
}
.row-remove{
  background:none;border:1px solid var(--red);color:var(--red);
  font-size:10.5px;padding:3px 8px;cursor:pointer;
}
.row-remove:hover{background:var(--red-bg);}

/* Chart */
.chart-wrap{
  background:var(--card);
  border:1px solid var(--rule);
  padding:20px 20px 10px;
  margin-bottom:22px;
}
.chart-wrap h3{
  font-family:Georgia,'Times New Roman',serif;
  font-size:16px;
  margin:0 0 14px;
  color:var(--ink);
  font-weight:600;
}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;}
.bar-label{
  width:220px;flex-shrink:0;
  font-size:12px;
  text-align:right;
  color:var(--text-dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bar-track{flex:1;background:var(--paper-2);height:16px;position:relative;}
.bar-fill{
  height:100%;
  background:linear-gradient(90deg,var(--ink),var(--ink-2));
}
.bar-val{
  font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  font-size:11.5px;
  width:110px;
  flex-shrink:0;
  color:var(--ink);
  font-weight:600;
}

@media (max-width:820px){
  .stats{grid-template-columns:repeat(2,1fr);}
  .bar-label{width:120px;font-size:10.5px;}
}

[hidden]{display:none!important;}
.login-card{max-width:460px;margin:42px auto;padding:28px;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--ink);}
.login-card h2{font-family:Georgia,serif;color:var(--ink);margin-top:0;}
.login-card label{display:block;margin:16px 0;font-size:14px;}
.login-card input{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid var(--rule);font:inherit;}
.cloud-strip{max-width:1140px;margin:18px auto 42px;padding:14px 18px;background:var(--card);border:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;}
.cloud-strip p{margin:6px 0 0;}
.role-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--slate-bg);color:var(--slate);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.cloud-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.cloud-actions label{max-width:170px;}
button:disabled{opacity:.5;cursor:wait;}
.row-edit,.row-history{background:transparent;border:1px solid var(--ink);padding:3px 8px;color:var(--ink);cursor:pointer;font-size:11px;}
td .row-remove,td .row-edit,td .row-history{margin:2px;}
#syncStatus[data-state="ok"]{color:var(--green);}
#syncStatus[data-state="error"],#loginMsg{color:var(--red);}
.storage-note{font-size:12px;line-height:1.6;}
#formMsg{display:block;font-size:13px;line-height:1.5;}
dialog{width:min(980px,94vw);max-height:86vh;border:1px solid var(--rule);color:var(--text);background:var(--paper-2);padding:22px;}
dialog::backdrop{background:#1b2a4480;}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
#dialogBody{overflow:auto;}
#dialogBody pre{white-space:pre-wrap;overflow-wrap:anywhere;background:white;padding:12px;max-height:300px;overflow:auto;}
.empty{padding:24px;text-align:center;color:var(--text-dim);}
.warning{background:var(--gold-bg);border-left:3px solid var(--gold);padding:12px;line-height:1.5;}
.first-access{max-width:520px;margin:0 auto;}
.first-access .requirements{font-size:12px;line-height:1.55;color:var(--text-dim);}
.audit-item{border-bottom:1px solid var(--rule);padding:12px 0;}
.manual-form input:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media(max-width:700px){.cloud-strip{margin:16px 12px 42px;flex-direction:column;align-items:stretch;}nav.tabs{flex-wrap:wrap;}nav.tabs button{flex:1;padding:10px;font-size:12px;}.login-card{margin:24px 12px;}.toolbar input[type=search]{min-width:0;width:100%;}.stats .value{font-size:18px;}.manual-form .f-row{flex-wrap:wrap;}.wrap{padding-left:12px;padding-right:12px;}}
