label,.form-label {
  font-weight:600;
  margin-bottom:7px;
  display:block;
  font-size:12px;
  color:#536173
}
.form-control {
  display:block;
  width:100%;
  min-height:44px;
  padding:10px 13px;
  font-size:13px;
  line-height:1.5;
  color:var(--text);
  background:white;
  border:1px solid #dce3e9;
  border-radius:8px;
  transition:border-color .15s,box-shadow .15s
}
.form-control::placeholder {
  color:#a0a9b5
}
.form-control:focus {
  border-color:#56a78c;
  outline:0;
  box-shadow:0 0 0 3px #147d6412
}
select.form-control {
  cursor:pointer;
  padding-right:30px
}
input[type="date"]:not(:disabled):not([readonly]),
input[type="date"]:not(:disabled):not([readonly])::-webkit-calendar-picker-indicator {
  cursor:pointer
}
textarea.form-control {
  min-height:110px;
  resize:vertical
}
.form-check {
  display:flex;
  align-items:center;
  gap:8px
}
.form-check-input {
  width:17px;
  height:17px;
  accent-color:var(--primary);
  vertical-align:middle;
  cursor:pointer
}
.form-check-label {
  display:inline;
  margin:0 0 0 5px;
  vertical-align:middle
}
.modal-body form>.mt-3 {
  padding-top:18px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:flex-end
}

