.cp-shell{ padding:2em 0 4em; }
.cp-head{ margin-bottom:1.6em; }
.cp-head h1{ font-size:1.7rem; margin-bottom:0.2em; }
.cp-head .cp-sub{ font-family:var(--ui); font-size:0.9rem; color:var(--walnut-dim); }

.cp-form{
  border:1px solid var(--rule-dark);
  padding:1.4em 1.6em;
  margin-bottom:2em;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:1em;
  align-items:end;
}
.cp-field{ display:flex; flex-direction:column; gap:0.35em; }
.cp-field label{ font-family:var(--ui); font-size:0.76rem; font-weight:600; color:var(--ink-soft); }
.cp-field input, .cp-field select{
  font-family:var(--ui); font-size:0.85rem;
  padding:0.5em 0.6em; border:1px solid var(--rule-dark); background:var(--paper); color:var(--ink);
}
.cp-form-submit{ grid-column:1/-1; display:flex; justify-content:flex-end; margin-top:0.4em; }

.cp-table{ width:100%; border-collapse:collapse; font-family:var(--ui); font-size:0.85rem; }
.cp-table th{
  text-align:left; padding:0.7em 0.9em; border-bottom:1.5px solid var(--rule-dark);
  color:var(--walnut-dim); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em;
}
.cp-table td{ padding:0.7em 0.9em; border-bottom:1px solid var(--rule); color:var(--ink-soft); vertical-align:middle; }
.cp-table tr:last-child td{ border-bottom:none; }
.cp-code{
  font-family:'Courier New', monospace; font-weight:700; color:var(--ink);
  letter-spacing:0.03em; background:var(--paper-dim); padding:0.2em 0.5em; display:inline-block;
}
.cp-badge{
  font-family:var(--ui); font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.03em;
  padding:0.2em 0.6em;
}
.cp-badge.active{ background:var(--forest); color:var(--paper); }
.cp-badge.inactive{ background:var(--rule-dark); color:var(--ink-soft); }
.cp-badge.expired{ background:#C9A24B; color:var(--ink); }

.cp-btn-sm{
  font-family:var(--ui); font-size:0.76rem; font-weight:600;
  padding:0.35em 0.8em; background:var(--ink); color:var(--paper); border:none; cursor:pointer;
}
.cp-btn-sm:hover{ background:var(--brick); }
.cp-btn-sm.ghost{ background:none; color:var(--ink-soft); border:1px solid var(--rule-dark); }

.cp-empty{ font-family:var(--ui); font-size:0.85rem; color:var(--walnut-dim); text-align:center; padding:2.5em 1em; }
.cp-field-error{ font-family:var(--ui); font-size:0.78rem; color:var(--brick); grid-column:1/-1; display:none; }
.cp-field-error.show{ display:block; }
