/*! Pro Destino UI v1 — design-only override (safe) */
:root{
  --pd-bg:#0d0f13;
  --pd-surface:#151821;
  --pd-surface-2:#1b1f2a;
  --pd-text:#eef2f7;
  --pd-muted:#a7b0c2;
  --pd-brand:#1db954; /* green from sample */
  --pd-danger:#dc3545;
  --pd-warn:#facc15;
  --pd-ok:#22c55e;
  --pd-border:#293043;
  --pd-radius:14px;
  --pd-shadow:0 6px 18px rgba(0,0,0,.18);
}

/* Base */
html { -webkit-text-size-adjust: 100%; }
body {
  background: linear-gradient(180deg, rgba(21,24,33,.66), rgba(13,15,19,1)) fixed;
  color: var(--pd-text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji','Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Links */
a { color: var(--pd-brand); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Containers often used as boxes/cards in PHP apps */
.card, .box, .panel, .well, .container-box, .pd-card {
  background: #fff;
  color: #0f172a;
  border-radius: var(--pd-radius);
  box-shadow: var(--pd-shadow);
  padding: 14px;
  border: 0;
}
.card h1, .card h2, .card h3, .box h1, .box h2, .box h3, .panel h1, .panel h2, .panel h3 {
  margin-top: 0.2rem;
  color: #0f172a;
}

/* Headers / topbars (try to beautify existing navs) */
header, .topbar, .navbar, nav.navbar, .menu, .header, .pd-topbar {
  background: var(--pd-surface);
  color: var(--pd-text);
  border-bottom: 1px solid var(--pd-border);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
header a, .topbar a, .navbar a, nav.navbar a, .menu a, .header a { color: var(--pd-text); opacity: .95; }
header a:hover, .topbar a:hover, .navbar a:hover, nav.navbar a:hover, .menu a:hover, .header a:hover { opacity: 1; text-decoration: none; }

/* Buttons (work with plain <button>, input[type=submit], and common .btn class) */
button, .btn, input[type="submit"], input[type="button"], .button {
  background: var(--pd-brand);
  color: #fff;
  border: 0;
  border-radius: 12px;
  padding: 10px 14px;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  transition: transform .05s ease, filter .2s ease, box-shadow .2s ease;
}
button:hover, .btn:hover, input[type="submit"]:hover, input[type="button"]:hover, .button:hover { filter: brightness(1.06); }
button:active, .btn:active, input[type="submit"]:active, input[type="button"]:active, .button:active { transform: translateY(1px); }

/* Semantic button helpers if projects already use these classes */
.btn-primary { background: var(--pd-brand)!important; color:#fff!important; }
.btn-success { background: var(--pd-ok)!important; color:#0b1a10!important; }
.btn-danger, .btn-delete { background: var(--pd-danger)!important; }
.btn-warning { background: var(--pd-warn)!important; color:#111!important; }
.btn-secondary, .btn-default { background: var(--pd-surface-2)!important; color: var(--pd-text)!important; }

/* Inputs & forms */
input[type="text"], input[type="email"], input[type="password"], input[type="number"],
input[type="search"], input[type="tel"], select, textarea, .form-control {
  background: #fff;
  color: #0f172a;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: inset 0 1px 1px rgba(0,0,0,.02);
}
input:focus, select:focus, textarea:focus, .form-control:focus {
  outline: none;
  border-color: #c4f1d1;
  box-shadow: 0 0 0 4px rgba(29,185,84,.15);
}

/* Tables */
table { width: 100%; border-collapse: collapse; overflow: hidden; border-radius: var(--pd-radius); background: #fff; color: #0f172a; }
th, td { padding: 10px 12px; border-bottom: 1px solid #eef2f7; }
thead th { background: #f8fafc; font-weight: 800; }
tbody tr:hover { background: #f8fafc; }

/* Alerts/messages (common class names) */
.alert, .message, .notice {
  padding: 12px 14px;
  border-radius: 12px;
  margin: 8px 0;
}
.alert-success { background: #ecfdf5; color: #065f46; }
.alert-error, .alert-danger { background: #fef2f2; color:#991b1b; }
.alert-warning { background: #fffbeb; color:#92400e; }
.alert-info { background: #eff6ff; color:#1e3a8a; }

/* Lists of items that look better as cards */
.list, .items, .collection { display: grid; gap: 12px; }
.list .item, .items .item, .collection .item { background: #fff; color: #0f172a; padding: 12px; border-radius: 12px; box-shadow: var(--pd-shadow); }

/* Footer */
footer { color: var(--pd-muted); padding: 20px 10px; text-align: center; }

/* Optional helpers used by the sample page (safe if not present) */
#menu { backdrop-filter: blur(6px); }
#statusBar{ font-family: inherit; }
#cardsContainer .card { border-radius: 16px; }
.leaflet-control-custom { border-radius: 50%; }
