/* ---------- Theme tokens ---------- */
:root {
	--body:#fff; --blue:#305de3; --border:#d6dce1; --font:#212529; --rFont:#fff;
	--muted:#6c757d; --accent:#305de3; --error:#dc3545; --error-bg:#ffebed;
	--success:#1f7634; --success-text:var(--success); --success-bg:#f5fff8;
	--info:#ff8700; --info-bg:#fffaeb; --label:#6c757d; --disabled:#f8f9fa;
	--separator:#dee2e6; --field-bg-active:#ffffff; --field-bg-default:#ffffff;
	--field-bg-disabled:#f8f9fa; --field-bg-edited:#FDF3D7; --field-text-default:#6c757d;
	--field-font-active:#212529; --fixed-table-first-col:#fff; --fixed-table-first-col-header:#e6ecf1;
	--fixed-table-header:#e2e7ec; --fixed-table-border:#DEE2E6; --bg-active:#fff; --header:#fff;
	/* Buttons */
	--bg-btn-nohover:var(--accent); --border-btn-nohover:transparent; --nohover-font:#fff;
	--bg-bordered-btn:var(--body); --bg-bordered-btn-hover:var(--accent); --bordered-font:var(--muted);
	--hovered-bordered-font:#fff; --bg-neutral-btn:#f8f9fa; --bg-btn-secondary:#e8f6ff;
	--font-btn-secondary:var(--blue); --border-btn-secondary:var(--blue); --bg-btn-primary:var(--accent);
	--bg-btn-secondary-hover:var(--blue); --font-btn-secondary-hover:#fff; --border-btn-secondary-hover:var(--blue);
	/* Cards (kept minimal for utilities that reference) */
	--card-bg:#ffffff; --card-bg-active:#ffffff; --text-card-ghost-hover:var(--accent);
	--border-width:1px;
	/* Dropdowns */
	--tag-bg-secondary:#e8f6ff; --dropdown-display-border:var(--accent); --dropdown-display:#fff;
	--dropdown-option-hover-bg:#e8f6ff; --dropdown-option-hover-font:var(--accent);
	/* Login */
	--login-bg:#f1f3f5; --login-body-bg:#fff;
	/* Datepicker */
	--date-field-border:var(--border);
	/* Modal */
	--modal-body:#fff; --modal-header:#fff; --modal-backdrop:#00000033;
	/* Sidebar (tokens referenced by a few utilities) */
	--sidebar:#f1f3f5; --switch-bg:#D6DCE1; --switch-active-bg:var(--accent);
	--switch-border:#D6DCE1; --mobile-sidebar-body-bg:#00000033;
	/* Table rows (some utilities use these) */
	--row-active:#def1ff; --row-even:#FCFDFF; --row-hovered:#def1ff; --row-odd:#FFFFFF;
	/* Inputs */
	--input-bg:var(--field-bg-active); --input-text:var(--field-text-default);
}
[data-theme='dark']{
	--body:#191c1f; --blue:#305de3; --font:#ededed; --rFont:#212529; --muted:#fff; --accent:#ededed;
	--border:#292d33; --separator:#292d33; --card-bg:#212428; --card-bg-active:#292d33; --success-text:#fff;
	--header:#141618; --field-bg-active:#292d33; --field-bg-edited:#604C15; --field-bg-default:#24272b;
	--field-bg-disabled:#1d2024; --field-font-active:#4f555f; --field-text-default:#6c757d;
	--fixed-table-first-col:#212428; --fixed-table-first-col-header:#212428; --fixed-table-header:#212428;
	--fixed-table-border:#292E33; --bg-active:#212428; --date-field-border:#292d33; --bg-btn-nohover:#292d33;
	--border-btn-nohover:#292d33; --nohover-font:var(--font); --bg-bordered-btn:#24272b; --bg-bordered-btn-hover:#fff;
	--bordered-font:var(--font); --hovered-bordered-font:#003CFF; --bg-btn-primary:#292d33;
	--bg-btn-secondary:#292d33; --font-btn-secondary:var(--font); --border-btn-secondary:transparent;
	--bg-btn-secondary-hover:#fff; --font-btn-secondary-hover:#003CFF; --border-btn-secondary-hover:#003CFF;
	--login-bg:#141618; --icon-chevron-border:#2d3036; --icon-chevron-fill:#1a1d21; --icon-chevron:var(--font);
	--row-active:#182858; --row-even:#1D2024; --row-hovered:#191c1f; --row-odd:#212428;
	--sidebar:#141618; --switch-active-bg:#2F3236; --switch-bg:#212428; --switch-border:#393E45;
	--mobile-sidebar-bg:#000000cc; --input-bg:var(--field-bg-active); --modal-backdrop:#191c1f;
	--dropdown-option-hover-bg:#191c1f; --tag-bg-secondary:#1a1d21; --success-bg:#292d33;
}

