/* Theme variables */
:root{
 --brand:#ff8a3a;--brand-dark:#f2762a;
 --bg:#3b4044; --card:#ffffff; --card-text:#111827; --text:#e6eef7; --muted:#6b7280; --border:#e6e8eb; --danger:#dc3545;
 --input-bg:#ffffff; --input-border:#d1d5db;
 --site-font: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
 --nav-bg:#1f2937;
 --nav-text:#f3f4f6;
 --nav-border:#111827;
 /* Checkbox and radio button variables */
 --checkbox-border:#9aa4ad; --checkbox-accent:#9aa4ad;
}
[data-theme="dark"]{
 --brand:#ff8a3a;--brand-dark:#f2762a;
 --bg:#33373b;--card:#2b2e31;--card-text:#e8eef7;--text:#e8eef7;--muted:#98a3ad;--border:#25282a;--danger:#ff6b6b;
 --input-bg:#232526;--input-border:#2f3234;
 --nav-bg:#1f2937;
 --nav-text:#e5e7eb;
 --nav-border:#0b0f14;
 /* Dark theme checkbox and radio button variables */
 --checkbox-border:#7f888c; --checkbox-accent:#7f888c;
}

html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--site-font);}

/* Navbar */
.navbar{background-color:var(--nav-bg)!important;border-bottom:1px solid var(--nav-border)}
.navbar .navbar-brand{font-weight:700;letter-spacing:.2px;color:var(--nav-text)!important}
.navbar .nav-link{color:var(--nav-text)!important}
.navbar .nav-link:hover{color:var(--brand)}
.navbar .navbar-toggler{border-color:var(--nav-border)}
.navbar .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='003030'%3e%3cpath stroke='rgba(255,255,255,0.85)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M47h22M415h22M423h22'/%3e%3c/svg%3e")}

/* Center main content except login */
body:not(.login-page) main.app-content {
 width:90%;
 max-width:90%;
 margin:0 auto;
 padding-top:1.5rem;
 padding-bottom:1.5rem;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
 body:not(.login-page) main.app-content {
 width:95%;
 max-width:95%;
 padding-top:1rem;
 padding-bottom:1rem;
 }
 .card {
 margin-bottom:1rem !important;
 }
 .card-body {
 padding:1rem !important;
 }
 /* Stack form columns on mobile */
 .row.g-3 > .col-md-6,
 .row.g-3 > .col-md-3,
 .row.g-3 > .col-md-4,
 .row.g-2 > .col-md-2,
 .row.g-2 > .col-md-3 {
 margin-bottom:0.75rem;
 }
 /* Smaller buttons on mobile */
 .btn {
 padding:0.5rem1rem;
 font-size:0.9rem;
 }
 /* Make tables scroll horizontally on mobile */
 .table-responsive {
 overflow-x: auto !important;
 -webkit-overflow-scrolling: touch;
 }
 /* Reduce navbar brand size on mobile */
 .navbar-brand {
 font-size:1.1rem;
 }
 /* User block in navbar: smaller on mobile */
 .user-block {
 font-size:0.85rem;
 }
 .user-block .email {
 font-size:0.75rem;
 }
}

.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--card-text)}
.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}

