:root { color-scheme: light; --ink:#172033; --muted:#657188; --line:#dce3ed; --paper:#fff; --canvas:#f2f5f9; --navy:#172d4d; --blue:#245cbe; --cyan:#0c8693; --red:#b63b45; --shadow:0 12px 32px rgba(23,45,77,.08); }
@media (prefers-color-scheme: dark) {
  :root { color-scheme: dark; --ink:#e7ecf5; --muted:#9aa7bd; --line:#2c3852; --paper:#151d30; --canvas:#0c1220; --navy:#0c1729; --blue:#5b9bf2; --cyan:#3fb9c4; --red:#e3707c; --shadow:0 12px 32px rgba(0,0,0,.45); }
}
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:var(--canvas); color:var(--ink); font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input,select { font:inherit; } button { cursor:pointer; }
.topbar { height:76px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; background:var(--navy); color:#fff; }
.brand { display:flex; align-items:center; gap:12px; } .brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:#4f8ee8; font-size:.82rem; font-weight:800; letter-spacing:.04em; }
.brand div,.connection { display:flex; flex-direction:column; } .brand span:not(.brand-mark),.connection { color:#b9c9df; font-size:.78rem; } .connection { flex-direction:row; align-items:center; gap:8px; }
.topbar-actions { display:flex; align-items:center; gap:16px; }
.status-dot { width:9px; height:9px; border-radius:99px; background:#93a3b8; } .status-dot.connected { background:#43c69c; box-shadow:0 0 0 4px rgba(67,198,156,.14); }
.shell { min-height:calc(100vh - 76px); display:grid; grid-template-columns:238px minmax(0,1fr); }
.sidebar { background:#e8edf4; border-right:1px solid #d6deea; padding:28px 18px; }
.eyebrow { margin:0 0 5px; color:#64738b; font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.nav-item { width:100%; margin:4px 0; padding:12px 14px; border:0; border-radius:9px; background:transparent; color:#33445e; text-align:left; font-weight:650; }
.nav-item:hover,.nav-item:focus-visible { background:#dce5f1; outline:none; } .nav-item.active { background:var(--paper); color:var(--blue); box-shadow:0 3px 12px rgba(23,45,77,.07); }
.security-note { margin-top:34px; padding:16px; border:1px solid #ccd8e6; border-radius:12px; background:rgba(255,255,255,.45); display:grid; gap:7px; } .security-note strong { font-size:.9rem; } .security-note span { color:var(--muted); font-size:.79rem; line-height:1.45; }
.workspace { min-width:0; padding:28px clamp(20px,4vw,54px) 60px; }
body:not(.authenticated) .sidebar { display:none; }
body:not(.authenticated) .shell { grid-template-columns:1fr; }
.login-card { max-width:420px; margin:8vh auto 0; padding:32px; display:grid; gap:16px; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:12px; background:var(--paper); box-shadow:var(--shadow); }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:0; font-size:clamp(1.35rem,2vw,1.8rem); line-height:1.2; } h2 { margin-bottom:8px; font-size:clamp(1.6rem,2.7vw,2.3rem); letter-spacing:-.03em; } h3 { margin-bottom:14px; font-size:1.05rem; }
.inline-form { display:flex; align-items:end; gap:9px; } label { display:grid; gap:6px; color:#41516a; font-size:.86rem; font-weight:650; } label[hidden] { display:none; }
input,select { min-height:43px; width:100%; min-width:0; border:1px solid #cbd5e2; border-radius:8px; padding:9px 11px; background:#fff; color:var(--ink); } input:focus,select:focus { outline:3px solid rgba(36,92,190,.14); border-color:var(--blue); }
.button { min-height:43px; border:1px solid transparent; border-radius:8px; padding:9px 15px; font-weight:750; white-space:nowrap; } .button.primary { background:var(--blue); color:#fff; } .button.accent { background:var(--cyan); color:#fff; } .button.quiet { border-color:#cbd5e2; background:#fff; color:#33445e; } .button.danger { border-color:#ecc8cc; background:#fff5f5; color:var(--red); } .button:hover { filter:brightness(.97); } .button:disabled { cursor:not-allowed; opacity:.55; }
.view { display:none; max-width:1440px; margin:0 auto; } .view.active { display:block; }
.section-heading { margin:0 0 22px; display:flex; justify-content:space-between; align-items:end; gap:24px; } .section-heading p:not(.eyebrow) { max-width:760px; margin-bottom:0; color:var(--muted); } .actions { display:flex; gap:8px; }
.split-grid { display:grid; grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr); gap:20px; align-items:start; } .split-grid > * { min-width:0; }
.panel { border:1px solid var(--line); border-radius:13px; background:var(--paper); padding:22px; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; } .form-grid h3,.form-grid .full { grid-column:1/-1; } .form-grid > * { min-width:0; }
.panel-title { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.badge { display:inline-flex; align-items:center; min-height:29px; border-radius:99px; padding:4px 10px; font-size:.75rem; font-weight:800; } .badge.neutral { background:#edf1f6; color:#5d6a7d; } .badge.ready { background:#dff5ee; color:#08715c; } .badge.warning { background:#fff0d8; color:#8a520b; }
.muted { color:var(--muted); } .upload-row { margin:19px 0; padding-top:18px; border-top:1px solid var(--line); display:grid; grid-template-columns:130px 1fr auto; align-items:end; gap:12px; } .file-control input { padding:7px; }
.empty-state { padding:26px; border:1px dashed #cbd5e2; border-radius:10px; color:var(--muted); text-align:center; } .table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { padding:12px 10px; border-bottom:1px solid #e7ebf1; text-align:left; font-size:.88rem; } th { color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
.run-strip { margin-top:20px; display:grid; grid-template-columns:190px 1fr; gap:20px; } .run-list { display:grid; gap:9px; } .run-item { padding:12px 14px; border:1px solid #e0e6ee; border-radius:9px; background:#f9fbfd; display:grid; grid-template-columns:1fr auto; gap:5px 18px; } .run-item strong { font-size:.9rem; overflow-wrap:anywhere; } .run-item span,.run-item p { color:var(--muted); font-size:.8rem; margin:0; } .run-item p { grid-column:1/-1; color:#35455c; }
.draft-list { display:grid; gap:16px; } .draft { border:1px solid var(--line); border-radius:12px; padding:19px; background:#fff; box-shadow:var(--shadow); } .draft h3 { margin:10px 0 4px; } .draft-meta { color:var(--muted); font-size:.82rem; margin:0 0 12px; } .draft textarea { width:100%; min-height:340px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; font:inherit; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.84rem; line-height:1.5; resize:vertical; box-sizing:border-box; }
.candidate-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:16px; } .candidate { border:1px solid var(--line); border-radius:12px; padding:19px; background:#fff; box-shadow:var(--shadow); } .relation { margin:14px 0; display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:center; } .entity { padding:11px; border-radius:8px; background:#f1f5fa; } .entity span { display:block; color:var(--muted); font-size:.74rem; } .predicate { color:var(--blue); font-weight:800; font-size:.78rem; } .quote { padding:12px 14px; border-left:3px solid var(--cyan); background:#f2fafb; color:#31445a; font-size:.88rem; } .review-controls { margin-top:15px; display:grid; grid-template-columns:1fr auto auto; gap:8px; }
.conflict-list { display:grid; gap:8px; margin-bottom:16px; } .conflict { padding:12px 15px; border-radius:9px; background:#fff0df; color:#714710; }
.toast { position:fixed; z-index:10; right:24px; bottom:24px; max-width:420px; padding:13px 16px; border-radius:9px; background:#172d4d; color:#fff; box-shadow:0 18px 42px rgba(0,0,0,.2); } .toast.error { background:#922f3a; }
@media (max-width:900px) { .shell { grid-template-columns:1fr; } .sidebar { padding:12px 16px; display:flex; gap:5px; overflow-x:auto; border-right:0; border-bottom:1px solid #d6deea; } .sidebar>.eyebrow,.security-note { display:none; } .nav-item { width:auto; white-space:nowrap; } .section-heading { align-items:stretch; flex-direction:column; } .inline-form { align-items:stretch; flex-wrap:wrap; } .inline-form label { flex:1 1 300px; } .split-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { .topbar { height:auto; min-height:72px; padding:14px 17px; } .connection { display:none; } .workspace { padding:20px 14px 44px; } .form-grid,.upload-row,.review-controls,.run-strip { grid-template-columns:1fr; } .form-grid label,.form-grid .full { grid-column:1; } .relation { grid-template-columns:1fr; } .predicate { text-align:center; } }

.check { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; white-space:nowrap; } .check input { width:auto; }
.notice { margin:16px 0; padding:12px 14px; border:1px solid #e8c789; border-radius:10px; background:#fff0d8; color:#8a520b; font-size:.88rem; }
.routing-list { margin-top:18px; } .row-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; } .confirm-text { font-size:.8rem; font-weight:700; }
@media (max-width:600px) { .section-heading .actions { flex-wrap:wrap; } }
.dashboard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-bottom:28px; }
.metric-card { border:1px solid var(--line); border-radius:13px; background:var(--paper); padding:18px; box-shadow:var(--shadow); text-align:left; cursor:pointer; }
.metric-card:hover,.metric-card:focus-visible { outline:none; border-color:var(--blue); }
.metric-card:disabled { cursor:default; opacity:.7; }
.metric-card .eyebrow { margin-bottom:6px; }
.metric-card strong { display:block; font-size:1.9rem; line-height:1.1; }
.metric-card .delta { font-size:.8rem; font-weight:700; }
.metric-card .delta.up { color:#0a8f5c; } .metric-card .delta.down { color:var(--red); }
.dashboard-section { margin-bottom:30px; }
.dashboard-section h3 { margin-bottom:12px; }
.review-shell { display:grid; grid-template-columns:minmax(0,1fr); gap:0; position:relative; }
.review-shell.with-detail { grid-template-columns:minmax(0,1.3fr) minmax(320px,420px); gap:20px; align-items:start; }
.review-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.review-filters select,.review-filters input { min-width:160px; width:auto; }
.review-list { display:grid; gap:10px; }
.review-row { display:grid; grid-template-columns:1fr auto; gap:6px 16px; align-items:center; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:var(--paper); box-shadow:var(--shadow); text-align:left; cursor:pointer; }
.review-row.active { border-color:var(--blue); }
.review-row .row-title { font-weight:700; }
.review-row .row-meta { grid-column:1/-1; color:var(--muted); font-size:.82rem; display:flex; flex-wrap:wrap; gap:4px 14px; }
.ticket-label { font-weight:600; color:var(--ink); }
.status-pill { display:inline-flex; align-items:center; min-height:26px; border-radius:99px; padding:3px 10px; font-size:.72rem; font-weight:800; }
.status-pill.unreviewed { background:#fff0d8; color:#8a520b; }
.status-pill.confirmed { background:#dff5ee; color:#08715c; }
.status-pill.corrected { background:#e6ecfb; color:#2946a3; }
.status-pill.forbidden { background:#fbe4e6; color:#9c2431; }
.detail-panel { position:sticky; top:20px; border:1px solid var(--line); border-radius:13px; background:var(--paper); padding:20px; box-shadow:var(--shadow); max-height:calc(100vh - 100px); overflow-y:auto; }
.detail-panel dl { margin:14px 0; display:grid; grid-template-columns:auto 1fr; gap:6px 12px; font-size:.87rem; }
.detail-panel dt { color:var(--muted); }
.detail-panel dd { margin:0; }
.detail-actions { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); display:grid; gap:10px; }
.correction-form { display:grid; gap:10px; margin-top:10px; padding-top:14px; border-top:1px dashed var(--line); }
@media (max-width:1100px) { .review-shell.with-detail { grid-template-columns:1fr; } .detail-panel { position:static; max-height:none; } }
.feedback-box { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); display:grid; gap:10px; }
.feedback-box h4 { margin:0; font-size:.95rem; }
.feedback-box p { margin:0; font-size:.85rem; }
.feedback-choice { display:flex; flex-wrap:wrap; gap:8px; }
.feedback-choice .button[aria-pressed="true"] { border-color:var(--blue); background:rgba(36,92,190,.10); color:var(--blue); }
.feedback-choice .button:focus-visible,.feedback-box .button:focus-visible,.feedback-box select:focus-visible,.feedback-box input:focus-visible { outline:3px solid rgba(36,92,190,.35); outline-offset:2px; }
.feedback-note-row { display:grid; gap:4px; }
.feedback-counter { font-size:.78rem; text-align:right; }
.feedback-message { min-height:1.2em; color:var(--muted); }
.feedback-message.error { color:var(--red); font-weight:700; }
.document-viewer { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); display:grid; gap:8px; justify-items:start; }
.document-viewer p { margin:0; font-size:.85rem; }
.document-viewer .button:focus-visible { outline:3px solid rgba(36,92,190,.35); outline-offset:2px; }
.delivery-notice { margin:0; }
.document-text { box-sizing:border-box; width:100%; margin:0; max-height:60vh; overflow:auto; padding:12px; border:1px solid var(--line); border-radius:8px; background:#f7f9fc; color:var(--ink); font:0.82rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.document-text:focus-visible { outline:3px solid rgba(36,92,190,.35); outline-offset:2px; }
@media (max-width:640px) { .document-text { max-height:50vh; font-size:.78rem; } .document-viewer .button { white-space:normal; } }
@media (max-width:640px) { .feedback-choice .button { flex:1 1 40%; } .review-filters select { flex:1 1 100%; } }
@media (prefers-color-scheme: dark) {
  .entity { background:#1d2740; }
  .quote { background:#132a2d; }
  .empty-state { border-color:#324160; }
  input,select { background:#101a2e; border-color:#324160; }
  .badge.neutral { background:#233049; color:#aebad4; }
  /* I6 (revisao final): componentes pre-existentes sem override escuro,
     medidos com dado real pelo revisor final -- mesmas propriedades das
     regras incondicionais correspondentes, so trocando os valores. */
  .run-item { background:#1c2740; border-color:#2c3852; }
  .run-item strong { color:var(--ink); }
  .run-item p { color:#c7cfe2; }
  .sidebar { background:#101a2e; border-right-color:#2c3852; }
  .security-note { background:rgba(21,29,48,.6); border-color:#2c3852; }
  .security-note strong { color:var(--ink); }
  label { color:#c3ccdf; }
  .button.danger { border-color:rgba(227,112,124,.45); background:rgba(227,112,124,.14); color:var(--red); }
  .button.quiet { border-color:var(--line); background:var(--paper); color:var(--ink); }
  th,td { border-bottom-color:#2c3852; }
  .feedback-choice .button[aria-pressed="true"] { border-color:var(--blue); background:rgba(91,155,242,.18); color:var(--blue); }
  .document-text { background:#101a2e; border-color:#324160; color:var(--ink); }
  .notice { background:#3a2a10; border-color:#7a5a22; color:#f0c987; }
}

/* 12.9 B3.3: correcao de rascunho */
.correction-form label { font-weight:600; font-size:.86rem; }
.correction-form textarea.correction-content { width:100%; min-height:260px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.84rem; line-height:1.5; resize:vertical; box-sizing:border-box; background:var(--paper); color:var(--ink); }
.correction-form textarea.correction-content[readonly] { opacity:.85; }
.draft-counter { margin:0; font-size:.8rem; } .draft-counter.over { color:var(--red); font-weight:600; }
.draft-correction-note { border-left:3px solid var(--red); padding-left:10px; }
.attendance-timeline { margin:12px 0 0; padding-left:20px; line-height:1.7; }
@media (max-width:640px) { .correction-form textarea.correction-content { min-height:200px; } }
