/* LuckyBase Builder - final UI polish layer. Safe app-level overrides. */
:root {
  --lbp-blue: #155eef;
  --lbp-blue-2: #0f4fd1;
  --lbp-ink: #071d33;
  --lbp-text: #17324a;
  --lbp-muted: #50677e;
  --lbp-soft: #f3f8ff;
  --lbp-line: rgba(15, 41, 64, .14);
  --lbp-line-strong: rgba(15, 41, 64, .24);
  --lbp-ok: #047857;
  --lbp-warn: #92400e;
  --lbp-danger: #b42318;
  --lbp-shadow: 0 18px 46px rgba(15, 41, 64, .08);
  --lbp-focus: 0 0 0 4px rgba(21, 94, 239, .18);
}

html { text-rendering: optimizeLegibility; }
body { color: var(--tx, var(--lbp-text)); }
body.lb-polished { --selection-color: rgba(21, 94, 239, .16); }
::selection { background: var(--selection-color, rgba(21, 94, 239, .18)); color: var(--lbp-ink); }

:is(a, button, input, textarea, select, [role="button"]):focus-visible {
  outline: none !important;
  box-shadow: var(--lbp-focus) !important;
  border-color: var(--lbp-blue) !important;
}

.top,
.topbar,
.status-nav,
.app-topbar {
  color: var(--lbp-ink);
}

.nav a,
.nav-links a,
.status-links a,
.toc a,
.profile-btn,
.session-chip {
  color: var(--lbp-text) !important;
}

.nav a:hover,
.nav-links a:hover,
.status-links a:hover,
.nav a.on,
.nav-links a.on,
.status-links a.on {
  color: var(--lbp-blue) !important;
  background: rgba(21, 94, 239, .09) !important;
  border-color: rgba(21, 94, 239, .28) !important;
}

.profile-dd,
.profile-menu .profile-dd,
.profile-dropdown,
.dropdown-menu,
.menu-panel {
  border: 1px solid var(--lbp-line) !important;
  background: rgba(255, 255, 255, .98) !important;
  box-shadow: 0 22px 60px rgba(15, 41, 64, .14) !important;
  color: var(--lbp-ink) !important;
}

.profile-dd a,
.profile-dd button,
.profile-dropdown a,
.profile-dropdown button,
.dropdown-menu a,
.dropdown-menu button {
  color: var(--lbp-text) !important;
}

.profile-dd a:hover,
.profile-dd button:hover,
.profile-dropdown a:hover,
.profile-dropdown button:hover,
.dropdown-menu a:hover,
.dropdown-menu button:hover {
  background: var(--lbp-soft) !important;
  color: var(--lbp-blue) !important;
}

.btn,
button.btn,
a.btn,
.plain-btn,
.status-btn,
.ticket-file-trigger,
.paypal-checkout-btn,
.pack-btn,
.market-action,
.hero-actions a,
.project-modal-actions .btn {
  font-weight: 900 !important;
  letter-spacing: -.01em;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease !important;
}

.btn:not(.ghost):not(.alt):not(.secondary):not(.danger):not(.warn),
.btn.main,
.btn.primary,
a.btn.primary,
button.btn.primary,
.plain-btn.primary,
.status-btn.primary,
.paypal-checkout-btn,
.ticket-file-trigger {
  background: linear-gradient(135deg, var(--lbp-blue), var(--lbp-blue-2)) !important;
  border-color: var(--lbp-blue-2) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(21, 94, 239, .20) !important;
}

.btn.alt,
.btn.secondary,
.btn.ghost,
.plain-btn,
a.btn.secondary,
button.btn.secondary,
.status-btn,
.pack-btn {
  background: #fff !important;
  border: 1px solid #b9cff8 !important;
  color: var(--lbp-blue) !important;
  box-shadow: 0 8px 20px rgba(15, 41, 64, .045) !important;
}

.btn.danger,
button.btn.danger,
a.btn.danger {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(220, 38, 38, .18) !important;
}

.btn.warn,
button.btn.warn {
  background: #fff7ed !important;
  border: 1px solid #fed7aa !important;
  color: #9a3412 !important;
  box-shadow: none !important;
}

.btn:hover:not(:disabled),
a.btn:hover,
.plain-btn:hover:not(:disabled),
.status-btn:hover:not(:disabled),
.ticket-file-trigger:hover:not(:disabled),
.pack-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 18px 38px rgba(21, 94, 239, .18) !important;
}

