/* CertCore Phase 4.4 — Revoke / Renew / Integrity Core v8
   Route HTML is locked. All lifecycle UI below is runtime-only. */

.cc-life-modal{
  position:fixed; inset:0; z-index:99990;
  display:grid; place-items:center;
  padding:20px;
  background:rgba(15,23,42,.42);
  backdrop-filter:blur(3px);
}
.cc-life-modal[hidden]{display:none!important}
.cc-life-card{
  width:min(980px,calc(100vw - 28px));
  max-height:min(780px,calc(100vh - 28px));
  overflow:auto;
  background:#fff;
  border:1px solid #dbe5f0;
  border-radius:22px;
  box-shadow:0 28px 80px rgba(15,23,42,.24);
}
.cc-life-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  padding:18px 20px;
  border-bottom:1px solid #e7edf5;
  position:sticky; top:0; z-index:2;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
}
.cc-life-head b{display:block;font-size:17px;color:#15233b}
.cc-life-head small{display:block;margin-top:4px;color:#7b8ba3}
.cc-life-close{
  width:36px;height:36px;border-radius:11px;border:1px solid #dbe5f0;background:#fff;
  display:grid;place-items:center;cursor:pointer;color:#475569
}
.cc-life-body{padding:18px 20px 22px}
.cc-life-toolbar{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px
}
.cc-life-search{
  flex:1;min-width:220px;height:40px;border:1px solid #dbe5f0;border-radius:12px;
  padding:0 12px;font:inherit
}
.cc-life-table{display:grid;gap:9px}
.cc-life-row{
  display:grid;
  grid-template-columns:minmax(125px,.9fr) minmax(160px,1.15fr) minmax(150px,1fr) 100px minmax(220px,1.35fr);
  gap:12px;align-items:center;
  padding:12px 13px;border:1px solid #e4ebf4;border-radius:14px;background:#fff
}
.cc-life-row > div{min-width:0}
.cc-life-row b,.cc-life-row span,.cc-life-row small{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.cc-life-row small{margin-top:3px;color:#94a3b8;font-size:11px}
.cc-life-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.cc-life-btn{
  border:1px solid #d8e2ee;background:#fff;color:#334155;border-radius:9px;
  min-height:32px;padding:0 10px;font-size:11px;font-weight:800;cursor:pointer
}
.cc-life-btn:hover{background:#f8fafc}
.cc-life-btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}
.cc-life-btn.danger{background:#fff5f5;border-color:#fecaca;color:#b91c1c}
.cc-life-status{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:26px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:900;
  background:#f1f5f9;color:#475569
}
.cc-life-status.issued{background:#ecfdf5;color:#047857}
.cc-life-status.revoked{background:#fef2f2;color:#b91c1c}
.cc-life-status.renewed{background:#eff6ff;color:#1d4ed8}
.cc-life-status.draft{background:#fff7ed;color:#c2410c}
.cc-life-status.expired{background:#fff7ed;color:#9a3412}
.cc-life-empty{
  padding:26px 18px;text-align:center;border:1px dashed #cbd5e1;border-radius:16px;
  color:#64748b;background:#f8fafc
}
.cc-life-form{display:grid;gap:13px}
.cc-life-field label{display:block;margin-bottom:6px;font-size:12px;font-weight:800;color:#334155}
.cc-life-input,.cc-life-textarea{
  width:100%;box-sizing:border-box;border:1px solid #dbe5f0;border-radius:12px;
  padding:10px 12px;font:inherit;background:#fff;color:#0f172a
}
.cc-life-textarea{min-height:100px;resize:vertical}
.cc-life-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cc-life-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
.cc-integrity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cc-integrity-box{
  border:1px solid #e4ebf4;border-radius:14px;padding:13px;background:#f8fafc
}
.cc-integrity-box small{display:block;color:#64748b;font-weight:800;margin-bottom:6px}
.cc-integrity-box b{font-size:14px}
.cc-integrity-hash{
  grid-column:1/-1;word-break:break-all;font:12px/1.55 Consolas,monospace;color:#334155;
  background:#fff;border:1px solid #e4ebf4;border-radius:12px;padding:11px
}
.cc-integrity-ok{color:#047857}
.cc-integrity-bad{color:#b91c1c}
@media(max-width:840px){
  .cc-life-row{grid-template-columns:1fr 1fr}
  .cc-life-actions{justify-content:flex-start}
}
@media(max-width:580px){
  .cc-life-form-grid,.cc-integrity-grid{grid-template-columns:1fr}
  .cc-integrity-hash{grid-column:auto}
}
