/* ========= Viagens Admin global fixes ========= */

/* Theme tokens */
:root{
  --v-green-600:#16a34a;
  --v-green-700:#15803d;
  --v-green-50:#ecfdf5;
  --v-gray-900:#111827;
  --v-gray-700:#374151;
  --v-gray-600:#4b5563;
  --v-gray-500:#6b7280;
  --v-gray-300:#d1d5db;
  --v-gray-200:#e5e7eb;
  --v-gray-100:#f3f4f6;
  --v-indigo-500:#6366f1;

  /* Form accents */
  --accent:#10B981;               /* green-500 */
  --accent-50:rgba(16,185,129,.22);
  --danger:#ef4444;               /* red-500  */
  --border:#D1D5DB;               /* gray-300 */
  --border-hover:#9CA3AF;         /* gray-400 */
  --input-bg:#ffffff;
}

/* -------- Buttons (site-wide) -------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.375rem;
  padding:.5rem .9rem; border-radius:.5rem; font-weight:600; line-height:1.25;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary{ background:var(--v-green-600); color:#fff; border-color:var(--v-green-600); }
.btn-primary:hover{ background:var(--v-green-700); border-color:var(--v-green-700); }
.btn-secondary{ background:var(--v-gray-100); color:var(--v-gray-900); border-color:var(--v-gray-200); }
.btn-secondary:hover{ background:var(--v-gray-200); border-color:var(--v-gray-300); }

/* -------- Badges -------- */
.badge{ display:inline-block; font-size:.75rem; line-height:1; padding:.25rem .55rem; border-radius:9999px; font-weight:600; }
.badge-success{ background:#dcfce7; color:#166534; }
.badge-muted{ background:var(--v-gray-100); color:var(--v-gray-700); }

/* -------- Cards -------- */
.card, .hp-card{ background:#fff; border:1px solid var(--v-gray-200); border-radius:.75rem; box-shadow:0 1px 2px rgba(0,0,0,.04); }

/* -------- Breadcrumb cleanup -------- */
nav[aria-label="Breadcrumb"], .breadcrumb, .breadcrumbs{ padding-left:0; margin-left:0; }
nav[aria-label="Breadcrumb"] ol, nav[aria-label="Breadcrumb"] ul, .breadcrumb, .breadcrumbs { list-style:none; }
nav[aria-label="Breadcrumb"] li::marker, .breadcrumb li::marker, .breadcrumbs li::marker { content:''; }

/* -------- Providers grid responsive safety -------- */
.providers-grid{ display:grid; gap:1.5rem; }
@media (max-width:640px){ .providers-grid{ grid-template-columns:1fr !important; } }

/* -------- Sidebar & layout mobile hardening -------- */
@media (max-width:1024px){ aside[class*="w-72"]{ width:100% !important; min-height:auto !important; box-shadow:none; } }

/* Center main content and allow wide tables to scroll horizontally */
.admin-table-wrap{ max-width:1440px; margin:0 auto; overflow-x:auto; }
.admin-table{ min-width:1200px; }

/* ================= Form control visibility upgrade ================= */

/* Apply to native inputs/selects/textarea */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="time"],
input:not([type]),
select,
textarea{
  -webkit-appearance:none; appearance:none;
  background:var(--input-bg);
  border:2px solid var(--border);
  border-radius:.5rem;            /* rounded-lg */
  padding:.625rem .75rem;         /* ~py-2.5 px-3 */
  line-height:1.5;
  min-height:2.75rem;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

/* Also upgrade your helper classes (.form-input, etc.) */
.form-input,.form-select,.form-textarea{
  background:#fff; color:var(--v-gray-900);
  border:2px solid var(--border);
  border-radius:.5rem;
  padding:.625rem .75rem;
}

/* Hover state */
input[type="text"]:hover,
input[type="email"]:hover,
input[type="password"]:hover,
input[type="number"]:hover,
input[type="tel"]:hover,
input[type="url"]:hover,
input[type="search"]:hover,
input[type="date"]:hover,
input[type="time"]:hover,
input:not([type]):hover,
select:hover,
textarea:hover,
.form-input:hover,.form-select:hover,.form-textarea:hover{
  border-color:var(--border-hover);
}

/* Focus & focus-visible ring */
input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus,
input[type="number"]:focus, input[type="tel"]:focus, input[type="url"]:focus,
input[type="search"]:focus, input[type="date"]:focus, input[type="time"]:focus,
input:not([type]):focus, select:focus, textarea:focus,
.form-input:focus, .form-select:focus, .form-textarea:focus{
  outline:0;
  border-color:var(--accent);
  box-shadow:0 0 0 .2rem var(--accent-50);
}
input[type="text"]:focus-visible, input[type="email"]:focus-visible, input[type="password"]:focus-visible,
input[type="number"]:focus-visible, input[type="tel"]:focus-visible, input[type="url"]:focus-visible,
input[type="search"]:focus-visible, input[type="date"]:focus-visible, input[type="time"]:focus-visible,
input:not([type]):focus-visible, select:focus-visible, textarea:focus-visible,
.form-input:focus-visible, .form-select:focus-visible, .form-textarea:focus-visible{
  outline:0;
  border-color:var(--accent);
  box-shadow:0 0 0 .2rem var(--accent-50);
}

/* Placeholder legibility */
input::placeholder, textarea::placeholder{ color:#9CA3AF; opacity:1; }

/* Disabled/readonly */
input[disabled], select[disabled], textarea[disabled],
input[readonly], select[readonly], textarea[readonly]{
  background:#F3F4F6; color:#6B7280; cursor:not-allowed;
}

/* Invalid state */
input:invalid:focus, select:invalid:focus, textarea:invalid:focus,
.form-input.is-invalid:focus, .form-select.is-invalid:focus, .form-textarea.is-invalid:focus{
  border-color:var(--danger);
  box-shadow:0 0 0 .2rem rgba(239,68,68,.18);
}

/* File inputs */
input[type="file"]{
  border:2px solid var(--border);
  border-radius:.5rem;
  padding:.5rem;
  background:#fff;
}

/* Checkboxes & radios pop with brand color */
input[type="checkbox"], input[type="radio"]{ accent-color:var(--accent); }

/* === FORCE visible inputs across themes === */
input[type="text"],input[type="email"],input[type="password"],
input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
input[type="date"],input[type="time"],input:not([type]),
select,textarea,.form-input,.form-select,.form-textarea,.form-control{
  background:#fff !important;
  border:2px solid #6B7280 !important;   /* gray-500 */
  border-radius:.5rem !important;
  padding:.625rem .75rem !important;
  min-height:2.75rem !important;
}
input:focus,select:focus,textarea:focus,
.form-input:focus,.form-select:focus,.form-textarea:focus,.form-control:focus{
  outline:0 !important;
  border-color:#10B981 !important;       /* green-500 */
  box-shadow:0 0 0 .2rem rgba(16,185,129,.22) !important;
}

/* === FORCE OVERRIDE: fat borders + visible focus everywhere === */
:root{
  --v-force-accent:#10B981;              /* green-500 */
  --v-force-ring:rgba(16,185,129,.22);
  --v-force-border:#6B7280;              /* gray-500 */
  --v-force-bg:#ffffff;
}

/* High-specificity selector + !important wins over Tailwind/Bootstrap utilities */
body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
){
  background:var(--v-force-bg) !important;
  border-width:2px !important;
  border-style:solid !important;
  border-color:var(--v-force-border) !important;
  border-radius:.5rem !important;
  padding:.625rem .75rem !important;
  min-height:2.75rem !important;
  outline:0 !important;
}

body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
):hover{
  border-color:#4B5563 !important; /* gray-600 */
}

body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
):focus,
body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
):focus-visible{
  border-color:var(--v-force-accent) !important;
  box-shadow:0 0 0 .2rem var(--v-force-ring) !important;
}

