/* PorteaPorte - finition visuelle transverse v1 */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
}

* {
  min-width: 0;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

h1, h2, h3, .page-title, .section-title, .card-title, .hero-title {
  letter-spacing: 0 !important;
  text-wrap: balance;
}

p, li, .note, .hint, .muted, .mission-note {
  line-height: 1.58;
  overflow-wrap: anywhere;
}

button,
.btn,
.btn-sm,
.btn-action,
.action-btn,
.accept-btn,
input[type="submit"],
a.btn,
a.btn-sm {
  min-height: 44px;
  border-radius: 10px !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
}

button,
.btn,
.btn-sm,
.btn-action,
.action-btn,
.accept-btn,
a.btn,
a.btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

.btn,
.btn-sm.primary,
.btn-action.btn-approve,
.accept-btn {
  background: linear-gradient(135deg, var(--brand-cyan), var(--brand-lime)) !important;
  color: #06100b !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 10px 30px rgba(0,217,255,.16) !important;
}

.btn.secondary,
.btn-sm,
.btn-action,
.action-btn {
  border: 1px solid rgba(184,245,62,.42) !important;
  color: var(--brand-text) !important;
  background: rgba(255,255,255,.055) !important;
}

.btn:hover,
.btn-sm:hover,
.btn-action:hover,
.action-btn:hover,
.accept-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(184,245,62,.85) !important;
  filter: brightness(1.06);
}

input, select, textarea {
  min-height: 44px;
  font-size: 16px;
}

.card,
.panel,
.form-card,
.stat-card,
.mission-card,
.delivery-row,
.table-card {
  border-radius: 14px !important;
}

table {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 720px) {
  body { font-size: 15px; }
  .header-actions,
  .mission-actions,
  .action-cell,
  .actions,
  .delivery-actions,
  .quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px !important;
  }
  .mission-actions .btn,
  .mission-actions .btn-ghost,
  .mission-actions .btn-primary,
  .delivery-actions .btn,
  .actions .btn,
  .quick-actions .quick-action-btn {
    width: 100%;
  }
  table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }
}

/* Cohérence finale bêta : lisibilité et états communs */
.btn,
.btn-primary,
.btn-secondary,
.btn-ghost,
.btn-sm,
.action-btn,
.quick-action-btn,
.accept-btn,
.topbar-btn,
.plan-cta,
.submit-btn,
.pay-btn {
  text-decoration: none !important;
  text-shadow: none !important;
}

.btn-ghost,
.btn.secondary,
.btn-secondary,
.topbar-btn,
.quick-action-btn,
.action-btn:not(.danger):not(.btn-approve) {
  color: var(--brand-text) !important;
  background: rgba(255,255,255,.07) !important;
  border: 1px solid rgba(184,245,62,.38) !important;
}

.btn-ghost:hover,
.btn.secondary:hover,
.btn-secondary:hover,
.topbar-btn:hover,
.quick-action-btn:hover,
.action-btn:not(.danger):not(.btn-approve):hover {
  color: #071006 !important;
  background: linear-gradient(135deg, var(--brand-cyan), var(--brand-lime)) !important;
  border-color: rgba(184,245,62,.9) !important;
}

.btn:disabled,
.btn-sm:disabled,
.action-btn:disabled,
button:disabled {
  opacity: .55 !important;
  cursor: not-allowed !important;
  transform: none !important;
  filter: grayscale(.2);
}

.empty-state,
.empty-msg,
.muted-box,
.notice,
.security-note,
.beta-disclaimer {
  border: 1px solid rgba(184,245,62,.2);
  background: rgba(184,245,62,.045);
  border-radius: 12px;
}

@media (max-width: 520px) {
  .btn,
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .action-btn,
  .quick-action-btn,
  .accept-btn,
  .plan-cta,
  .submit-btn,
  .pay-btn {
    width: 100%;
  }
}
