:root{
    --azul:#1351b4;          /* gov.br azul */
    --azul-esc:#0c326f;
    --azul-claro:#155bcb;
    --verde:#168821;         /* gov.br verde */
    --amarelo:#ffcd07;       /* gov.br amarelo */
    --bg:#f6f8fb;
    --card:#ffffff;
    --txt:#1c2b3a;
    --muted:#5a6b7b;
    --borda:#d9e1ec;
  }
  .dark{
    --azul:#2b6fe0;
    --azul-esc:#cbd9f0;
    --azul-claro:#3f82f0;
    --bg:#0f1722;
    --card:#16202e;
    --txt:#e6edf5;
    --muted:#9aabbd;
    --borda:#2a3a4d;
  }
  *{box-sizing:border-box;}
  /* barra de rolagem sempre presente: o conteúdo nunca desloca lateralmente */
  html{scrollbar-gutter:stable;overflow-y:scroll;}
  body{
    font-family:"Rawline",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--bg); color:var(--txt); margin:0; min-height:100vh;
    transition:background .2s,color .2s;
  }
  /* faixa superior gov.br */
  .barra{height:4px;background:linear-gradient(90deg,var(--verde) 0 33%,var(--amarelo) 33% 66%,var(--azul) 66% 100%);}
  header{ background:var(--azul); color:#fff; padding:18px 0; }
  .header-inner{
    max-width:600px; margin:0 auto; width:100%; padding:0 16px;
    display:flex; align-items:center; gap:14px;
  }
  header .logo{
    width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.15);
    display:flex;align-items:center;justify-content:center;font-size:20px;
  }
  header h1{font-size:18px;margin:0;font-weight:700;letter-spacing:.2px;}
  header span{display:block;font-size:12px;font-weight:400;opacity:.85;margin-top:2px;}
  .toggle{
    flex:0 0 auto;margin-left:auto;
    background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.25);
    border-radius:8px;padding:8px 11px;font-size:16px;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:background .15s;
  }
  .toggle:hover{background:rgba(255,255,255,.28);}
  .wrap{max-width:600px;margin:28px auto;padding:0 16px;}
  .card{
    background:var(--card);border:1px solid var(--borda);border-radius:14px;
    padding:26px;box-shadow:0 6px 20px rgba(19,81,180,.06);
  }
  .card h2{font-size:15px;margin:0 0 2px;color:var(--azul-esc);}
  .card .desc{font-size:13px;color:var(--muted);margin:0 0 18px;}
  label{display:block;font-size:13px;font-weight:600;color:var(--txt);margin:16px 0 6px;}
  input,select{
    width:100%;padding:11px 13px;font-size:15px;border-radius:9px;
    border:1px solid var(--borda);background:#fff;color:var(--txt);transition:border .15s,box-shadow .15s;
  }
  input:focus,select:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(19,81,180,.15);}
  .row{display:flex;gap:12px;flex-wrap:wrap;}
  .row>div{flex:1;min-width:120px;}
  .out-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:22px 0 8px;}
  .out{
    padding:15px;background:#eef4ff;border:1px solid #cdddf7;border-left:4px solid var(--azul);
    border-radius:9px;font-size:13.5px;word-break:break-all;line-height:1.5;color:var(--muted);
  }
  .dark input,.dark select{background:#0f1722;color:var(--txt);}
  .dark input::placeholder{color:#5a6b7b;}
  .dark .out{background:#1b2a3d;border-color:#2a3a4d;}
  .dark code{background:#1b2a3d;}
  .dark .btn-sec:hover{background:#1b2a3d;}
  .out a,.res a{color:var(--azul);text-decoration:none;font-weight:600;word-break:break-all;}
  .out a:hover,.res a:hover{text-decoration:underline;}
  .btns{display:flex;gap:10px;margin-top:16px;}
  button{
    flex:1;padding:12px;font-size:14px;font-weight:700;border:none;border-radius:9px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,transform .05s;
  }
  button:active{transform:translateY(1px);}
  .btn-primary{background:var(--azul);color:#fff;}
  .btn-primary:hover{background:var(--azul-claro);}
  .btn-sec{background:#fff;color:var(--azul);border:1px solid var(--azul);}
  .btn-sec:hover{background:#eef4ff;}
  button:disabled{opacity:.5;cursor:not-allowed;}
  .btn-primary:disabled:hover{background:var(--azul);}
  .btn-sec:disabled:hover{background:#fff;}
  .dark .btn-sec:disabled:hover{background:var(--card);}
  .msg{color:var(--verde);font-size:13px;font-weight:600;margin-top:10px;min-height:18px;}
  .hint{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.5;}
  .opt-row{display:flex;align-items:center;gap:12px;margin-top:12px;}
  .chk{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;margin:0;cursor:pointer;flex:1;}
  .chk input[type=checkbox]{
    -webkit-appearance:auto;appearance:auto;
    width:18px;height:18px;min-width:18px;flex:0 0 auto;
    padding:0;margin:0;border:0;border-radius:0;box-shadow:none;
    accent-color:var(--azul);cursor:pointer;transition:none;
  }
  .chk input[type=checkbox]:focus{outline:none;box-shadow:none;border:0;}
  .mini{flex:0 0 120px;width:120px;}
  .mini:disabled{opacity:.4;cursor:not-allowed;}
  code{background:#eef4ff;padding:1px 6px;border-radius:5px;color:var(--azul);font-size:12px;}
  footer{text-align:center;font-size:11px;color:var(--muted);margin:18px 0 28px;}
  /* abas */
  .tabs{display:flex;gap:6px;margin-bottom:18px;background:var(--card);border:1px solid var(--borda);border-radius:12px;padding:5px;}
  .tab-btn{flex:1;padding:11px;font-size:14px;font-weight:700;border:none;border-radius:8px;cursor:pointer;background:transparent;color:var(--muted);transition:background .15s,color .15s;}
  .tab-btn:hover{color:var(--txt);}
  .tab-btn.active{background:var(--azul);color:#fff;}
  .beta{font-size:9px;font-weight:700;background:var(--amarelo);color:#5a4b00;padding:1px 5px;border-radius:6px;margin-left:5px;vertical-align:middle;text-transform:uppercase;letter-spacing:.3px;}
  .tab-panel.hidden{display:none;}
  .subtabs{display:flex;gap:6px;margin-bottom:16px;background:var(--bg);border:1px solid var(--borda);border-radius:10px;padding:4px;}
  .subtab-btn{flex:1;padding:8px;font-size:13px;font-weight:700;border:none;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s,color .15s;}
  .subtab-btn:hover{color:var(--txt);}
  .subtab-btn.active{background:var(--azul);color:#fff;}
  .sub-panel.hidden{display:none;}
  .card + .card{margin-top:18px;}
  /* sanfonas (ferramentas) */
  .acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;border-radius:0;padding:0;margin:0;cursor:pointer;font-size:15px;font-weight:700;color:var(--azul-esc);text-align:left;}
  .acc-head:hover{color:var(--azul);}
  .acc-head:active{transform:none;}
  .acc-ico{display:inline-block;flex:0 0 auto;color:var(--muted);font-size:13px;transition:transform .2s;}
  .acc.open .acc-ico{transform:rotate(90deg);}
  .acc-body{display:none;margin-top:16px;}
  .acc.open .acc-body{display:block;}
  .divisor{height:1px;background:var(--borda);margin:22px 0;border:0;}
  .res{padding:15px;background:#eef4ff;border:1px solid #cdddf7;border-left:4px solid var(--azul);border-radius:9px;font-size:14px;line-height:1.55;color:var(--txt);}
  .dark .res{background:#1b2a3d;border-color:#2a3a4d;}
  .res .data{font-weight:700;color:var(--azul);}
  .res .leg{display:block;font-size:12px;color:var(--muted);margin-top:3px;}
  .res-extenso{min-height:22px;font-size:15px;line-height:1.6;color:var(--txt);font-weight:600;}
  .res b{color:var(--azul);}
  .res .alerta{color:#c92a2a;font-weight:700;}
  .res .ok{color:var(--verde);font-weight:700;}
  .tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:2px;}
  .tbl th,.tbl td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--borda);}
  .tbl th{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.3px;}
  .tbl td.cap{font-weight:700;color:var(--azul);}
  .tbl tr.na{opacity:.4;}

/* Redesign operacional */
:root{
  --surface:#ffffff;
  --surface-2:#eef4ff;
  --shadow:0 12px 30px rgba(28,43,58,.07);
  --app-width:960px;
}
.dark{
  --surface:#16202e;
  --surface-2:#101a27;
  --shadow:0 14px 34px rgba(0,0,0,.22);
}
body{
  background:
    linear-gradient(180deg, rgba(19,81,180,.07), transparent 260px),
    var(--bg);
}
header{
  padding:16px 0;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset;
}
.header-inner,
.wrap{
  max-width:var(--app-width);
}
.wrap{
  margin:24px auto 34px;
}
header .logo{
  border-radius:8px;
}
.tabs{
  max-width:var(--app-width);
  margin:0 auto 18px;
  border-radius:10px;
  box-shadow:var(--shadow);
}
.tab-btn,
.subtab-btn{
  min-height:38px;
}
.card{
  border-radius:8px;
  padding:22px;
  box-shadow:var(--shadow);
}
#panel-gerador .card{
  width:100%;
  max-width:none;
  margin:0 auto;
}
#panel-ferramentas:not(.hidden){
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
  width:100%;
}
#panel-ferramentas.hidden{
  display:none;
}
#panel-ferramentas .card + .card{
  margin-top:0;
}
.acc-head{
  min-height:46px;
  flex-wrap:wrap;
  align-content:center;
}
.acc-title{
  flex:1;
}
.tool-summary{
  order:3;
  flex:1 0 100%;
  color:var(--muted);
  font-size:12px;
  font-weight:500;
  line-height:1.35;
  margin-top:5px;
  padding-right:24px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.acc.open .tool-summary{
  display:none;
}
#panel-ferramentas .acc{
  min-height:94px;
}
#panel-ferramentas .acc-body .row{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
#panel-ferramentas .acc-body .row>div{
  min-width:0;
}
input,select,.out,.res{
  border-radius:8px;
}
input[type=file]{
  padding:10px;
  background:var(--surface);
}
button:focus-visible,
input:focus-visible,
select:focus-visible{
  outline:3px solid rgba(255,205,7,.7);
  outline-offset:2px;
}
.ia-card{
  padding:20px;
}
.ia-workspace{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:start;
}
.ia-upload{
  background:var(--surface-2);
  border:1px solid var(--borda);
  border-radius:8px;
  padding:18px;
}
.ia-status{
  margin-top:12px;
  background:var(--surface);
}
.ia-result:empty{
  min-height:160px;
  border:1px dashed var(--borda);
  border-radius:8px;
  background:rgba(255,255,255,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  text-align:center;
  padding:22px;
}
.ia-result:empty::before{
  content:"O resultado da análise aparecerá aqui.";
  max-width:260px;
  font-size:13px;
  line-height:1.45;
}
.dark .ia-result:empty{
  background:rgba(255,255,255,.03);
}
.ia-result .tbl{
  background:var(--surface);
  border:1px solid var(--borda);
  border-radius:8px;
  overflow:hidden;
  display:table;
}
.ia-result .tbl td:first-child{
  width:190px;
  color:var(--muted);
  font-weight:700;
}
.ia-result .out-label:first-child{
  margin-top:0;
}
footer{
  margin-top:24px;
}
@media (max-width:760px){
  .header-inner,
  .wrap{
    max-width:100%;
  }
  .wrap{
    margin:18px auto 26px;
  }
  .tabs{
    max-width:none;
  }
  .card{
    padding:18px;
  }
  #panel-ferramentas:not(.hidden),
  .ia-workspace{
    display:block;
  }
  #panel-ferramentas .card + .card,
  .ia-result{
    margin-top:14px;
  }
  .btns{
    flex-wrap:wrap;
  }
  .btns button{
    min-width:120px;
  }
  #panel-ferramentas .btns{
    display:grid;
    grid-template-columns:1fr;
  }
  #panel-ferramentas .btns button{
    width:100%;
    min-width:0;
  }
}

@media (max-width:520px){
  #panel-gerador .btns{
    display:grid;
    grid-template-columns:1fr;
  }
  #panel-gerador .btns button{
    width:100%;
    min-width:0;
  }
  .opt-row{
    align-items:flex-start;
  }
  .mini{
    flex:0 0 96px;
    width:96px;
  }
  .ia-result .tbl,
  .ia-result .tbl tbody,
  .ia-result .tbl tr,
  .ia-result .tbl td{
    display:block;
    width:100%;
  }
  .ia-result .tbl tr{
    padding:8px 0;
    border-bottom:1px solid var(--borda);
  }
  .ia-result .tbl td{
    border-bottom:0;
    padding:2px 8px;
  }
  .ia-result .tbl td:first-child{
    width:100%;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.3px;
  }
}

@media (max-width:900px){
  #panel-ferramentas:not(.hidden){
    display:flex !important;
    flex-direction:column;
    gap:14px;
    width:100%;
  }
  #panel-ferramentas .card{
    width:100%;
    max-width:100%;
    margin-top:0;
  }
  #panel-ferramentas .card + .card{
    margin-top:0;
  }
  #panel-ferramentas .acc-head{
    width:100%;
  }
  #panel-ferramentas .acc-body .row{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  #panel-ferramentas .acc-body .row>div,
  #panel-ferramentas input,
  #panel-ferramentas select,
  #panel-ferramentas .res,
  #panel-ferramentas .btns,
  #panel-ferramentas .btns button{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  #panel-ferramentas input[type=date],
  #panel-ferramentas input[type=text],
  #panel-ferramentas select{
    display:block;
    box-sizing:border-box;
    min-height:44px;
    padding:11px 13px;
    line-height:1.35;
    -webkit-appearance:none;
    appearance:none;
  }
  #panel-ferramentas .chk{
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    align-items:start;
    width:100%;
    max-width:100%;
    min-width:0;
    line-height:1.35;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  #panel-ferramentas .chk input[type=checkbox]{
    margin-top:1px;
  }
}