/* ---------- Base ---------- */
* { font-family: 'Inter' }
body { background-color:var(--body); margin:0; padding:0; color:var(--font) }
h1,h2,h3,h4,h5,h6,p{margin:0.09rem 0;letter-spacing:.02em}
h6{font-weight:400;font-size:.75rem;color:var(--muted)}
h5{font-weight:500;font-size:.875rem}
h4{font-size:1rem;font-weight:600}
h3{font-size:1.25rem;font-weight:600}
h2{font-size:2rem;font-weight:600}
button{background-color:transparent;border:none;cursor:pointer;outline:none}
a{text-decoration:none}

/* ---------- Utilities: text & weight ---------- */
.text-primary{color:var(--font)}
.text-accent{color:var(--accent)}
.text-md{font-size:.875rem !important}
.font-medium{font-weight:500 !important}
.font-semibold{font-weight:600 !important}
.font-normal{font-weight:400 !important}

/* ---------- Utilities: layout & spacing ---------- */
.w-full{width:100% !important}
.h-full{height:100%}
.gap-1{gap:.5em !important}
.gap-2{gap:1em !important}
.flex-nowrap{flex-flow:nowrap !important}
.pt-1{padding-top:1em !important}
.pb-1{padding-bottom:1em !important}
.pl-1{padding-left:1em !important}

/* ---------- Separator ---------- */
.separator{width:100%}
.separator.default{background-color:var(--separator)}
.separator.horizontal.thin{width:100%;height:.06rem}

/* ---------- Gridlex (kept for row/col & responsive helpers) ---------- */
[class~="row"],[class*="row-"]{box-sizing:border-box;display:flex;flex-flow:row wrap}
[class~="col"],[class*="col-"]{box-sizing:border-box;padding:0 .5rem 1rem;max-width:100%}
[class~="col"]{flex:1 1 0%}[class*="col-"]{flex:none}
[class*="row-"][class*="-center"]{justify-content:center}
[class*="row-"][class*="-middle"]{align-items:center}
[class*="row-"][class*="-spaceBetween"]{justify-content:space-between}
[class*="row-"][class*="-column"]{flex-direction:column}
[class*="row-"][class*="-noWrap"]{flex-wrap:nowrap}

/* responsive modifiers for rows/cols (kept concise but functional) */
[class*="row-1"]>[class~="col"],[class*="row-1"]>[class*="col-"]{flex-basis:100%;max-width:100%}
[class*="row-2"]>[class~="col"],[class*="row-2"]>[class*="col-"]{flex-basis:50%;max-width:50%}
@media (max-width:80em){
	[class*="-lg-1"]>[class~="col"],[class*="-lg-1"]>[class*="col-"]{flex-basis:100%;max-width:100%}
	[class*="-lg-2"]>[class~="col"],[class*="-lg-2"]>[class*="col-"]{flex-basis:50%;max-width:50%}
}
@media (max-width:64em){
	[class*="-md-1"]>[class~="col"],[class*="-md-1"]>[class*="col-"]{flex-basis:100%;max-width:100%}
	[class*="-md-2"]>[class~="col"],[class*="-md-2"]>[class*="col-"]{flex-basis:50%;max-width:50%}
}
@media (max-width:48em){
	[class*="-sm-1"]>[class~="col"],[class*="-sm-1"]>[class*="col-"]{flex-basis:100%;max-width:100%}
	[class*="-sm-2"]>[class~="col"],[class*="-sm-2"]>[class*="col-"]{flex-basis:50%;max-width:50%}
}
@media (max-width:36em){
	[class*="-xs-1"]>[class~="col"],[class*="-xs-1"]>[class*="col-"]{flex-basis:100%;max-width:100%}
	[class*="-xs-2"]>[class~="col"],[class*="-xs-2"]>[class*="col-"]{flex-basis:50%;max-width:50%}
}

