/* CAIO HUB • Design system operacional. Token fonte: identidade/design-tokens.json.
   SVGs são originais oficiais. Sem fontes externas, rastreadores ou imagens genéricas. */
:root {
  --caio-ink: #132B35;
  --caio-atlantic: #08756D;
  --caio-paper: #F6F4EE;
  --caio-white: #FFFFFF;
  --caio-border: #CCD8D5;
  --caio-danger: #A92332;
  --caio-muted: #52646B;
  --caio-focus: #08756D;
  --caio-shadow: 0 8px 32px rgb(19 43 53 / 5%);
  --caio-control-radius: 8px;
  --caio-panel-radius: 12px;
  --caio-touch: 44px;
  font-family: Arial, Helvetica, sans-serif;
}
html { scroll-padding-top: 24px; }
body { min-width: 320px; }
button, select, textarea, input { font: inherit; }
button, .sidebar nav a { cursor: pointer; }
button, input, select, textarea, .sidebar nav a { min-height: var(--caio-touch); }
a, button { -webkit-tap-highlight-color: transparent; }
:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--caio-focus);
  outline-offset: 3px;
}
:where(button,input,select,textarea):disabled { cursor: not-allowed; }
:where(p,li,td,th) { overflow-wrap: break-word; }
:where(.panel,.project-card,.candidate,.connections-grid article,.evidence-column) {
  border-radius: var(--caio-panel-radius);
  box-shadow: var(--caio-shadow);
}
:where(.primary,.secondary,.candidate button,.evidence-actions button) {
  min-height: var(--caio-touch);
  border-radius: var(--caio-control-radius);
  font-weight: 700;
  line-height: 1.25;
  transition: background-color .15s ease, border-color .15s ease;
}
.primary { background: var(--caio-atlantic); color: white; }
.secondary { background: var(--caio-white); border: 1px solid var(--caio-border); }
.primary:not(:disabled):hover { background: #065b55; }
.secondary:not(:disabled):hover { background: #eef5f1; border-color: #8dad9f; }
:where(.panel h2,.results h2,.revision-panel h3) { line-height: 1.2; }
.nav-icon { width: 19px; height: 19px; flex: none; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sidebar nav a { align-items: center; }
.sidebar nav a > span { font-size: 14px; width: auto; line-height: 1.25; text-align: left; }
.sidebar .brand img { width: 168px; height: 77px; }
.sidebar nav a[aria-current="page"] { font-weight: 700; }
.skip-link { position: fixed; left: 12px; top: -100px; z-index: 999;
  background: white; color: var(--caio-ink); padding: 12px 16px;
  border: 2px solid var(--caio-atlantic); border-radius: 8px; }
.skip-link:focus { top: 12px; }
.pagination { display: flex; align-items: center; justify-content: flex-end;
  flex-wrap: wrap; gap: 12px; padding: 16px 0 0; }
.pagination .secondary { min-width: 90px; padding: 10px 14px; }
.pagination .page-indicator { color: var(--caio-muted); font-size: 13px; }
.field-error, [role="alert"] { color: var(--caio-danger); }
.feedback { max-width: 900px; }
:where(.intro p,.editor-intro,.connections-grid p) { max-width: 70ch; }
@media (max-width: 1023px) {
  .app-shell { grid-template-columns: minmax(170px,200px) minmax(0,1fr); }
  .workspace { padding-left: clamp(20px,4vw,45px); padding-right: clamp(20px,4vw,45px); }
  .content-grid, .evidence-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 767px) {
  .app-shell { display: block; }
  .sidebar { padding: 10px 16px; gap: 12px; border-right: 0; border-bottom: 1px solid var(--caio-border); }
  .sidebar nav { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 3px; }
  .sidebar nav a { flex: 1; }
  .sidebar .brand img { width: 168px; height: 77px; }
  .sidebar nav a > span { font-size: 12px; text-align: center; }
  .sidebar nav a { display: flex; flex-direction: column; gap: 5px;
    justify-content: center; min-height: 58px; padding: 7px 4px; font-size: 12px; text-align: center; }
  .sidebar .brand { gap: 12px; }
  .topbar { min-height: 56px; padding: 8px 5%; }
  .workspace { padding: 28px 5% 32px; }
  .intro { margin-top: 22px; }
  .result-head { flex-wrap: wrap; }
  .panel { padding: clamp(18px,4vw,24px); }
  .session-form, .evidence-grid, .content-grid { grid-template-columns: minmax(0,1fr); }
  .delivery-form button, .revision-controls button { max-width: none; }
  .connections-grid,.projects-list { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 410px) {
  .workspace { padding-left: 16px; padding-right: 16px; }
  .panel-title { gap: 11px; }
  .result-head h2 { font-size: 23px; }
  .sidebar nav a { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}


/* CAIO / Governança de acesso multiusuário */
.team-panel { margin-top: 22px; border-top: 1px solid var(--caio-border); padding-top: 18px; }
.team-panel > summary { font-size: 15px; font-weight: 700; color: var(--caio-ink); cursor: pointer; padding: 8px 0; }
.team-panel h4 { font-size: 14px; margin: 25px 0 8px; }
.team-invite-form { display: grid; grid-template-columns: minmax(0,2fr) minmax(145px,1fr) auto; gap: 12px; align-items: end; margin: 16px 0 18px; }
.team-invite-form label,.team-secret label,.invitation-accept-form label { display:block; font-size:13px; font-weight:600; margin:0 0 8px; }
.team-invite-form .primary { margin:0; min-width: 150px; width:auto; white-space:nowrap; justify-content:center; }
.team-secret { border:1px solid #b7d4c7; border-radius:12px; background:#eff8f4; padding:16px; margin:20px 0; }
.team-secret input { font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size:13px; letter-spacing:.02em; }
.team-secret button { margin-top:10px; }
.team-secret p { margin:10px 0 0; }
.team-panel .evidence-item button { margin-top:12px; }
.invitation-accept-form { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin-top:12px; }
.invitation-accept-form label { flex:1; min-width:200px; }
.invitation-accept-form .primary { flex:0 0 auto; margin:0; width:auto; }
@media(max-width:850px){.team-invite-form{grid-template-columns:minmax(0,1fr) minmax(140px,.6fr)}.team-invite-form .primary{grid-column:1/-1;width:100%}}
@media(max-width:550px){.team-invite-form{grid-template-columns:1fr}.team-invite-form .primary{grid-column:auto}.invitation-accept-form .primary{width:100%}}


/* Execuções CAIO: leitura compacta e acessível de etapas, sem ações automáticas. */
.run-progress{margin-top:12px;padding-top:10px;border-top:1px solid var(--caio-border,#d8e2dd)}
.run-progress>summary{cursor:pointer;font-weight:600;font-size:14px;padding:10px 0;min-height:44px}
.run-steps{display:grid;grid-template-columns:1fr;gap:0}
.run-step{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--caio-border,#d8e2dd);align-items:center}
.run-step span{font-weight:600}
.run-step small{text-align:right;color:var(--caio-muted,#536772)}
.run-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.run-controls button{min-height:44px}
@media(max-width:540px){.run-step{align-items:flex-start}.run-controls button{width:100%}}


/* CAIO na Estrada: distinct field-programme module, same editorial design tokens. */
.estrada-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}
.estrada-form>div{min-width:0}
.estrada-form label{display:block;font-weight:600;font-size:13px;margin-bottom:8px}
.estrada-form .estrada-wide{grid-column:1/-1}
.estrada-form button{grid-column:1/-1;justify-self:start;margin-top:5px}
.estrada-form textarea{resize:vertical;min-height:84px;max-height:260px}
#estrada-list .evidence-item a{display:inline-flex;margin-top:9px;font-size:13px;font-weight:600;color:var(--caio-teal,#08756d)}
@media(max-width:900px){.estrada-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.estrada-form{grid-template-columns:minmax(0,1fr)}.estrada-form button{width:100%}}


/* Fonte oficial: cada fato permanece sob revisão manual e identificável. */
.research-proposals{display:grid;gap:12px;margin-top:16px;}
.research-proposals>p{font-size:14px;line-height:1.5;}
.research-proposal{padding:14px;border:1px solid var(--caio-border,#d8e2dd);border-radius:12px;display:grid;gap:8px;min-width:0;}
.research-proposal p{margin:0;overflow-wrap:anywhere;}
.research-proposal button{justify-self:start;min-height:44px;}
@media(max-width:500px){.research-proposal button{width:100%;}}

/* MFA: modo restrito antes de acessar qualquer recurso tenant. */
.mfa-panel{display:grid;gap:14px;padding:14px 0;}
.mfa-panel[hidden],.mfa-panel [hidden]{display:none!important;}
.mfa-panel h3,.mfa-panel p{margin:0;}
.mfa-panel form,.mfa-panel #mfa-setup,.mfa-panel #mfa-secret-panel{display:grid;gap:10px;}
.mfa-panel input{max-width:440px;min-height:44px;}
.mfa-panel button{justify-self:start;min-height:44px;}
#mfa-secret{font-family:ui-monospace,monospace;letter-spacing:.05em;overflow-wrap:anywhere;}
@media(max-width:550px){.mfa-panel button{width:100%;}}

/* CAIO HUB — conversa primeiro, formulário técnico como fallback. */
.command-composer{display:grid;gap:15px;margin-top:4px}
.command-composer form{display:grid;gap:10px}
.command-composer textarea{width:100%;min-height:136px;resize:vertical;border:1px solid var(--caio-border,#d8e2dd);
 border-radius:12px;padding:16px;font-family:inherit;font-size:15px;line-height:1.6;font-weight:500;background:#fff;color:var(--caio-ink,#132b35)}
.command-composer textarea:focus-visible{outline:3px solid var(--caio-teal,#08756d);outline-offset:3px}
.command-composer form button{justify-self:start}
.command-result{background:#f5f8f5;border:1px solid #c8dacf;border-radius:14px;padding:18px;display:grid;gap:12px}
.command-result[hidden],.command-details[hidden]{display:none!important}
.command-result>p{margin:0;font-size:14px;line-height:1.55}
.command-details{display:grid;gap:12px;margin:0}
.command-details>div{display:grid;gap:3px;border-top:1px solid #d9e5df;padding-top:9px}
.command-details dt{font-size:12px;color:#516872;font-weight:700}
.command-details dd{font-weight:600;font-size:14px;margin:0;overflow-wrap:anywhere}
.manual-brief{margin-top:18px;border-top:1px solid var(--caio-border,#d8e2dd);padding-top:12px}
.manual-brief>summary{cursor:pointer;font-weight:600;font-size:13px;min-height:44px;display:flex;align-items:center}
.manual-brief form{margin-top:16px}
@media(max-width:620px){.command-composer form button,.command-result>button{width:100%;justify-content:center}}

/* Próximo passo guiado: reutiliza dados da sessão e do dossiê, sem polling. */
.journey-guide{margin:21px 0 30px;padding:clamp(18px,3vw,28px);display:grid;gap:18px;
 border:1px solid #b9d8cc;border-radius:16px;background:#f1f7f2;color:#132b35}
.journey-guide[hidden]{display:none!important}
.journey-guide h3{font-size:clamp(19px,2.6vw,26px);letter-spacing:-.025em;margin:8px 0}
.journey-guide p{margin:0;line-height:1.65;max-width:70ch;font-size:14px}
.journey-guide-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:4px 0}
.journey-guide-steps li{min-width:0;padding:11px 8px;border:1px solid #d1ded7;border-radius:8px;
 font-size:12px;font-weight:600;text-align:center;color:#3b5553;background:#fff}
.journey-guide-steps li.complete{background:#e1f1e7;border-color:#97c8b7;color:#134f47}
.journey-guide>button{justify-self:start}
.journey-guide small{color:#526c65}
@media(max-width:680px){.journey-guide-steps{grid-template-columns:1fr 1fr}
 .journey-guide-steps li{text-align:left}.journey-guide>button{width:100%;justify-content:center}}
