/* Grundlæggende layout */
.khx-gf-wrap {
  max-width: 1200px;
  margin: 20px 20px 0 0;
  font-family: var(--khx-gf-font-sans);
  color: var(--khx-gf-text-main);
}

.khx-gf-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}

.khx-gf-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.khx-gf-brand h1 {
  font-size: 22px;
  font-weight: 700;
  margin: 0;
  color: var(--khx-gf-bg-dark);
}

.khx-gf-brand h1 span {
  color: var(--khx-gf-accent-orange);
}

/* Kort og paneler */
.khx-gf-card {
  background: var(--khx-gf-card-bg);
  border: 1px solid var(--khx-gf-border);
  border-radius: var(--khx-gf-radius-md);
  padding: 20px;
  box-shadow: var(--khx-gf-shadow-sm);
  margin-bottom: 20px;
}

/* Knapper */
.khx-gf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  border-radius: var(--khx-gf-radius-sm);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.khx-gf-btn-primary {
  background-color: var(--khx-gf-accent-orange);
  color: #FFFFFF;
}

.khx-gf-btn-primary:hover {
  background-color: var(--khx-gf-accent-hover);
  color: #FFFFFF;
}

.khx-gf-btn-dark {
  background-color: var(--khx-gf-bg-dark);
  color: #FFFFFF;
}

.khx-gf-btn-dark:hover {
  background-color: var(--khx-gf-surface-dark);
  color: #FFFFFF;
}

/* Formfelter */
.khx-gf-form-group {
  margin-bottom: 16px;
}

.khx-gf-form-group label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--khx-gf-text-main);
}

.khx-gf-input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 12px;
  font-size: 14px;
  border: 1px solid var(--khx-gf-border);
  border-radius: var(--khx-gf-radius-sm);
  outline: none;
  background-color: #FFFFFF;
  color: var(--khx-gf-text-main);
}

.khx-gf-input:focus {
  border-color: var(--khx-gf-accent-orange);
  box-shadow: 0 0 0 1px var(--khx-gf-accent-orange);
}

/* Status-badges */
.khx-gf-badge {
  display: inline-block;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 9999px;
}

.khx-gf-badge-quote {
  background-color: #FEF3C7;
  color: #92400E;
}

.khx-gf-badge-active {
  background-color: #D1FAE5;
  color: #065F46;
}

/* Modaler */
.khx-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(2px);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
}

.khx-modal-dialog {
  background: #FFFFFF;
  border-radius: var(--khx-gf-radius-md);
  width: 100%;
  max-width: 480px;
  box-shadow: var(--khx-gf-shadow-lg, 0 20px 25px -5px rgba(0, 0, 0, 0.25));
  overflow: hidden;
  animation: khxModalFadeIn 0.15s ease-out;
}

.khx-modal-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--khx-gf-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.khx-modal-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--khx-gf-bg-dark);
}

.khx-modal-close {
  background: transparent;
  border: none;
  font-size: 20px;
  line-height: 1;
  color: #94A3B8;
  cursor: pointer;
}

.khx-modal-close:hover {
  color: var(--khx-gf-text-main);
}

.khx-modal-body {
  padding: 20px;
}

.khx-modal-footer {
  padding: 12px 20px;
  background: #F8FAFC;
  border-top: 1px solid var(--khx-gf-border);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

@keyframes khxModalFadeIn {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Toast notifikationer */
.khx-gf-toast {
  display: none;
  padding: 10px 14px;
  border-radius: var(--khx-gf-radius-sm);
  font-size: 13px;
  font-weight: 600;
}

.khx-gf-toast-success {
  background-color: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
}