:root{
  --teal:#0f5c57; --teal-dark:#0a3f3b; --teal-light:#e4f0ee; --teal-pale:#f4f9f8;
  --red:#b3261e; --red-pale:#fcebea; --ink:#22302e; --muted:#5b6b68; --line:#c8d6d3;
  --paper:#ffffff; --bg:#eef3f2;
}
*{box-sizing:border-box;}
body{ margin:0; background:var(--bg); color:var(--ink);
  font-family:'Source Sans 3','Segoe UI',Arial,sans-serif; font-size:15px; line-height:1.45; }
.toolbar{ position:sticky; top:0; z-index:50; background:var(--teal-dark); color:#fff;
  padding:10px 18px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.toolbar h1{ font-size:15px; margin:0 auto 0 0; font-weight:700; letter-spacing:.02em; }
.toolbar select, .toolbar button, .toolbar input{ font-family:inherit; font-size:13px; border-radius:6px;
  border:1px solid transparent; padding:7px 12px; cursor:pointer; }
.toolbar button{ background:#ffffff17; color:#fff; border:1px solid #ffffff40; }
.toolbar button:hover{ background:#ffffff2a; }
.toolbar button.primary{ background:#e8a33d; color:#1f1400; border-color:#e8a33d; font-weight:700; }
.toolbar button.primary:hover{ background:#f0b45c; }
#status{ font-size:12px; color:#d8ece9; min-width:120px; }

.page{ max-width:900px; margin:24px auto 80px; background:var(--paper);
  box-shadow:0 1px 4px rgba(0,0,0,.08), 0 8px 24px rgba(0,0,0,.06); border-radius:4px; overflow:hidden; }
.doc-header{ padding:26px 40px 18px; border-bottom:3px solid var(--teal); }
.doc-header h2{ margin:0; color:var(--teal); font-size:24px; }
.doc-header p{ margin:4px 0 14px; color:var(--muted); font-style:italic; }

.section{ padding:20px 40px; border-bottom:1px solid #eee; }
.section:last-of-type{ border-bottom:none; }
.section h3{ color:var(--teal); font-size:15px; text-transform:uppercase; letter-spacing:.03em;
  border-bottom:2px solid var(--teal); padding-bottom:6px; margin:0 0 14px; }
.grid{ display:grid; gap:12px 20px; }
.grid.c2{ grid-template-columns:1fr 1fr; }
.grid.c3{ grid-template-columns:1fr 1fr 1fr; }
.field{ display:flex; flex-direction:column; gap:4px; }
.field label{ font-size:12.5px; font-weight:700; color:var(--muted); }
.field input, .field textarea, .field select{ font-family:inherit; font-size:14px; padding:7px 9px;
  border:1px solid var(--line); border-radius:5px; background:#fbfdfd; color:var(--ink); width:100%; }
.field textarea{ resize:vertical; min-height:44px; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:2px solid var(--teal); outline-offset:1px; border-color:var(--teal); }
.check-group{ display:flex; flex-wrap:wrap; gap:8px 22px; margin:4px 0 2px; }
.chk{ display:flex; align-items:center; gap:6px; font-size:14px; }
.chk input{ width:16px; height:16px; accent-color:var(--teal); cursor:pointer; }
.subtle{ font-size:12.5px; color:var(--muted); font-style:italic; margin:6px 0 2px; }
.alert{ background:var(--red-pale); border:1px solid var(--red); border-radius:6px; padding:10px 14px;
  color:var(--red); font-weight:700; font-size:13.5px; margin-bottom:14px; }

table{ width:100%; border-collapse:collapse; margin-top:6px; }
th{ background:var(--teal-light); color:var(--teal-dark); text-align:left; font-size:12.5px; padding:8px 10px; border:1px solid var(--line); }
td{ padding:5px 8px; border:1px solid var(--line); vertical-align:top; }
td input, td select, td textarea{ border:none; background:transparent; width:100%; font-family:inherit; font-size:13.5px; }
td input:focus, td textarea:focus{ outline:1px solid var(--teal); background:#fff; }
.add-row{ font-size:12.5px; margin-top:6px; background:none; border:1px dashed var(--teal); color:var(--teal);
  padding:5px 10px; border-radius:5px; cursor:pointer; }
.add-row:hover{ background:var(--teal-pale); }
.rm-row{ background:none; border:none; color:var(--red); cursor:pointer; font-size:14px; }
.mini-btn{ font-family:inherit; font-size:11.5px; background:var(--teal-pale); color:var(--teal-dark);
  border:1px solid var(--teal); border-radius:5px; padding:3px 7px; cursor:pointer; margin:2px 4px 2px 0; }
.mini-btn:hover{ background:var(--teal-light); }
.mini-btn:disabled{ opacity:.6; cursor:wait; }
.pdf-name{ font-size:10.5px; color:var(--muted); word-break:break-all; margin-top:2px; }
.attach-cell{ min-width:170px; }

.achados-list{ margin-top:8px; display:flex; flex-direction:column; gap:5px; }
.achado-chip{ font-size:11.5px; padding:5px 8px; border-radius:5px; line-height:1.35; }
.achado-chip b{ font-weight:700; }
.achado-chip .ref{ color:inherit; opacity:.75; }
.sev-vermelho{ background:#fcebea; color:#8a1f18; border:1px solid #d9463a; }
.sev-amarelo{ background:#fff6dd; color:#7a5b06; border:1px solid #d9a916; }
.sev-normal{ background:#eaf6ee; color:#1e5c33; border:1px solid #4caf72; }
.achados-disclaimer{ font-size:10.5px; color:var(--muted); font-style:italic; margin-top:6px; }

.auth-wrap{ max-width:380px; margin:80px auto; background:#fff; padding:32px; border-radius:8px;
  box-shadow:0 8px 30px rgba(0,0,0,.12); }
.auth-wrap h2{ color:var(--teal); margin-top:0; }
.auth-wrap input{ width:100%; padding:9px 10px; margin:6px 0 14px; border:1px solid var(--line); border-radius:5px; font-size:14px; }
.auth-wrap button{ width:100%; background:var(--teal); color:#fff; border:none; padding:10px; border-radius:6px;
  font-size:14px; font-weight:700; cursor:pointer; }
.auth-wrap .error{ color:var(--red); font-size:13px; margin-top:8px; min-height:18px; }

.dash-list{ max-width:900px; margin:24px auto; background:#fff; border-radius:6px; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.dash-list table{ margin:0; }
.dash-list th, .dash-list td{ padding:10px 14px; }
.dash-list tr:hover td{ background:var(--teal-pale); cursor:pointer; }
.link-copy{ font-size:12px; }

@media (max-width:720px){ .grid.c2, .grid.c3{ grid-template-columns:1fr; } }