.transaction-filters {
  display:grid;
  grid-template-columns:minmax(180px,1.25fr) minmax(140px,.8fr) minmax(140px,.9fr) minmax(140px,.8fr) minmax(140px,.8fr) auto;
  gap:12px;
  align-items:end;
  margin-top:18px
}
.transaction-filter-field { min-width:0 }
.transaction-filter-label {
  display:block;
  margin:0 0 6px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase
}
.transaction-filter-actions { display:flex; align-items:center; gap:8px }
.transaction-filter-clear { border:1px solid var(--border); background:#fff; color:var(--text) }
.transaction-filter-clear:hover { background:#f4f7f8 }
.restriction-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start }
.restriction-card { padding:22px }
.restriction-card .section-heading { margin-bottom:20px }
.restriction-card h3 { margin:0 0 4px }
.restriction-field { margin-top:16px }
.restriction-field label,.restriction-shield-picker label { display:block; margin-bottom:7px; color:var(--text); font-size:12px; font-weight:700 }
.restriction-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px }
.restriction-label-row > label:first-child { margin-bottom:7px }
.restriction-switch { display:inline-flex !important; align-items:center; gap:7px; margin:0 !important; color:var(--muted) !important; font-size:11px !important; font-weight:600 !important; cursor:pointer }
.restriction-switch input { width:15px; height:15px; margin:0; accent-color:var(--primary); cursor:pointer }
.restriction-field textarea { min-height:76px; resize:vertical }
.restriction-shield-picker { padding:14px; margin-bottom:18px; border:1px solid var(--border); border-radius:10px; background:#f8fbfa }
.restriction-actions { display:flex; justify-content:flex-end; padding-top:18px; margin-top:20px; border-top:1px solid var(--border) }
.empty-state { padding:18px; border:1px dashed var(--border); border-radius:9px; color:var(--muted); font-size:13px }
@media (max-width:900px) { .restriction-grid { grid-template-columns:1fr } }
@media (max-width:1100px) {
  .transaction-filters { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .transaction-filter-actions { grid-column:1/-1 }
}
@media (max-width:600px) {
  .transaction-filters { grid-template-columns:1fr }
  .transaction-filter-actions { grid-column:auto }
}

.endpoint-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px }
.endpoint-page-heading h2 { margin:0 0 7px; font-size:28px }
.endpoint-page-heading p { margin:0 }
.endpoint-token-notice { display:flex; align-items:flex-start; gap:14px; padding:16px 18px; margin-bottom:22px; background:#edf8f2; border:1px solid #cbe8d9; border-radius:12px; color:#205c45 }
.endpoint-token-icon { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:10px; background:#168166; color:#fff; font-weight:800 }
.endpoint-token-notice p { margin:3px 0 8px; color:#5b806f; font-size:12px }
.endpoint-token-notice code { display:inline-block; padding:7px 10px; background:#fff; border:1px solid #cbe8d9; border-radius:6px; color:#145e48; font-size:12px; word-break:break-all }
.endpoint-credential { display:grid; grid-template-columns:125px minmax(0,1fr); align-items:center; gap:9px; margin-top:7px }
.endpoint-credential > span { color:#5b806f; font-size:11px; font-weight:700 }
@media (max-width:600px) { .endpoint-credential { grid-template-columns:1fr } }
.endpoint-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px }
.endpoint-summary-card { padding:20px 22px; background:#fff; border:1px solid var(--border); border-radius:13px; box-shadow:0 3px 12px #24334703 }
.endpoint-summary-label,.endpoint-summary-card small { display:block; color:var(--muted); font-size:12px }
.endpoint-summary-card strong { display:block; margin:7px 0 3px; color:var(--text); font-size:25px }
.endpoint-summary-accent { background:linear-gradient(135deg,#eef9f4,#fff); border-color:#cfeade }
.endpoint-summary-accent strong { color:#168166; font-size:20px }
.endpoint-configs-card { padding-top:22px }
.endpoint-config-table td:first-child { min-width:190px }
.endpoint-actions { white-space:nowrap }
.endpoint-key-card { max-width:900px }
.endpoint-key-grid { display:grid; gap:12px; margin-top:20px }
.endpoint-key-item { padding:14px; border:1px solid var(--border); border-radius:10px; background:#f8fbfa }
.endpoint-key-item > label { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase }
.endpoint-key-row { display:flex; gap:10px; align-items:stretch }
.endpoint-key-row form { display:flex; margin:0 }
.endpoint-key-value { flex:1; min-width:0; padding:10px; background:#fff; border:1px solid var(--border); border-radius:7px; color:var(--text); font-family:monospace }
.endpoint-key-action { min-width:120px }
.endpoint-key-note { margin:16px 0 0 }
@media (max-width:700px) { .endpoint-key-row { flex-direction:column } .endpoint-key-row form, .endpoint-key-action { width:100% } }
.table-subtext { display:block; margin-top:3px; color:var(--muted); font-size:11px }
.endpoint-method-badge { display:inline-flex; padding:5px 9px; border-radius:6px; background:#eef6f3; color:#16735b; font-size:11px; font-weight:700 }
.endpoint-provider-badge { display:inline-flex; padding:5px 9px; border-radius:6px; background:#edf3fb; color:#285985; font-size:11px; font-weight:700 }
.endpoint-health { display:inline-flex; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:700 }
.endpoint-health-ok { background:#e7f8ef; color:#168154 }
.endpoint-health-warn { background:#fff4d6; color:#936500 }
.endpoint-health-down { background:#feeceb; color:#b42318 }
.endpoint-shield-info .endpoint-health { width:max-content; margin-top:5px; font-style:normal; letter-spacing:0; text-transform:none }
.endpoint-provider-badge.provider-stripe { background:#f3effc; color:#6750a4 }
.endpoint-modal .modal-content { max-width:760px }
.endpoint-modal .modal-header { padding-bottom:20px }
.endpoint-modal .modal-body { padding-top:22px }
.endpoint-form-intro { display:flex; flex-direction:column; gap:4px; margin-bottom:18px }
.endpoint-form-intro span,.endpoint-collection-heading span { color:var(--muted); font-size:12px }
.endpoint-form-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:14px }
.endpoint-collection-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 0 10px; border-top:1px solid var(--border); margin-top:4px }
.endpoint-collection-heading strong { display:block; margin-bottom:3px }
.endpoint-shield-list { display:grid; gap:8px; max-height:300px; overflow:auto; padding:4px 2px 4px 0 }
.endpoint-shield-row { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--border); border-radius:10px; cursor:pointer; transition:border-color .15s,background .15s }
.endpoint-shield-row:hover { background:#f8fbfa; border-color:#aad9c3 }
.endpoint-shield-row input[type=checkbox] { position:absolute; opacity:0; pointer-events:none }
.endpoint-shield-row:has(input:checked) { background:#f1faf5; border-color:#74c29c }
.endpoint-shield-check { width:18px; height:18px; border:1px solid #b9c5cf; border-radius:5px; background:#fff; flex:0 0 18px }
.endpoint-shield-row:has(input:checked) .endpoint-shield-check { border-color:#168166; background:#168166; box-shadow:inset 0 0 0 4px #fff }
.endpoint-shield-info { flex:1; min-width:0 }
.endpoint-shield-info strong,.endpoint-shield-info small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.endpoint-shield-info small { margin-top:3px; color:var(--muted); font-size:11px }
.endpoint-value-wrap { position:relative; width:140px; flex:0 0 140px }
.endpoint-value-wrap .form-control { padding-right:43px }
.endpoint-value-unit { position:absolute; right:11px; top:14px; color:var(--muted); font-size:10px }
.endpoint-modal-actions { display:flex; justify-content:flex-end; gap:9px; padding-top:20px; margin-top:18px; border-top:1px solid var(--border) }
@media (max-width:700px) {
  .endpoint-page-heading { align-items:stretch; flex-direction:column }
  .endpoint-summary-grid,.endpoint-form-grid { grid-template-columns:1fr }
  .endpoint-value-wrap { width:110px; flex-basis:110px }
}

.stripe-option { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:22px 0; }
.stripe-option input { width:20px; height:20px; accent-color:var(--primary); }
.stripe-settings small { display:block; margin-top:8px; }
.stripe-settings [hidden] { display:none; }
.stripe-settings input:disabled { background:#f4f4f6; color:#939bad; }
.stripe-key-preview { display:inline-flex; align-items:center; min-height:38px; margin-bottom:8px; padding:0 12px; border:1px solid var(--border); border-radius:8px; background:#f6f9fc; color:var(--muted); }
.stripe-key-preview code { color:inherit; font-size:13px; }
