:root {
  --app-bg: #f5f7fb;
  --app-border: #d9e0ea;
  --app-text: #1f2937;
  --app-muted: #64748b;
}

body {
  background: var(--app-bg);
  color: var(--app-text);
}

.app-shell {
  max-width: 1180px;
}

.navbar-brand {
  font-weight: 700;
  letter-spacing: .01em;
}

.page-title {
  font-size: 1.65rem;
  font-weight: 700;
}

.app-card {
  background: #fff;
  border: 1px solid var(--app-border);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.stat-card {
  padding: 1rem;
}

.stat-label {
  color: var(--app-muted);
  font-size: .9rem;
}

.stat-value {
  font-size: 2rem;
  font-weight: 700;
}

.table thead th {
  color: var(--app-muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.status-pill {
  border-radius: 999px;
  display: inline-flex;
  font-size: .8rem;
  font-weight: 600;
  padding: .25rem .6rem;
}

.status-draft { background: #e0f2fe; color: #075985; }
.status-waiting_signatures { background: #fef3c7; color: #92400e; }
.status-partially_signed { background: #ede9fe; color: #5b21b6; }
.status-completed, .status-signed { background: #dcfce7; color: #166534; }
.status-canceled, .status-refused { background: #fee2e2; color: #991b1b; }
.status-pending, .status-viewed { background: #f1f5f9; color: #334155; }

.empty-state {
  border: 1px dashed var(--app-border);
  border-radius: 8px;
  padding: 2rem;
  text-align: center;
  color: var(--app-muted);
}

.form-help {
  color: var(--app-muted);
  font-size: .88rem;
}

code.copy-link {
  white-space: normal;
  word-break: break-all;
}
