/* CompliPath — app styles. Brand palette from CLAUDE.md. */
:root {
  --cp-dark:   #1A1A2E;
  --cp-blue:   #1565C0;
  --cp-accent: #4FC3F7;
  --cp-tint:   #E3F2FD;
  --cp-text:   #1A1A1A;
  --cp-success:#1b5e20;
  --cp-warning:#7b4700;
  --cp-danger: #b71c1c;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Arial, "DejaVu Sans", sans-serif;
  color: var(--cp-text);
  background: #f4f6fa;
  font-size: 14px;
  line-height: 1.5;
}

/* Top nav */
.cp-nav {
  background: var(--cp-dark);
  color: #fff;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
}
.cp-nav .brand { font-weight: bold; font-size: 18px; letter-spacing: .3px;
                 display:inline-flex; align-items:center; text-decoration:none; }
.cp-nav .brand img { height: 30px; width: auto; display: block; }
.cp-nav .brand span { color: var(--cp-accent); }
.cp-nav ul { list-style: none; display: flex; gap: 8px; margin: 0; padding: 0; align-items: center; }
.cp-nav a { color: #cfd8e8; text-decoration: none; padding: 8px 12px; border-radius: 4px; }
.cp-nav a:hover, .cp-nav a.active { color: #fff; background: rgba(255,255,255,.12); }
.cp-nav .who { color: #9fb0cc; font-size: 12px; margin-right: 8px; }

.cp-wrap { max-width: 1100px; margin: 24px auto; padding: 0 20px; }

/* RAG status classes (dev-ref §14) */
.compliance-green { background: #e8f5e9; color: var(--cp-success); border-left: 4px solid var(--cp-success); }
.compliance-amber { background: #fff8e1; color: var(--cp-warning); border-left: 4px solid #f9a825; }
.compliance-red   { background: #ffebee; color: var(--cp-danger);  border-left: 4px solid var(--cp-danger); }

/* Cards / tables */
.cp-card { background: #fff; border: 1px solid #e2e6ee; border-radius: 8px; padding: 20px; margin-bottom: 20px; }
.cp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cp-table thead tr { background: var(--cp-dark); color: #fff; }
.cp-table th, .cp-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #eef1f6; }
.cp-table tbody tr:nth-child(even) { background: #fafbfd; }

.badge { padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600; display: inline-block; }
.badge-green { background: #e8f5e9; color: var(--cp-success); }
.badge-amber { background: #fff8e1; color: var(--cp-warning); }
.badge-red   { background: #ffebee; color: var(--cp-danger); }

.btn {
  background: var(--cp-blue); color: #fff; border: none; padding: 9px 18px;
  border-radius: 4px; cursor: pointer; font-weight: 600; font-size: 13px; text-decoration: none; display: inline-block;
}
.btn:hover { background: #0d4c9a; }
.btn-light { background: #eef1f6; color: #333; }
.btn-danger { background: var(--cp-danger); }
.btn-success { background: var(--cp-success); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 13px; }
.form-grid input, .form-grid select, .form-grid textarea {
  width: 100%; padding: 8px; border: 1px solid #ccd3df; border-radius: 4px; font-size: 13px;
}
.span2 { grid-column: span 2; }

/* Login */
.cp-login { max-width: 380px; margin: 8vh auto; }
.cp-login .cp-card { padding: 28px; }
.cp-login h1 { color: var(--cp-dark); font-size: 22px; margin: 0 0 4px; }
/* Brand lockup on the sign-in card. Kit minimum for the full horizontal lockup
   is 120px; 240px sits comfortably in this card. */
.cp-brandmark { display:block; width:240px; max-width:80%; height:auto; margin:0 auto 10px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
           clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.cp-login h1 span { color: var(--cp-blue); }
.cp-login .sub { color: #667; font-size: 13px; margin-bottom: 20px; }
.cp-login label { display:block; font-weight:600; margin: 12px 0 4px; }
.cp-login input { width:100%; padding:10px; border:1px solid #ccd3df; border-radius:4px; }
.cp-login .btn { width:100%; margin-top:18px; padding:11px; }
.cp-error { background:#ffebee; color:var(--cp-danger); padding:10px 12px; border-radius:4px; margin-bottom:12px; font-size:13px; }
.cp-flash { background:#e8f5e9; color:var(--cp-success); padding:10px 12px; border-radius:4px; margin-bottom:16px; font-size:13px; }

h2.page { color: var(--cp-dark); margin: 0 0 16px; }
