/* fiscaldoo — painel de cliente (customer_portal). Mesma identidade visual do site
   público (fiscaldoo-docs/site/assets/site.css): Instrument Sans, azul #2E5CFF,
   fundo branco/preto, nunca o tom "ledger" petróleo/âmbar do portal interno
   (services/portal) nem nada em serif/dourado — este painel é a continuação do
   site público, não do painel técnico de operador. */
:root{
  --ink:#0A0B0E; --paper:#FFFFFF; --surface:#FAFAFB;
  --blue:#2E5CFF; --blue-deep:#1A3FD6; --blue-soft:#EAEFFF;
  --green:#15C47E; --green-soft:#E6FBF2;
  --red:#D23B3B; --red-soft:#FDEBEB;
  --amber:#B6790A; --amber-soft:#FBF0DC;
  --line:#E7E8EC;
  --text:#0A0B0E; --text-muted:#5B5F6B;
  --radius:10px;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--text);
  font-family:"Instrument Sans",system-ui,sans-serif; font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--blue-deep); text-decoration:none}
a:hover{text-decoration:underline}
code,.mono{font-family:"JetBrains Mono",ui-monospace,monospace}

.wrap{max-width:560px; margin:0 auto; padding:0 1.4rem}
.wrap.wide{max-width:880px}

nav.top{border-bottom:1px solid var(--line)}
nav.top .inner{max-width:880px; margin:0 auto; padding:1.1rem 1.4rem; display:flex; align-items:center; justify-content:space-between}
.brand{font-weight:800; font-size:1.25rem; display:flex; align-items:center; gap:.5rem; color:var(--text); letter-spacing:-.02em}
.brand .dot{width:9px;height:9px;border-radius:2px;background:var(--blue)}
.brand .tag{font-family:"JetBrains Mono",monospace; font-size:.68rem; font-weight:600; color:var(--text-muted); border:1px solid var(--line); border-radius:999px; padding:.2rem .6rem; letter-spacing:.03em}
.navlinks{display:flex; align-items:center; gap:1.2rem; font-size:.88rem; font-weight:600}
.navlinks a{color:var(--text-muted)}
.navlinks a:hover{color:var(--text); text-decoration:none}

main{padding:3.2rem 0 4rem}

h1{font-size:1.8rem; font-weight:800; letter-spacing:-.02em; margin:0 0 .5rem}
h2{font-size:1.2rem; font-weight:700; letter-spacing:-.01em; margin:0 0 .9rem}
.lede{color:var(--text-muted); font-size:.98rem; margin:0 0 1.8rem}

.card{border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; background:var(--surface); margin-bottom:1.2rem}

form .field{margin-bottom:1.1rem; display:flex; flex-direction:column; gap:.4rem}
form label{font-size:.86rem; font-weight:700; color:var(--text)}
form input{
  padding:.72rem .9rem; border-radius:8px; border:1.5px solid var(--line); background:var(--paper);
  font-family:inherit; font-size:.95rem; color:var(--text);
}
form input:focus{outline:none; border-color:var(--blue)}
form .hint{font-size:.8rem; color:var(--text-muted); margin-top:-.1rem}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:700; font-size:.92rem;
  padding:.78rem 1.4rem; border-radius:8px; border:1.5px solid transparent; cursor:pointer; width:100%;
  transition:transform .12s ease, box-shadow .12s ease; font-family:inherit;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--blue); color:#fff}
.btn.primary:hover{box-shadow:0 10px 24px -8px rgba(46,92,255,.5)}
.btn.ghost{border-color:var(--line); color:var(--text); background:transparent}
.btn.ghost:hover{border-color:var(--text)}

.alert{border-radius:8px; padding:.9rem 1.1rem; font-size:.88rem; margin-bottom:1.2rem; font-weight:500}
.alert.error{background:var(--red-soft); color:#8A2323}
.alert.warn{background:var(--amber-soft); color:#7A5308}
.alert.ok{background:var(--green-soft); color:#0E7A4F}

.pill{display:inline-flex; align-items:center; gap:.4rem; font-size:.76rem; font-weight:700; padding:.22rem .7rem; border-radius:999px}
.pill .d{width:7px;height:7px;border-radius:50%}
.pill.good{background:var(--green-soft); color:#0E7A4F} .pill.good .d{background:var(--green)}
.pill.warn{background:var(--amber-soft); color:#7A5308} .pill.warn .d{background:var(--amber)}
.pill.crit{background:var(--red-soft); color:#8A2323} .pill.crit .d{background:var(--red)}

.foot-links{margin-top:1.4rem; font-size:.88rem; color:var(--text-muted); text-align:center}

.kv{display:grid; grid-template-columns:auto 1fr; gap:.5rem 1.4rem; font-size:.92rem; margin-bottom:0}
.kv dt{color:var(--text-muted); font-weight:600}
.kv dd{margin:0; font-weight:600}

.tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:8px; margin-top:.8rem}
table{border-collapse:collapse; width:100%; font-size:.86rem}
th,td{text-align:left; padding:.6rem .8rem; border-bottom:1px solid var(--line)}
thead th{background:var(--paper); font-family:"JetBrains Mono",monospace; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted)}
tbody tr:last-child td{border-bottom:none}

.note{font-size:.82rem; color:var(--text-muted); margin-top:1.6rem; padding-top:1rem; border-top:1px solid var(--line)}
.empty{color:var(--text-muted); font-size:.9rem; padding:1rem; text-align:center; border:1px dashed var(--line); border-radius:8px}
.dev-box{background:var(--blue-soft); border:1px solid var(--blue); border-radius:8px; padding:.9rem 1.1rem; font-size:.85rem; margin-top:1rem; word-break:break-all}