/* Make checkboxes/radios clearly branded */
input[type="checkbox"],input[type="radio"]{
  accent-color:var(--v-force-accent) !important;
}

/* === Layout safety: include borders/padding in width calculations === */
*, *::before, *::after { box-sizing: border-box; }

/* === Compact visible inputs (no overlaps) === */
:root{
  --v-force-accent:#10B981;              /* green-500 */
  --v-force-ring:rgba(16,185,129,.18);   /* slightly lighter ring */
  --v-force-border:#6B7280;              /* gray-500 */
}

/* Keep widths sane in flex/grid rows */
body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
){
  width:100% !important;
  max-width:100% !important;
  border-width:1.5px !important;          /* was 2px */
  padding:.5rem .65rem !important;        /* was .625rem .75rem */
  min-height:2.5rem !important;           /* was 2.75rem */
  line-height:1.4 !important;
}

/* Nicer select arrow spacing without making control taller */
select, .form-select { padding-right:2rem !important; }

/* Focus ring slightly thinner */
body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
):focus,
body :is(
  input[type="text"],input[type="email"],input[type="password"],
  input[type="number"],input[type="tel"],input[type="url"],input[type="search"],
  input[type="date"],input[type="time"],input:not([type]),
  select,textarea,.form-input,.form-select,.form-textarea,.form-control
):focus-visible{
  border-color:var(--v-force-accent) !important;
  box-shadow:0 0 0 .15rem var(--v-force-ring) !important; /* was .2rem */
  outline:0 !important;
}