.btn:disabled,
button:disabled,
a.btn[aria-disabled="true"] {
  opacity: .58 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.field-input,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
textarea,
select,
.lkd-input {
  color: var(--lbp-ink) !important;
  background: #fff !important;
  border-color: #b9c8da !important;
}

.field-input::placeholder,
input::placeholder,
textarea::placeholder {
  color: #71869a !important;
}

label,
.form-label,
.field label {
  color: var(--lbp-text) !important;
}

.status,
.access-status,
.status-pill,
.coupon-status,
.payment-hint,
#topStatus,
#marketStatus,
#projectStatus,
#settingsStatus,
#securityStatus,
#privacyStatus,
#deleteAccountStatus {
  border-radius: 16px;
  color: var(--lbp-muted) !important;
  font-weight: 850 !important;
}

.status.ok,
.access-status.ok,
.coupon-status.ok,
.status-pill.ok,
.ok.status {
  color: var(--lbp-ok) !important;
  background: #ecfdf3 !important;
  border-color: #bbf7d0 !important;
}

.status.err,
.access-status.err,
.coupon-status.err,
.status-pill.err,
.err.status,
.error,
.ai-code-stream.error .ai-code-status {
  color: var(--lbp-danger) !important;
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
}

.status.warn,
.coupon-status.warn,
.warn.status {
  color: var(--lbp-warn) !important;
  background: #fffbeb !important;
  border-color: #fde68a !important;
}

.status.info,
.info.status {
  color: #075985 !important;
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
}

.empty,
.empty-state,
.empty-box,
.empty-projects,
.cart-empty,
.no-results,
.placeholder-state {
  position: relative;
  border: 1px dashed #adc2d9 !important;
  background: linear-gradient(135deg, #ffffff, #f4f8ff) !important;
  color: var(--lbp-muted) !important;
  border-radius: 22px !important;
  box-shadow: 0 12px 32px rgba(15, 41, 64, .045) !important;
  line-height: 1.55 !important;
}

.empty::before,
.empty-state::before,
.empty-box::before,
.cart-empty::before,
.no-results::before,
.placeholder-state::before {
  content: "";
  display: block;
  width: 34px;
  height: 4px;
  border-radius: 999px;
  margin: 0 auto 12px;
  background: linear-gradient(90deg, var(--lbp-blue), #11b8d9);
  opacity: .9;
}

.lb-empty-note {
  display: block;
  margin-top: 7px;
  color: #667b90;
  font-size: 13px;
  font-weight: 750;
}

.project-modal-bg,
.modal,
.lw-legal-backdrop,
.lkd-backdrop,
.buy-modal-bg,
.template-modal-bg,
.critical-2fa-backdrop {
  backdrop-filter: blur(14px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
}

.project-modal,
.dialog,
.lkd-modal,
.lw-legal-modal,
.buy-modal,
.mk-modal,
.critical-2fa-box,
.template-modal,
.modal-card {
  border: 1px solid rgba(15, 41, 64, .14) !important;
  background: linear-gradient(160deg, #fff, #f7fbff) !important;
  color: var(--lbp-ink) !important;
  box-shadow: 0 30px 90px rgba(7, 29, 51, .22) !important;
}

.project-modal h3,
.dialog h3,
.lkd-title,
.lw-legal-modal h2,
.buy-modal h2,
.mk-modal h2 {
  color: var(--lbp-ink) !important;
  letter-spacing: -.045em;
}

.project-modal p,
.dialog p,
.lkd-text,
.lw-legal-modal p,
.buy-modal p,
.mk-modal p {
  color: var(--lbp-muted) !important;
}

.tag,
.badge,
.payment-badge,
.priority-chip,
.mini-pill,
.state {
  font-weight: 950 !important;
}

.tag,
.badge,
.state,
.payment-badge {
  color: #0f4fd1 !important;
  background: #eef4ff !important;
  border-color: rgba(21, 94, 239, .18) !important;
}

.tag.ok,
.tag.approved,
.tag.active,
.payment-badge.ok,
.state.ok {
  color: var(--lbp-ok) !important;
  background: #ecfdf3 !important;
}

.tag.bad,
.tag.rejected,
.payment-badge.err,
.state.err {
  color: var(--lbp-danger) !important;
  background: #fff1f2 !important;
}

.tag.pending,
.payment-badge.pending,
.state.warn {
  color: var(--lbp-warn) !important;
  background: #fffbeb !important;
}

.panel,
.card,
.status-card,
.summary,
.wide,
.lang-block,
.project-card,
.market-card,
.coupon-item,
.mini-item,
.ticket-item,
.row,
.ops-card,
.account-card,
.settings-card {
  border-color: var(--lbp-line) !important;
}

.table th,
.table td,
th,
td {
  color: var(--lbp-text);
}

.table th,
th {
  color: #415970 !important;
}

@media (max-width: 720px) {
  .btn,
  a.btn,
  button.btn,
  .plain-btn,
  .status-btn {
    min-height: 42px;
  }
  .top,
  .topbar {
    border-radius: 18px !important;
  }
}
