@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* Design system shared with shell — Light Theme of White and Red */
:root {
  --color-bg-base: #f8f9fa;
  --color-bg-surface: #ffffff;
  --color-bg-elevated: #ffffff;
  --color-bg-glass: rgba(255, 255, 255, 0.95);
  
  --color-brand-primary: #d90429;
  --color-brand-glow: rgba(217, 4, 41, 0.15);
  --color-brand-hover: #ef233c;
  
  --color-success: #16a34a;
  --color-warning: #d97706;
  --color-danger: #dc2626;
  --color-info: #0284c7;
  
  --color-text-primary: #1e1e24;
  --color-text-secondary: #475569;
  --color-text-muted: #64748b;
  
  --color-border: #e2e8f0;
  --color-border-strong: #cbd5e1;
  
  --font-sans: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: var(--color-bg-base); color: var(--color-text-primary); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
.card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.btn-primary {
  background: var(--color-brand-primary);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  font-weight: 600;
  font-family: var(--font-sans);
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 12px var(--color-brand-glow);
}
.btn-primary:hover:not(:disabled) {
  background: var(--color-brand-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px var(--color-brand-glow);
}
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-secondary {
  background: #ffffff;
  color: var(--color-text-primary);
  border: 1px solid var(--color-border-strong);
  padding: 10px 20px;
  border-radius: 8px;
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
  transition: all 0.2s;
}
.btn-secondary:hover:not(:disabled) { background: #f1f5f9; }
.btn-secondary:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-danger { background: #dc2626; color: white; border: none; padding: 10px 20px; border-radius: 8px; font-weight: 600; font-family: var(--font-sans); cursor: pointer; }
.input { width: 100%; background: #ffffff; border: 1px solid var(--color-border); color: var(--color-text-primary); padding: 12px 16px; border-radius: 8px; font-family: var(--font-sans); font-size: 0.95rem; transition: border-color 0.2s, box-shadow 0.2s; outline: none; }
.input:focus { border-color: var(--color-brand-primary); box-shadow: 0 0 0 2px var(--color-brand-glow); }
.label { display: block; margin-bottom: 6px; font-size: 0.85rem; font-weight: 500; color: var(--color-text-secondary); }
.table { width: 100%; border-collapse: collapse; }
.table th { text-align: left; padding: 12px 16px; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-muted); border-bottom: 1px solid var(--color-border); }
.table td { padding: 14px 16px; border-bottom: 1px solid #f1f5f9; font-size: 0.9rem; }
.table tr:hover td { background: #f8f9fa; }
.status-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 9999px; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.status-pending { background: rgba(217,119,6,0.12); color: var(--color-warning); border: 1px solid rgba(217,119,6,0.3); }
.status-provisioning { background: rgba(2,132,199,0.12); color: var(--color-info); border: 1px solid rgba(2,132,199,0.3); }
.status-active { background: rgba(22,163,74,0.12); color: var(--color-success); border: 1px solid rgba(22,163,74,0.3); }
.status-suspended { background: rgba(220,38,38,0.12); color: var(--color-danger); border: 1px solid rgba(220,38,38,0.3); }
.status-deleting { background: rgba(220,38,38,0.12); color: var(--color-danger); border: 1px solid rgba(220,38,38,0.3); }
.status-provision_failed { background: rgba(220,38,38,0.15); color: #dc2626; border: 1px solid rgba(220,38,38,0.4); }
.status-deleted { background: #f1f5f9; color: var(--color-text-muted); border: 1px solid #cbd5e1; }
.status-draft { background: rgba(217,4,41,0.1); color: var(--color-brand-primary); border: 1px solid rgba(217,4,41,0.3); }
.status-published { background: rgba(22,163,74,0.12); color: var(--color-success); border: 1px solid rgba(22,163,74,0.3); }
.status-archived { background: #f1f5f9; color: var(--color-text-muted); border: 1px solid #cbd5e1; }
@keyframes spin { to { transform: rotate(360deg); } }
.spinner { width: 28px; height: 28px; border: 3px solid rgba(0,0,0,0.1); border-top-color: var(--color-brand-primary); border-radius: 50%; animation: spin 0.8s linear infinite; }
