:root {
  --ink:#0b1220; --card:#111827; --border:#1f2937; --muted:#94a3b8;
  --ok:#22c55e; --ok-2:#34d399;
  --warn:#f59e0b; --warn-2:#fbbf24;
  --bad:#ef4444; --bad-2:#f87171;
  --btn1:#7c3aed; --btn2:#06b6d4;
}

/* Base */
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,Segoe UI,Roboto,Arial;color:#e5e7eb;background:#0b1220}
.container{max-width:1100px;margin:0 auto;padding:24px}
header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:36px;height:36px;border-radius:10px;background:conic-gradient(#4f46e5,#06b6d4,#22c55e,#eab308,#ef4444,#4f46e5)}
h1{margin:0;font-size:20px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px}
.row{display:flex;gap:16px;flex-wrap:wrap}
.col{flex:1 1 340px}

/* Tabs */
.tabbar{display:flex;gap:8px;flex-wrap:wrap}
.tabbar button{
  padding:10px 14px;border:1px solid var(--border);border-radius:12px;
  background:#0b1220;color:#e5e7eb;cursor:pointer;transition:.18s ease;
}
.tabbar button.active{background:#111827;box-shadow:inset 0 0 0 1px #334155}

/* Forms */
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px;align-items:center}
input,select,textarea{
  background:#0b1220;border:1px solid var(--border);color:#e5e7eb;border-radius:10px;padding:10px 12px
}
textarea{min-height:84px;resize:vertical}

/* Buttons */
.btn{
  appearance:none;border:none;color:rgb(255, 255, 255);cursor:pointer;border-radius:12px;
  padding:12px 16px;font-weight:600;
  background:linear-gradient(135deg,var(--btn1),var(--btn2));
  box-shadow:0 10px 24px #0008,0 0 0 1px #ffffff14,0 6px 20px #0ea5e980;
  transform:translateZ(0); transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;
}
.btn:hover{filter:brightness(1.08);transform:translateY(-2px)}
.btn:active{transform:translateY(0);box-shadow:0 6px 14px #000a}
.btn.alt{background:linear-gradient(135deg,#22c55e,#16a34a)}
.btn.warn{background:linear-gradient(135deg,#f59e0b,#eab308)}
.btn.danger{background:linear-gradient(135deg,#ef4444,#f87171)}

/* Tables */
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left}

/* Status chips — solid colors (works everywhere) */
.chip{
  display:inline-flex;align-items:center;font-weight:600;letter-spacing:.2px;
  padding:4px 10px;border-radius:999px;border:1px solid transparent
}
.chip.approved{background:#0f2e23;border-color:var(--ok);color:var(--ok-2)}
.chip.warning{background:#3a2a06;border-color:var(--warn);color:var(--warn-2)}
.chip.expired{background:#3a0d0d;border-color:var(--bad);color:var(--bad-2)}

/* Misc */
.small{font-size:12px;color:var(--muted)}
.badge{border:1px solid var(--border);padding:4px 8px;border-radius:999px}
.hidden{display:none!important}
.error{color:var(--bad)} .success{color:var(--ok)}
.table tr:hover td { background:#1a2234; cursor:pointer; }

/* narrow column panel look */
.manage-panel { min-width: 360px; }
/* Buttons */
.btn{
  border: 1px solid var(--border);
  background: #0a4369;
  color: #e5e7eb;
  padding: 10px 14px;
  border-radius: 12px;
  cursor: pointer;
  transition: transform .08s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow: 0 8px 20px rgba(0,0,0,.35); }
.btn:active{ transform: translateY(0); box-shadow: none; }

.btn.alt{ background: #17708b; }
.btn.warn{ background: #083a1b; border-color:#0b5a0f; }
.btn.danger{ background: #910e16; border-color:#f11629; }
.btn.small{ padding: 6px 10px; font-size: 14px; }
.btn.pill{ border-radius: 999px; }

/* Character button (table link style) */
.char-btn{ 
  line-height: 1; 
  white-space: nowrap; 
}
