:root{
  --wine:#7b1119;
  --wine-dark:#5f0c12;
  --wine-soft:#f6ecee;
  --wine-accent:#9e2029;
  --ink:#242628;
  --muted:#6b7075;
  --line:#e2e4e6;
  --bg:#f4f5f3;
  --card:#ffffff;
  --ok:#177245;
  --warn:#916000;
  --bad:#b42318;
  --shadow:0 10px 30px rgba(40,31,31,.07);
  --radius:14px;
}

*{box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth}
body{
  margin:0;
  min-width:320px;
  font-family:"Segoe UI Variable Text","Segoe UI",Roboto,Arial,sans-serif;
  font-size:15px;
  line-height:1.5;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
a{color:var(--wine);text-decoration:none}
a:hover{text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(158,32,41,.20);outline-offset:2px}

.shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{
  min-height:92px;
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:20;
}
.topbar-inner{
  width:min(1180px,calc(100% - 40px));
  min-height:92px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{display:flex;align-items:center;gap:18px;min-width:0;color:inherit}
.brand:hover{color:inherit}
.brand img{display:block;width:auto;height:68px;max-width:150px;object-fit:contain;flex:0 0 auto}
.brand-copy{min-width:0;border-left:1px solid var(--line);padding-left:18px}
.brand-copy strong{display:block;color:var(--wine);font-size:15px;font-weight:750;letter-spacing:.055em;line-height:1.25}
.brand-copy span{display:block;margin-top:3px;font-size:12px;color:var(--muted);white-space:nowrap}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.user-chip{display:flex;flex-direction:column;align-items:flex-end;margin-right:4px;line-height:1.2}
.user-chip strong{font-size:13px;font-weight:700}
.user-chip span{font-size:11px;color:var(--muted);margin-top:3px}

.container{width:min(1180px,calc(100% - 40px));margin:28px auto 60px}
.hero{
  background:linear-gradient(125deg,#6c1017,#941f28);
  color:#fff;
  padding:30px 32px;
  border-radius:18px;
  box-shadow:var(--shadow);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  overflow:hidden;
}
.hero h1{margin:0 0 7px;font-size:clamp(27px,3vw,38px);font-weight:720;letter-spacing:-.025em;line-height:1.15}
.hero p{margin:0;opacity:.92;max-width:720px;font-size:15px}
.hero-badge{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:13px 16px;border-radius:12px;min-width:190px;max-width:360px;overflow-wrap:anywhere}
.hero-badge strong{font-weight:700}
.hero-badge span{font-size:13px;opacity:.88}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-top:20px;min-width:0}
.card h2,.card h3{margin-top:0}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.section-title h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.012em}
.section-title p{margin:4px 0 0}
.muted{color:var(--muted)}
.small{font-size:12px}
.page-intro{max-width:720px}

.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.field{grid-column:span 4;min-width:0}
.field.wide{grid-column:span 8}
.field.full{grid-column:1/-1}
.field.half{grid-column:span 6}
.field label{display:block;font-size:13px;font-weight:650;margin-bottom:7px;color:#3d4144}
.field input:not([type="checkbox"]):not([type="radio"]),.field select,.field textarea{
  width:100%;
  max-width:100%;
  border:1px solid #cfd3d6;
  border-radius:9px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
  outline:none;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.field textarea{min-height:88px;resize:vertical}
.field input:not([type="checkbox"]):not([type="radio"]):focus,.field select:focus,.field textarea:focus{border-color:var(--wine-accent);box-shadow:0 0 0 3px rgba(158,32,41,.10)}
.field input[readonly]{background:#f6f6f5;color:#5f6366}
.required:after{content:' *';color:var(--bad)}

.btn{
  border:0;
  border-radius:9px;
  padding:10px 15px;
  min-height:40px;
  font-weight:680;
  font-size:14px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.2;
  text-decoration:none!important;
  transition:transform .12s,background .15s,border-color .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--wine);color:#fff}
.btn-primary:hover{background:var(--wine-dark);color:#fff}
.btn-light{background:#f1eeee;color:var(--wine);border:1px solid transparent}
.btn-light:hover{background:#e9e2e3;color:var(--wine)}
.btn-outline{background:#fff;color:#4b4f52;border:1px solid var(--line)}
.btn-outline:hover{border-color:#c9ccce;color:var(--wine)}
.btn-danger{background:#fff4f4;color:var(--bad);border:1px solid #efcccc}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-sm{padding:8px 11px;min-height:34px;font-size:12px}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:20px}

.steps{display:flex;gap:8px;overflow:auto;padding:2px 0 4px;scrollbar-width:thin}
.step{white-space:nowrap;border-radius:999px;background:#ececeb;color:#62666a;padding:8px 13px;font-size:12px;font-weight:700}
.step.active{background:var(--wine);color:#fff}
.step.done{background:#e7f4ec;color:var(--ok)}
.notice{border-radius:11px;padding:13px 15px;margin:12px 0;background:#f0f4f7;border:1px solid #d8e0e6}
.notice.ok{background:#edf8f1;border-color:#c7e8d2;color:#125c38}
.notice.warn{background:#fff8e8;border-color:#f2d99d;color:#784600}
.notice.bad{background:#fff0f0;border-color:#f1c3c3;color:#8f1d1d}
.hidden{display:none!important}

.repeat-item{border:1px dashed #cfd1d2;border-radius:11px;padding:16px;margin-bottom:12px;background:#fafafa}
.repeat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.repeat-head strong{color:var(--wine)}
.upload-row{border:1px solid var(--line);border-radius:11px;padding:15px;margin-bottom:12px;background:#fff}
.upload-row.required-doc{border-left:4px solid var(--wine)}
.upload-row input[type="file"]{display:block;width:100%;margin-top:10px;font-size:13px}
.file-summary{font-size:12px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}

.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.document-option{
  min-height:58px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafafa;
  cursor:pointer;
  line-height:1.35;
}
.document-option:hover{border-color:#c9b9bb;background:#fcf8f8}
.document-option input[type="checkbox"],.consent input[type="checkbox"]{
  appearance:auto;
  width:17px!important;
  height:17px!important;
  min-width:17px;
  margin:0;
  padding:0;
  accent-color:var(--wine);
  transform:none!important;
  flex:0 0 auto;
}
.document-option span{font-size:13px;font-weight:600;color:#3e4245}
.consent{display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fafafa}
.consent input[type="checkbox"]{margin-top:3px}

.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.kpi b{display:block;font-size:27px;line-height:1.1;color:var(--wine);font-weight:720;margin-bottom:6px}
.kpi span{font-size:13px;color:#44484b}
.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.toolbar input,.toolbar select{border:1px solid #cfd3d6;border-radius:9px;padding:9px 11px;max-width:100%}
.toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.table-wrap{overflow:auto;margin-top:6px}
.table{width:100%;border-collapse:collapse;margin-top:8px;min-width:860px}
.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}
.table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:750}
.table tbody tr:hover{background:#fbfbfa}
.status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.025em;white-space:nowrap}
.status.PENDENTE{background:#fff3d8;color:#7c4a00}
.status.ENVIADO,.status.ATIVO{background:#e7f5ed;color:#12633b}
.status.CANCELADO,.status.ERRO,.status.INATIVO{background:#fdeaea;color:#9b1c1c}
.status.DESABILITADO{background:#eee;color:#555}
.role-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f1eeee;color:var(--wine);font-size:10px;font-weight:800}

.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f7f5f3,#ece7e4)}
.login-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:var(--shadow);border:1px solid var(--line)}
.login-card img{width:auto;height:90px;max-width:180px;object-fit:contain;display:block;margin:0 auto 22px}
.login-card h1{text-align:center;font-size:23px;font-weight:700;margin:0 0 6px}
.login-card p{text-align:center;color:var(--muted);margin:0 0 18px}
.login-card .field{margin-top:14px}
.login-card .btn{width:100%;margin-top:18px}

.settings-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.settings-menu{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}
.settings-menu a{display:block;padding:11px 12px;border-radius:9px;color:#45494c;font-weight:650;font-size:13px}
.settings-menu a:hover,.settings-menu a.active{background:var(--wine-soft);color:var(--wine)}
.user-list{display:grid;gap:10px;margin-top:14px}
.user-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(170px,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:13px 14px}
.user-row strong{display:block}
.user-row .user-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}

.json-section{border:1px solid var(--line);border-radius:11px;padding:16px;margin-bottom:14px}
.json-section h3{color:var(--wine);font-size:16px}
.definition{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:8px 20px}
.definition dt{font-weight:700;color:#555}
.definition dd{margin:0;word-break:break-word}
.footer{margin-top:auto;padding:28px 20px;text-align:center;color:var(--muted);font-size:12px}

@media(max-width:960px){
  .field,.field.wide,.field.half{grid-column:span 6}
  .field.full{grid-column:1/-1}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero{align-items:flex-start;flex-direction:column}
  .hero-badge{width:100%;max-width:none}
  .settings-layout{grid-template-columns:1fr}
  .settings-menu{display:flex;gap:5px;overflow:auto}
  .settings-menu a{white-space:nowrap}
}

@media(max-width:700px){
  .topbar{min-height:78px}
  .topbar-inner{width:min(100% - 24px,1180px);min-height:78px;gap:8px 10px;flex-wrap:wrap;padding:8px 0}
  .brand{gap:10px}
  .brand img{height:56px;max-width:120px}
  .brand-copy{display:none}
  .user-chip{display:none}
  .top-actions{width:100%;justify-content:flex-start;gap:5px;overflow:auto;padding-bottom:2px}
  .top-actions .btn{padding:8px 10px;min-height:36px;font-size:12px;white-space:nowrap}
  .container{width:min(100% - 20px,1180px);margin:16px auto 40px}
  .hero{padding:23px 20px;border-radius:14px}
  .hero h1{font-size:27px}
  .card{padding:17px;margin-top:14px}
  .field,.field.wide,.field.half{grid-column:1/-1}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .document-grid{grid-template-columns:1fr}
  .user-row{grid-template-columns:1fr}
  .user-row .user-actions{justify-content:flex-start}
  .definition{grid-template-columns:1fr;gap:3px}
  .definition dd{margin-bottom:9px}
}

@media(max-width:430px){
  .kpis{grid-template-columns:1fr 1fr}
  .kpi{padding:13px}
  .kpi b{font-size:24px}
  .actions .btn{flex:1}
  .login-card{padding:24px 18px}
}
