:root{
  --purple:#8C52FF;
  --indigo:#2D1B69;
  --lavender:#EAD6FF;
  --gold:#EF9F27;
  --pink:#F7B6D2;
  --ink:#2D1B69;
  --paper:#FBF8FF;
  --line:#E3D6F7;
  --radius:14px;
  --font-display:'Playfair Display',serif;
  --font-heading:'Poppins',sans-serif;
  --font-body:'Nunito',sans-serif;
  --font-mono:'DM Sans',sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.5}
h1,h2,h3{font-family:var(--font-heading);margin:0 0 .4em}
.kente-strip{height:6px;background:repeating-linear-gradient(90deg,var(--purple) 0 24px,var(--gold) 24px 40px,var(--pink) 40px 56px,var(--indigo) 56px 80px)}
.shell{max-width:1100px;margin:0 auto;padding:0 20px}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line)}
.brand{font-family:var(--font-display);font-size:1.4rem;color:var(--indigo);text-decoration:none}
nav.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}
nav.tabs a{padding:10px 16px;border-radius:999px;text-decoration:none;color:var(--indigo);font-family:var(--font-heading);font-size:.9rem;border:1px solid var(--line)}
nav.tabs a.active,nav.tabs a:hover{background:var(--purple);color:#fff;border-color:var(--purple)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:18px}
label{display:block;font-family:var(--font-heading);font-size:.82rem;color:var(--indigo);margin:14px 0 6px}
input,textarea,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-family:var(--font-body);font-size:1rem}
textarea{min-height:100px;resize:vertical}
button,.btn{font-family:var(--font-heading);font-size:.92rem;background:var(--purple);color:#fff;border:none;border-radius:999px;padding:11px 22px;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:var(--indigo)}
.btn-ghost{background:transparent;color:var(--purple);border:1px solid var(--purple)}
.status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-family:var(--font-heading)}
.status-new,.status-unpaid,.status-pending_intake,.status-draft{background:#FDECC8;color:#8a5c00}
.status-responded,.status-scheduled,.status-sent{background:var(--lavender);color:var(--indigo)}
.status-converted,.status-active,.status-agreed,.status-paid,.status-signed,.status-completed{background:#D9F2E1;color:#186a3b}
.status-closed,.status-cancelled,.status-void{background:#f0f0f0;color:#666}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:.92rem}
th{font-family:var(--font-heading);color:var(--indigo);font-weight:600}
.empty{text-align:center;color:#8a7ba8;padding:40px 10px;font-style:italic}
.msg{padding:12px 16px;border-radius:10px;margin:12px 0;font-family:var(--font-heading);font-size:.9rem}
.msg-ok{background:#D9F2E1;color:#186a3b}
.msg-err{background:#FBD9D9;color:#8a1c1c}
.incident-locked{border-left:4px solid var(--gold)}
.checklist{display:flex;flex-wrap:wrap;gap:8px 18px;margin:8px 0 4px}
.checklist label{display:flex;gap:6px;align-items:center;font-family:var(--font-body);font-size:.92rem;margin:0}
.checklist input{width:auto;margin:0}
.quick-check{display:flex;gap:8px;align-items:center;margin:10px 0;font-family:var(--font-body);font-size:.95rem}
.quick-check input{width:auto;margin:0}
.subsection{font-family:var(--font-heading);color:var(--indigo);font-size:.85rem;margin:18px 0 4px}
.subsection:first-child{margin-top:0}
footer{margin:60px 0 30px;text-align:center;color:#a894cc;font-size:.85rem}