/* show/hide helpers kept minimal */
.hidden{display:none}
.display-flex{display:flex}

/* ---------- Inputs ---------- */
input[type=text],
input[type=password],
input[type=email],
input,
.search{
	width:100%;height:41px !important;padding:.75rem;display:inline-block;
	border:1px solid var(--border);border-radius:.25rem;box-sizing:border-box;
	outline:none;font-size:.875rem;font-weight:400;color:var(--muted);letter-spacing:.02em;
	text-align:left;background-color:var(--input-bg)
}
input[type='hidden']{visibility:none}
input[type=text].disabled,
input[type=password].disabled,
input[type=email].disabled,
.search.disabled{background-color:var(--field-bg-disabled) !important;color:var(--field-text-default) !important;cursor:not-allowed !important}
input[type=text]:hover,
input[type=password]:hover,
input[type=email]:hover,
input[type=text]:focus,
input[type=email]:focus{border:1px solid var(--blue)}
input[type=text].error,
input[type=email].error,
input[type=password].error{border:1px solid var(--error)}

/* password toggle + container */
.toggle-password{position:absolute;right:0.75rem;top:50%;transform:translateY(-50%);cursor:pointer;user-select:none;color:var(--muted);display:flex;align-items:center;justify-content:center;padding:0;height:24px;width:24px}
.toggle-password.error{top:38%}
.password-container{position:relative;width:100%}

/* ---------- Checkbox ---------- */
.checkbox input{height:0 !important;width:0 !important;visibility:hidden}
.checkbox{display:flex;position:relative;cursor:pointer;height:1rem;width:2rem}
.checkmark{position:relative;height:1rem;width:1rem;border:1.5px solid var(--font);border-radius:2px;display:flex;justify-content:center;align-items:center;transition:all .3s ease}
.checkmark:after{content:'';display:none;width:4px;height:8px;border:solid var(--success);border-width:0 2px 2px 0;transform:rotate(45deg);position:absolute;top:1px}
.checkbox input:checked ~ .checkmark:after{display:block}
.checkbox input:checked ~ .checkmark{border:1.5px solid var(--success)}

/* ---------- Buttons ---------- */
.button{cursor:pointer}
.button-variant{border-radius:.25rem;text-align:center;font-size:.875rem !important;font-weight:600;transition:background-color .3s ease-in;align-items:center;display:flex}
.button-variant.default{padding:.75rem}
.button-variant.primary{background-color:var(--bg-btn-primary);color:#fff}
.button-variant.primary:hover{background-color:var(--bg-btn-primary);color:#fff}
.button-variant.neutral{width:100%;background-color:var(--bg-neutral-btn)}

/* ---------- Login layout ---------- */
.login{background-color:var(--login-bg);min-height:100vh;overflow:hidden}
.login .login-wrapper{background-color:var(--login-body-bg);border-radius:.5rem;padding:1.5rem 2rem;width:100%}
.login .login-button{margin-top:.5rem}
@media (min-width:37.5em){
	.login-wrapper{padding:3.06rem 3.25rem;max-width:450px !important}
}

/* ---------- Small responsive tweaks used by page ---------- */
@media (min-width:37.5em) and (max-width:48.99em){.content{margin-left:0 !important}}
@media (max-width:37.49em){.content{margin-left:0 !important}}

.alert-error {
    background: #ffebed;
    color: #dc3545;
    padding: 0.75rem 1rem;
    border-radius: 0.25rem;
    margin-bottom: 1rem;
    font-weight: 500;
    text-align: center;
}