.table{color:var(--card-text)}
.table thead th{color:#c3c8cc;border-bottom-color:var(--border)}
.table td,.table th{border-color:var(--border)}

body:not(.login-page) .table {
 width:90vw !important;
 max-width:100% !important;
 margin-left: auto !important;
 margin-right: auto !important;
}
body:not(.login-page) .table-responsive {
 overflow: visible !important;
}
body:not(.login-page) .table-responsive .table {
 width:90vw !important;
}
.table-responsive .dropdown-menu {
 position: absolute;
 z-index:2100;
}
body.login-page .table {
 width: auto !important;
 max-width:100% !important;
 margin-left:0 !important;
 margin-right:0 !important;
}

/* Mobile table adjustments */
@media (max-width: 768px) {
 body:not(.login-page) .table {
 width:100% !important;
 font-size:0.85rem;
 }
 body:not(.login-page) .table-responsive {
 overflow-x: auto !important;
 }
 body:not(.login-page) .table-responsive .table {
 width:100% !important;
 }
 .table td, .table th {
 padding:0.5rem;
 white-space: nowrap;
 }
}

/* Slightly darker checkbox/radio styling */
:root{ --checkbox-border:#9aa4ad; --checkbox-accent:#9aa4ad; }
[data-theme="dark"]{ --checkbox-border:#7f888c; --checkbox-accent:#7f888c; }

input[type="checkbox"], input[type="radio"] {
 /* modern browsers use accent-color for the check mark / filled color */
 accent-color: var(--checkbox-accent) !important;
 /* ensure a slightly stronger border is visible on most browsers */
 border-color: var(--checkbox-border) !important;
 /* add a subtle inset stroke so the box looks a bit darker even when not checked */
 box-shadow: inset0001px var(--checkbox-border);
}

/* Small tweak to align with existing rounded inputs */
input[type="checkbox"] {
 border-radius:6px;
}

.alert-danger{background:#f8d7da;border-color:#f5c2c7;color:#842029}
[data-theme="dark"] .alert-danger{background:#30161b;border-color:#5a1e28;color:#ffb3b8}

.copy-short{cursor:pointer}
.footer{color:var(--muted)}
.small-muted{color:var(--muted);font-size:.875rem}

h1,h2,h3,h4{font-weight:300;color:var(--card-text)}
.huge-title{font-size:3.2rem;font-weight:300;text-align:center;margin-bottom:0.5rem}
.pill-accent{background:var(--brand);color:var(--card-text);padding:.5rem1rem;border-radius:999px}
.user-block .email{color:rgba(255,255,255,.8)}

/* Mobile heading adjustments */
@media (max-width: 768px) {
 h1 { font-size:1.75rem; }
 h2 { font-size:1.5rem; }
 h3 { font-size:1.25rem; }
 h4 { font-size:1.1rem; }
 .huge-title { font-size:2rem; }
}

/* ===================================================================
 GLOBAL CARD AND INPUT STYLING - FORCED WHITE + ROUNDED
 Place at end so these win over Bootstrap and earlier theme rules.
=================================================================== */

/* All cards must be white, rounded 12px, with dark text */
.card,
.card-header,
.card-body,
.card-footer,
.modal-content,
.popover {
 background: #ffffff !important;
 color: #111827 !important;
 border-radius:12px !important;
 border:1px solid #e6e8eb !important;
}

/* Card headers/footers inherit parent rounding */
.card-header {
 border-top-left-radius:12px !important;
 border-top-right-radius:12px !important;
 border-bottom:1px solid #e6e8eb !important;
}
.card-footer {
 border-bottom-left-radius:12px !important;
 border-bottom-right-radius:12px !important;
 border-top:1px solid #e6e8eb !important;
}

/* Round bordered sections inside main content that aren't .card */
main.app-content .border,
main.app-content .bg-white,
main.app-content > div:not(.card) {
 border-radius:12px !important;
}

/* All input/select/textarea white + rounded */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="file"],
textarea,
select,
.form-control,
.form-select {
 background: #ffffff !important;
 color: #111827 !important;
 border-color: #d1d5db !important;
 border-radius:8px !important;
 color-scheme: light !important;
}

input:focus, textarea:focus, select:focus, .form-control:focus, .form-select:focus {
 outline: none !important;
 box-shadow:000 .15rem rgba(99,102,241,0.08) !important;
 border-color: #a3b0c3 !important;
}

/* Date pickers */
input[type="date"], input[type="datetime-local"], input[type="time"], input[type="month"], input[type="week"] {
 -webkit-appearance: none !important;
 appearance: none !important;
 padding-right: .75rem;
}
input[type="date"]::-webkit-calendar-picker-indicator {
 filter: none !important;
 opacity:1 !important;
}

/* File inputs */
input[type="file"], .form-control[type="file"] {
 background: #ffffff !important;
 color: #111827 !important;
 border-color: #d1d5db !important;
 border-radius:8px !important;
 padding: .375rem .5rem !important;
}
input[type="file"]::file-selector-button,
input[type="file"]::-webkit-file-upload-button,
input[type="file"]::-ms-browse {
 background-color: #ffffff !important;
 color: #111827 !important;
 border:1px solid #d1d5db !important;
 padding: .375rem .6rem !important;
 margin-right: .35rem !important;
 border-radius:8px !important;
}
input[type="file"]::-moz-file-upload-button {
 background-color:#ffffff !important;
 color:#111827 !important;
 border:1px solid #d1d5db !important;
 border-radius:8px !important;
}

/* Select options */
select option, .form-select option, .form-control option {
 background: #ffffff !important;
 color: #111827 !important;
}

/* Dropdowns */
.dropdown-menu {
 background: #ffffff !important;
 color: #111827 !important;
 border-color: #e6e8eb !important;
 border-radius:8px !important;
}
.dropdown-item {
 color: #111827 !important;
}

/* Placeholders */
::placeholder {
 color: #6b7280 !important;
 opacity:1 !important;
}

/* Kill .bg-dark on form controls */
.form-control.bg-dark,
.form-select.bg-dark,
input.bg-dark,
select.bg-dark,
textarea.bg-dark {
 background: #ffffff !important;
 color: #111827 !important;
 border-color:#d1d5db !important;
}

/* Tables inside cards */
.card .table,
.card .table-responsive .table {
 width:100% !important;
 max-width:100% !important;
 margin:0 !important;
}
.card .table-responsive {
 overflow: hidden !important;
}
.card .table,
.card .table thead th,
.card .table tbody td {
 background: transparent !important;
 color: inherit !important;
}

/* Modals */
.modal-title, .modal-body, .modal-footer {
 color: #111827 !important;
}
.form-label, label {
 color: #111827 !important;
}
.form-text, .small, .help-text {
 color: #6b7280 !important;
}
.modal-header .btn-close {
 filter: none;
}

/* Mobile modal adjustments */
@media (max-width: 768px) {
 .modal-dialog {
 margin:0.5rem;
 max-width: calc(100% -1rem);
 }
 .modal-body {
 padding:1rem;
 }
}

/* END GLOBAL OVERRIDES */
