/* =====================================================================
   TourCraft UI layer (November 2026)
   A calm, modern look on top of the Hyper theme: neutral surfaces, one
   accent (the TourCraft teal), colour only where it means something, and
   glass only on what floats over content (top bar, menus, modals, palette,
   bulk bar, copilot). Loaded after style.css; remove its <link> in
   Structure/Assets/Stylesheets.view.html to roll back to the old look.
   ===================================================================== */

/* ---------- 1. Font: Inter (variable, self-hosted; Latin + Cyrillic) ---------- */
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter/inter-cyrillic-ext.woff2) format("woff2-variations"),url(/assets/fonts/inter/inter-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter/inter-cyrillic.woff2) format("woff2-variations"),url(/assets/fonts/inter/inter-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter/inter-latin-ext.woff2) format("woff2-variations"),url(/assets/fonts/inter/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter/inter-latin.woff2) format("woff2-variations"),url(/assets/fonts/inter/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- 2. Tokens ---------- */
:root{
	--ct-topbar-height:64px;
	--ct-theme-card-border-width:1px;
	--ct-menu-condensed-link-bg:#14937d;
}

:root,
[data-bs-theme=light]{
	/* our own tokens */
	--ui-brand:#36bba5;
	--ui-brand-rgb:54,187,165;
	--ui-accent:#14937d;
	--ui-accent-hover:#0f7d6a;
	--ui-accent-active:#0c6b5b;
	--ui-accent-text:#0f7f6c;
	--ui-ink-rgb:17,24,39;
	--ui-surface:#ffffff;
	--ui-surface-2:#f9fafb;
	--ui-border-soft:#eef0f3;
	--ui-input-border:#d5dae1;
	--ui-glass:rgba(255,255,255,.72);
	--ui-glass-strong:rgba(255,255,255,.88);
	--ui-glass-border:rgba(17,24,39,.08);
	--ui-hairline:rgba(17,24,39,.07);
	--ui-shadow-card:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.03);
	--ui-shadow-pop:0 18px 40px -12px rgba(16,24,40,.22),0 4px 12px -4px rgba(16,24,40,.08);
	--ui-shadow-xl:0 28px 64px -16px rgba(16,24,40,.30),0 8px 20px -8px rgba(16,24,40,.12);
	--ui-ring:0 0 0 3px rgba(54,187,165,.22);

	/* Hyper / Bootstrap tokens */
	--ct-font-sans-serif:"Inter Variable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--ct-body-font-size:.875rem;
	--ct-body-color:#3b4350;
	--ct-body-color-rgb:59,67,80;
	--ct-body-bg:#f5f6f8;
	--ct-body-bg-rgb:245,246,248;
	--ct-emphasis-color:#111827;
	--ct-emphasis-color-rgb:17,24,39;
	--ct-heading-color:#111827;
	--ct-secondary-color:#6b7280;
	--ct-secondary-color-rgb:107,114,128;
	--ct-secondary-bg:#ffffff;
	--ct-secondary-bg-rgb:255,255,255;
	--ct-tertiary-color:#1f2937;
	--ct-tertiary-color-rgb:31,41,55;
	--ct-tertiary-bg:#f3f4f6;
	--ct-tertiary-bg-rgb:243,244,246;
	--ct-border-color:#e5e7eb;
	--ct-border-color-translucent:rgba(17,24,39,.1);
	--ct-border-color-custom:#eef0f3;
	--ct-border-radius:.5rem;
	--ct-border-radius-sm:.375rem;
	--ct-border-radius-lg:.75rem;
	--ct-box-shadow:var(--ui-shadow-card);
	--ct-box-shadow-sm:0 1px 2px rgba(16,24,40,.05);
	--ct-box-shadow-lg:var(--ui-shadow-pop);
	--ct-focus-ring-color:rgba(54,187,165,.22);
	--ct-input-bg:#ffffff;
	--ct-link-color:#0f7f6c;
	--ct-link-color-rgb:15,127,108;
	--ct-link-hover-color:#0b6354;
	--ct-link-hover-color-rgb:11,99,84;
	--ct-highlight-bg:#fef3c7;

	--ct-primary:#14937d;
	--ct-primary-rgb:20,147,125;
	--ct-success:#059669;
	--ct-success-rgb:5,150,105;
	--ct-info:#0284c7;
	--ct-info-rgb:2,132,199;
	--ct-warning:#d97706;
	--ct-warning-rgb:217,119,6;
	--ct-danger:#dc2626;
	--ct-danger-rgb:220,38,38;
	--ct-secondary:#64748b;
	--ct-secondary-rgb:100,116,139;
	--ct-light:#f3f4f6;
	--ct-light-rgb:243,244,246;
	--ct-dark:#111827;
	--ct-dark-rgb:17,24,39;

	--ct-primary-text-emphasis:#0c6656;
	--ct-success-text-emphasis:#065f46;
	--ct-info-text-emphasis:#075985;
	--ct-warning-text-emphasis:#92400e;
	--ct-danger-text-emphasis:#991b1b;
	--ct-secondary-text-emphasis:#334155;
	--ct-light-text-emphasis:#374151;
	--ct-dark-text-emphasis:#111827;
	--ct-primary-bg-subtle:#eaf7f4;
	--ct-success-bg-subtle:#ecfdf5;
	--ct-info-bg-subtle:#eff8ff;
	--ct-warning-bg-subtle:#fffaeb;
	--ct-danger-bg-subtle:#fef3f2;
	--ct-secondary-bg-subtle:#f2f4f7;
	--ct-light-bg-subtle:#fafbfc;
	--ct-dark-bg-subtle:#e5e7eb;
	--ct-primary-border-subtle:#bfe5dd;
	--ct-success-border-subtle:#a7f3d0;
	--ct-info-border-subtle:#b9e6fe;
	--ct-warning-border-subtle:#fde68a;
	--ct-danger-border-subtle:#fecdca;
	--ct-secondary-border-subtle:#e4e7ec;
	--ct-light-border-subtle:#eef0f3;
	--ct-dark-border-subtle:#d0d5dd;
}

[data-bs-theme=dark]{
	--ui-accent:#1fa38c;
	--ui-accent-hover:#25b39a;
	--ui-accent-active:#1a8f7b;
	--ui-accent-text:#4fd1bb;
	--ui-ink-rgb:255,255,255;
	--ui-surface:#151a21;
	--ui-surface-2:#12161c;
	--ui-border-soft:#1e242d;
	--ui-input-border:#2d3542;
	--ui-glass:rgba(13,16,21,.72);
	--ui-glass-strong:rgba(21,26,33,.88);
	--ui-glass-border:rgba(255,255,255,.08);
	--ui-hairline:rgba(255,255,255,.06);
	--ui-shadow-card:0 1px 2px rgba(0,0,0,.35);
	--ui-shadow-pop:0 18px 40px -12px rgba(0,0,0,.6),0 4px 12px -4px rgba(0,0,0,.4);
	--ui-shadow-xl:0 28px 64px -16px rgba(0,0,0,.7),0 8px 20px -8px rgba(0,0,0,.5);
	--ui-ring:0 0 0 3px rgba(54,187,165,.32);

	--ct-body-color:#c3cad5;
	--ct-body-color-rgb:195,202,213;
	--ct-body-bg:#0d1015;
	--ct-body-bg-rgb:13,16,21;
	--ct-emphasis-color:#eef1f5;
	--ct-emphasis-color-rgb:238,241,245;
	--ct-heading-color:#eef1f5;
	--ct-secondary-color:#8b95a7;
	--ct-secondary-color-rgb:139,149,167;
	--ct-secondary-bg:#151a21;
	--ct-secondary-bg-rgb:21,26,33;
	--ct-tertiary-color:#e5e9f0;
	--ct-tertiary-color-rgb:229,233,240;
	--ct-tertiary-bg:#1c222b;
	--ct-tertiary-bg-rgb:28,34,43;
	--ct-border-color:#262d38;
	--ct-border-color-translucent:rgba(255,255,255,.08);
	--ct-border-color-custom:#1e242d;
	--ct-box-shadow:var(--ui-shadow-card);
	--ct-box-shadow-lg:var(--ui-shadow-pop);
	--ct-focus-ring-color:rgba(54,187,165,.32);
	--ct-input-bg:#10141a;
	--ct-link-color:#4fd1bb;
	--ct-link-color-rgb:79,209,187;
	--ct-link-hover-color:#86e3d3;
	--ct-link-hover-color-rgb:134,227,211;
	--ct-highlight-bg:rgba(245,158,11,.25);

	--ct-primary:#22a38c;
	--ct-primary-rgb:34,163,140;
	--ct-success:#10b981;
	--ct-success-rgb:16,185,129;
	--ct-info:#38bdf8;
	--ct-info-rgb:56,189,248;
	--ct-warning:#f59e0b;
	--ct-warning-rgb:245,158,11;
	--ct-danger:#f87171;
	--ct-danger-rgb:248,113,113;
	--ct-secondary:#94a3b8;
	--ct-secondary-rgb:148,163,184;
	--ct-light:#1c222b;
	--ct-light-rgb:28,34,43;
	--ct-dark:#eef1f5;
	--ct-dark-rgb:238,241,245;

	--ct-primary-text-emphasis:#6fdcc9;
	--ct-success-text-emphasis:#6ee7b7;
	--ct-info-text-emphasis:#7dd3fc;
	--ct-warning-text-emphasis:#fcd34d;
	--ct-danger-text-emphasis:#fca5a5;
	--ct-secondary-text-emphasis:#cbd5e1;
	--ct-light-text-emphasis:#e5e9f0;
	--ct-dark-text-emphasis:#e5e9f0;
	--ct-primary-bg-subtle:rgba(34,163,140,.14);
	--ct-success-bg-subtle:rgba(16,185,129,.13);
	--ct-info-bg-subtle:rgba(56,189,248,.12);
	--ct-warning-bg-subtle:rgba(245,158,11,.13);
	--ct-danger-bg-subtle:rgba(248,113,113,.13);
	--ct-secondary-bg-subtle:rgba(148,163,184,.12);
	--ct-light-bg-subtle:rgba(255,255,255,.03);
	--ct-dark-bg-subtle:rgba(255,255,255,.08);
	--ct-primary-border-subtle:rgba(34,163,140,.4);
	--ct-success-border-subtle:rgba(16,185,129,.38);
	--ct-info-border-subtle:rgba(56,189,248,.35);
	--ct-warning-border-subtle:rgba(245,158,11,.38);
	--ct-danger-border-subtle:rgba(248,113,113,.38);
	--ct-secondary-border-subtle:rgba(148,163,184,.3);
	--ct-light-border-subtle:#262d38;
	--ct-dark-border-subtle:#3a4350;
}

/* sidebar: the brand navy, a touch deeper; near-black in dark mode */
html[data-menu-color=dark]{
	--ct-menu-bg:linear-gradient(180deg,#05263f 0%,#031a2c 100%);
	--ct-menu-item-color:rgba(226,236,245,.68);
	--ct-menu-item-hover-color:#ffffff;
	--ct-menu-item-active-color:#ffffff;
	--ct-help-box-bg:rgba(255,255,255,.06);
}
html[data-bs-theme=dark][data-menu-color=light],
html[data-bs-theme=dark][data-menu-color=dark]{
	--ct-menu-bg:#0a0d12;
	--ct-menu-item-color:rgba(226,232,240,.62);
	--ct-menu-item-hover-color:#ffffff;
	--ct-menu-item-active-color:#ffffff;
	--ct-help-box-bg:rgba(255,255,255,.05);
}

/* top bar: transparent here, the glass is painted by .navbar-custom::before */
html[data-topbar-color=light],
html[data-topbar-color=dark],
html[data-bs-theme=dark][data-topbar-color=light],
html[data-bs-theme=dark][data-topbar-color=dark]{
	--ct-topbar-bg:transparent;
	--ct-topbar-item-color:var(--ct-secondary-color);
	--ct-topbar-item-hover-color:var(--ct-heading-color);
	--ct-topbar-search-bg:rgba(var(--ui-ink-rgb),.045);
	--ct-topbar-user-bg:transparent;
	--ct-topbar-user-border:transparent;
}

/* ---------- 3. Base ---------- */
body{
	font-feature-settings:"cv11","ss03";
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	text-rendering:optimizeLegibility;
}
h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-weight:600;letter-spacing:-.011em;color:var(--ct-heading-color);}
b,strong,.fw-bold{font-weight:600;}
.fw-semibold{font-weight:600 !important;}
a{transition:color .15s ease;}
::selection{background:rgba(var(--ui-brand-rgb),.24);}
*{scrollbar-width:thin;scrollbar-color:rgba(var(--ui-ink-rgb),.18) transparent;}
hr{border-top-color:var(--ct-border-color);opacity:1;}
.text-muted{color:var(--ct-secondary-color) !important;}
kbd{background:var(--ct-tertiary-bg);color:var(--ct-secondary-color);border:1px solid var(--ct-border-color);border-radius:4px;box-shadow:none;font-family:inherit;font-size:.7rem;padding:.05rem .35rem;}

/* ---------- 4. Shell: top bar, sidebar, page area ---------- */
.navbar-custom{
	box-shadow:none;
	border-bottom:1px solid var(--ui-hairline);
	isolation:isolate;
}
.navbar-custom::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:-1;
	background:var(--ui-glass);
	-webkit-backdrop-filter:saturate(180%) blur(16px);
	backdrop-filter:saturate(180%) blur(16px);
}
.navbar-custom .topbar{min-height:var(--ct-topbar-height);}
.navbar-custom .topbar-menu .nav-link{color:var(--ct-topbar-item-color);transition:color .15s ease;}
.navbar-custom .topbar-menu .nav-link:hover{color:var(--ct-topbar-item-hover-color);}
.navbar-custom .button-toggle-menu{color:var(--ct-topbar-item-color);border-radius:.5rem;}
.navbar-custom .button-toggle-menu:hover{background:rgba(var(--ui-ink-rgb),.05);color:var(--ct-heading-color);}
.nav-user{border:0;background:transparent;min-height:var(--ct-topbar-height);padding:0 .5rem !important;}
.nav-user .account-user-avatar img{box-shadow:0 0 0 2px var(--ui-surface),0 0 0 3px var(--ct-border-color);}

/* the top-bar search: one rounded field, the Search button sits quietly inside it */
.app-search .input-group{flex-wrap:nowrap;width:380px;max-width:38vw;background:var(--ct-topbar-search-bg);border:1px solid transparent;border-radius:.625rem;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;}
.app-search .input-group:focus-within{background:var(--ui-surface);border-color:rgba(var(--ui-brand-rgb),.6);box-shadow:var(--ui-ring);}
.app-search .form-control{background:transparent !important;border:0 !important;box-shadow:none !important;height:38px;padding-left:2.35rem;min-width:0;}
.app-search .form-control::placeholder{color:var(--ct-secondary-color);opacity:.85;}
.app-search span.search-icon{color:var(--ct-secondary-color);left:.8rem;}
.app-search .input-group > .btn{background:transparent !important;border:0 !important;box-shadow:none !important;color:var(--ct-secondary-color) !important;font-weight:500;font-size:.8125rem;padding:0 .85rem;border-radius:0 .625rem .625rem 0 !important;}
.app-search .input-group > .btn:hover{color:var(--ct-heading-color) !important;}

.leftside-menu{box-shadow:none;border-right:0;}
html[data-bs-theme=dark] .leftside-menu{border-right:1px solid var(--ct-border-color);}
.side-nav .side-nav-title{font-size:.6875rem;font-weight:600;letter-spacing:.08em;color:rgba(226,236,245,.4);padding:18px 24px 6px;}
.side-nav .side-nav-link i{opacity:.9;}
.side-nav .menuitem-active > a{font-weight:500;}
html:not([data-sidenav-size=condensed]):not([data-sidenav-size=sm-hover]) .side-nav > .side-nav-item > .side-nav-link{
	display:flex;
	align-items:center;
	margin:1px 12px;
	padding:8px 12px;
	border-radius:.5rem;
	transition:background-color .15s ease,color .15s ease;
}
html:not([data-sidenav-size=condensed]):not([data-sidenav-size=sm-hover]) .side-nav > .side-nav-item > .side-nav-link:hover{background:rgba(255,255,255,.06);}
html:not([data-sidenav-size=condensed]):not([data-sidenav-size=sm-hover]) .side-nav > .side-nav-item.menuitem-active > .side-nav-link{
	background:rgba(255,255,255,.09);
}
.side-nav .menuitem-active > .side-nav-link i{--fa-primary-color:var(--ui-brand);--fa-secondary-color:var(--ui-brand);color:var(--ui-brand);opacity:1;}

.content-page{padding:0 1rem var(--ct-footer-height);}

/* page header: small breadcrumb above a clear title */
.page-title-box{display:flex;flex-direction:column;padding:1.5rem 0 1.25rem;}
.page-title-box > h3{order:2;margin:0 !important;font-size:1.5rem;font-weight:650;letter-spacing:-.022em;line-height:1.25;color:var(--ct-heading-color);}
.page-title-box > h3 .text-muted{font-weight:500;}
.page-title-box > .breadcrumb{order:1;padding:0 0 .3rem !important;margin:0;font-size:.8rem;}
.breadcrumb{--ct-breadcrumb-divider-color:var(--ct-border-color);--ct-breadcrumb-item-active-color:var(--ct-body-color);}
.breadcrumb .breadcrumb-link{color:var(--ct-secondary-color);}
.breadcrumb .breadcrumb-link:hover{color:var(--ct-heading-color);}
.breadcrumb-item.active .breadcrumb-link{color:var(--ct-body-color);}

/* each page opens with a short fade (full loads and instant navigation alike) */
@media (prefers-reduced-motion:no-preference){
	.content-page > .content > .container-fluid{animation:ui-enter .2s ease-out;}
}
@keyframes ui-enter{from{opacity:0;}to{opacity:1;}}

/* ---------- 5. Cards ---------- */
.card{
	--ct-card-border-width:1px;
	--ct-card-border-color:var(--ct-border-color);
	--ct-card-border-radius:var(--ct-border-radius-lg);
	--ct-card-inner-border-radius:calc(var(--ct-border-radius-lg) - 1px);
	--ct-card-box-shadow:var(--ui-shadow-card);
	--ct-card-spacer-y:1.25rem;
	--ct-card-spacer-x:1.25rem;
	--ct-card-cap-padding-y:.9rem;
	--ct-card-cap-padding-x:1.25rem;
	box-shadow:var(--ct-card-box-shadow);
}
.card .card{box-shadow:none;}
.card-header{border-bottom:1px solid var(--ct-border-color);}
.card-footer{border-top:1px solid var(--ct-border-color);background:var(--ui-surface-2);}
.card .header-title,.header-title{font-size:.95rem;font-weight:600;letter-spacing:-.005em;text-transform:none;color:var(--ct-heading-color);}
.card-title{color:var(--ct-heading-color);}

/* ---------- 6. Buttons ---------- */
.btn{
	--ct-btn-border-radius:.5rem;
	--ct-btn-font-weight:500;
	--ct-btn-font-size:.875rem;
	--ct-btn-box-shadow:0 0 0;
	--ct-btn-focus-box-shadow:var(--ui-ring);
	letter-spacing:-.003em;
}
.btn-sm,.btn-group-sm > .btn{--ct-btn-border-radius:.4rem;--ct-btn-font-size:.8125rem;}
.btn-lg,.btn-group-lg > .btn{--ct-btn-border-radius:.625rem;}
.btn:focus-visible{box-shadow:var(--ui-ring) !important;}

/* affirmative actions: one accent (primary and success alike) */
.btn-primary,.btn-success{
	--ct-btn-color:#fff;
	--ct-btn-bg:var(--ui-accent);
	--ct-btn-border-color:var(--ui-accent);
	--ct-btn-hover-color:#fff;
	--ct-btn-hover-bg:var(--ui-accent-hover);
	--ct-btn-hover-border-color:var(--ui-accent-hover);
	--ct-btn-active-color:#fff;
	--ct-btn-active-bg:var(--ui-accent-active);
	--ct-btn-active-border-color:var(--ui-accent-active);
	--ct-btn-disabled-color:#fff;
	--ct-btn-disabled-bg:var(--ui-accent);
	--ct-btn-disabled-border-color:var(--ui-accent);
	box-shadow:0 1px 2px rgba(16,24,40,.08),inset 0 1px 0 rgba(255,255,255,.12);
}
.btn-danger{
	--ct-btn-color:#fff;
	--ct-btn-bg:var(--ct-danger);
	--ct-btn-border-color:var(--ct-danger);
	--ct-btn-hover-color:#fff;
	--ct-btn-hover-bg:#b91c1c;
	--ct-btn-hover-border-color:#b91c1c;
	--ct-btn-active-color:#fff;
	--ct-btn-active-bg:#991b1b;
	--ct-btn-active-border-color:#991b1b;
	--ct-btn-disabled-bg:var(--ct-danger);
	--ct-btn-disabled-border-color:var(--ct-danger);
	box-shadow:0 1px 2px rgba(16,24,40,.08);
}
/* secondary actions: neutral, bordered */
.btn-light,.btn-secondary{
	--ct-btn-color:var(--ct-tertiary-color);
	--ct-btn-bg:var(--ui-surface);
	--ct-btn-border-color:var(--ui-input-border);
	--ct-btn-hover-color:var(--ct-heading-color);
	--ct-btn-hover-bg:var(--ct-tertiary-bg);
	--ct-btn-hover-border-color:var(--ui-input-border);
	--ct-btn-active-color:var(--ct-heading-color);
	--ct-btn-active-bg:var(--ct-tertiary-bg);
	--ct-btn-active-border-color:var(--ui-input-border);
	--ct-btn-disabled-color:var(--ct-secondary-color);
	--ct-btn-disabled-bg:var(--ui-surface);
	--ct-btn-disabled-border-color:var(--ct-border-color);
	box-shadow:0 1px 2px rgba(16,24,40,.05);
}
/* informational and warning actions: soft, tinted */
.btn-info,.btn-warning{
	--ct-btn-color:var(--ui-soft-text);
	--ct-btn-bg:var(--ui-soft-bg);
	--ct-btn-border-color:var(--ui-soft-border);
	--ct-btn-hover-color:var(--ui-soft-text);
	--ct-btn-hover-bg:var(--ui-soft-hover);
	--ct-btn-hover-border-color:var(--ui-soft-border);
	--ct-btn-active-color:var(--ui-soft-text);
	--ct-btn-active-bg:var(--ui-soft-hover);
	--ct-btn-active-border-color:var(--ui-soft-border);
	--ct-btn-disabled-color:var(--ui-soft-text);
	--ct-btn-disabled-bg:var(--ui-soft-bg);
	--ct-btn-disabled-border-color:var(--ui-soft-border);
	box-shadow:none;
}
.btn-info{--ui-soft-text:var(--ct-info-text-emphasis);--ui-soft-bg:var(--ct-info-bg-subtle);--ui-soft-border:var(--ct-info-border-subtle);--ui-soft-hover:rgba(var(--ct-info-rgb),.16);}
.btn-warning{--ui-soft-text:var(--ct-warning-text-emphasis);--ui-soft-bg:var(--ct-warning-bg-subtle);--ui-soft-border:var(--ct-warning-border-subtle);--ui-soft-hover:rgba(var(--ct-warning-rgb),.18);}
.btn-info.text-white,.btn-warning.text-white{color:var(--ui-soft-text) !important;}
.btn-dark{
	--ct-btn-color:#fff;
	--ct-btn-bg:#111827;
	--ct-btn-border-color:#111827;
	--ct-btn-hover-color:#fff;
	--ct-btn-hover-bg:#1f2937;
	--ct-btn-hover-border-color:#1f2937;
	--ct-btn-active-bg:#374151;
	--ct-btn-active-border-color:#374151;
}
[data-bs-theme=dark] .btn-dark{--ct-btn-color:#111827;--ct-btn-bg:#eef1f5;--ct-btn-border-color:#eef1f5;--ct-btn-hover-color:#111827;--ct-btn-hover-bg:#fff;--ct-btn-hover-border-color:#fff;}
/* outline: a quiet border, filled on hover */
.btn-outline-primary,.btn-outline-success{
	--ct-btn-color:var(--ui-accent-text);
	--ct-btn-border-color:rgba(var(--ct-primary-rgb),.45);
	--ct-btn-hover-color:var(--ui-accent-text);
	--ct-btn-hover-bg:rgba(var(--ct-primary-rgb),.08);
	--ct-btn-hover-border-color:rgba(var(--ct-primary-rgb),.6);
	--ct-btn-active-color:#fff;
	--ct-btn-active-bg:var(--ui-accent);
	--ct-btn-active-border-color:var(--ui-accent);
	--ct-btn-disabled-color:var(--ui-accent-text);
	--ct-btn-disabled-border-color:rgba(var(--ct-primary-rgb),.35);
	box-shadow:none;
}
.btn-outline-secondary,.btn-outline-dark,.btn-outline-light{
	--ct-btn-color:var(--ct-tertiary-color);
	--ct-btn-border-color:var(--ui-input-border);
	--ct-btn-hover-color:var(--ct-heading-color);
	--ct-btn-hover-bg:var(--ct-tertiary-bg);
	--ct-btn-hover-border-color:var(--ui-input-border);
	--ct-btn-active-color:var(--ct-heading-color);
	--ct-btn-active-bg:var(--ct-tertiary-bg);
	--ct-btn-active-border-color:var(--ui-input-border);
	box-shadow:none;
}
.btn-outline-danger{--ct-btn-color:var(--ct-danger);--ct-btn-border-color:rgba(var(--ct-danger-rgb),.45);--ct-btn-hover-color:#fff;--ct-btn-hover-bg:var(--ct-danger);--ct-btn-hover-border-color:var(--ct-danger);box-shadow:none;}
.btn-outline-info{--ct-btn-color:var(--ct-info);--ct-btn-border-color:rgba(var(--ct-info-rgb),.45);--ct-btn-hover-color:var(--ct-info-text-emphasis);--ct-btn-hover-bg:var(--ct-info-bg-subtle);--ct-btn-hover-border-color:rgba(var(--ct-info-rgb),.6);box-shadow:none;}
.btn-outline-warning{--ct-btn-color:var(--ct-warning);--ct-btn-border-color:rgba(var(--ct-warning-rgb),.5);--ct-btn-hover-color:var(--ct-warning-text-emphasis);--ct-btn-hover-bg:var(--ct-warning-bg-subtle);--ct-btn-hover-border-color:rgba(var(--ct-warning-rgb),.65);box-shadow:none;}
[class*="btn-soft-"]{box-shadow:none !important;}
.btn-link{--ct-btn-color:var(--ct-link-color);--ct-btn-hover-color:var(--ct-link-hover-color);box-shadow:none;}
.btn-check:checked + .btn-outline-primary,.btn-check:checked + .btn-outline-success{color:#fff;}

/* ---------- 7. Forms ---------- */
.form-control,.form-select{
	border-color:var(--ui-input-border);
	border-radius:var(--ct-border-radius);
	font-size:.875rem;
	box-shadow:0 1px 2px rgba(16,24,40,.04);
	transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.form-control{padding:.45rem .75rem;}
.form-select{padding:.45rem 2.25rem .45rem .75rem;background-position:right .75rem center;}
.form-control-sm,.form-select-sm{border-radius:var(--ct-border-radius-sm);font-size:.8125rem;}
.form-control-lg,.form-select-lg{border-radius:.625rem;}
.form-control::placeholder{color:var(--ct-secondary-color);opacity:.7;}
.form-control:hover:not(:focus):not(:disabled),.form-select:hover:not(:focus):not(:disabled){border-color:rgba(var(--ui-ink-rgb),.22);}
.form-control:focus,.form-select:focus{border-color:rgba(var(--ui-brand-rgb),.75);box-shadow:var(--ui-ring);background-color:var(--ct-input-bg);}
.form-control:disabled,.form-select:disabled{background-color:var(--ct-tertiary-bg);color:var(--ct-secondary-color);}
.form-control[readonly]:not(.datepicker):not([data-provide]){background-color:var(--ui-surface-2);}
.form-label,.col-form-label{font-weight:500;color:var(--ct-tertiary-color);font-size:.8125rem;margin-bottom:.35rem;}
.form-text{color:var(--ct-secondary-color);font-size:.78rem;}
.input-group-text{background:var(--ui-surface-2);border-color:var(--ui-input-border);color:var(--ct-secondary-color);}
.input-group-text.bg-white{background-color:var(--ct-input-bg) !important;}
/* white panels in views (card headers, small tables): the surface colour in dark mode */
[data-bs-theme=dark] :is(.card-header,.card-footer,.card-body,.table,.p-3).bg-white{background-color:var(--ui-surface) !important;}
.input-group > .form-control,.input-group > .form-select{box-shadow:none;}
.form-check-input{border-color:var(--ui-input-border);}
.form-check-input:checked,.form-check-input[type=checkbox]:indeterminate{background-color:var(--ui-accent);border-color:var(--ui-accent);}
.form-check-input:focus{border-color:rgba(var(--ui-brand-rgb),.75);box-shadow:var(--ui-ring);}
.form-range::-webkit-slider-thumb{background-color:var(--ui-accent);}
.form-range::-moz-range-thumb{background-color:var(--ui-accent);}

/* tags input (collaborators…): hard-coded colours in bootstrap-tagsinput.min.css */
:root .bootstrap-tagsinput{background-color:var(--ct-input-bg);border:1px solid var(--ui-input-border);color:var(--ct-body-color);border-radius:var(--ct-border-radius);box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s ease,box-shadow .15s ease;}
:root .bootstrap-tagsinput input{color:var(--ct-body-color);}
:root .bootstrap-tagsinput:focus-within{border-color:rgba(var(--ui-brand-rgb),.75);box-shadow:var(--ui-ring);}

/* select2 (the "bootstrap-5" theme, hard-coded colours in select2.min.css), matched to the inputs.
   ":root" lifts each rule to the specificity of select2's own [data-bs-theme=dark] rules. */
:root .select2-container--bootstrap-5 .select2-selection{
	min-height:calc(1.5em + .9rem + 2px);
	padding:.45rem .75rem;
	font-size:.875rem;
	color:var(--ct-body-color);
	background-color:var(--ct-input-bg);
	border-color:var(--ui-input-border);
	border-radius:var(--ct-border-radius);
	box-shadow:0 1px 2px rgba(16,24,40,.04);
	transition:border-color .15s ease,box-shadow .15s ease;
}
:root .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered{color:var(--ct-body-color);}
:root .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered .select2-selection__placeholder{color:var(--ct-secondary-color);}
:root .select2-container--bootstrap-5.select2-container--focus .select2-selection,
:root .select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:rgba(var(--ui-brand-rgb),.75);box-shadow:var(--ui-ring);}
:root .select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection{border-bottom-left-radius:var(--ct-border-radius);border-bottom-right-radius:var(--ct-border-radius);}
:root .select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection{border-top-left-radius:var(--ct-border-radius);border-top-right-radius:var(--ct-border-radius);}
:root .select2-container--bootstrap-5.select2-container--disabled .select2-selection{background-color:var(--ct-tertiary-bg);border-color:var(--ui-input-border);color:var(--ct-secondary-color);}
:root .select2-container--bootstrap-5 .select2-dropdown{
	color:var(--ct-body-color);
	background-color:var(--ui-surface);
	border:1px solid var(--ct-border-color);
	border-radius:.625rem;
	box-shadow:var(--ui-shadow-pop);
	font-size:.875rem;
}
:root .select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--below{margin-top:4px;border-top:1px solid var(--ct-border-color);border-radius:.625rem;}
:root .select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--above{margin-top:-4px;border-bottom:1px solid var(--ct-border-color);border-radius:.625rem;}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options{padding:4px;}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option{color:var(--ct-body-color);border-radius:.375rem;padding:.4rem .6rem;font-size:.875rem;}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted{color:var(--ct-heading-color);background-color:rgba(var(--ct-primary-rgb),.1);}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted){color:var(--ui-accent-text);background-color:transparent;font-weight:600;}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__message,
:root .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled{color:var(--ct-secondary-color);}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{background-color:var(--ct-input-bg);border-color:var(--ui-input-border);color:var(--ct-body-color);border-radius:.4rem;font-size:.875rem;}
:root .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field:focus{border-color:rgba(var(--ui-brand-rgb),.75);box-shadow:var(--ui-ring);}
:root .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{color:var(--ct-tertiary-color);background:var(--ct-tertiary-bg);border:1px solid var(--ct-border-color);border-radius:.375rem;font-size:.8125rem;}

/* ---------- 8. Tables ---------- */
.table{
	--ct-table-border-color:var(--ui-border-soft);
	--ct-table-striped-bg:rgba(var(--ui-ink-rgb),.018);
	--ct-table-hover-bg:rgba(var(--ct-primary-rgb),.045);
	--ct-table-active-bg:rgba(var(--ct-primary-rgb),.07);
	font-variant-numeric:tabular-nums;
}
.table > :not(caption) > * > *{padding:.7rem .8rem;}
.table-sm > :not(caption) > * > *{padding:.4rem .5rem;}
.table > thead > tr > th,.table > thead > tr > td,.table thead th{
	font-size:.75rem;
	font-weight:600;
	letter-spacing:.01em;
	color:var(--ct-secondary-color);
	border-bottom:1px solid var(--ct-border-color);
	white-space:nowrap;
}
.table > tbody > tr > *{transition:box-shadow .12s ease;}
.table > tbody > tr:hover > *{--ct-table-bg-state:var(--ct-table-hover-bg);}
.table > tbody > tr:last-child > *{border-bottom-color:transparent;}
.table.table-bordered > tbody > tr:last-child > *{border-bottom-color:var(--ct-table-border-color);}

/* ---------- 9. Navigation: tabs, pills, pagination ---------- */
/* tabs and pills: square active items (some tabs are also .btn, which would round them) */
.nav-tabs{--ct-nav-tabs-border-radius:0;}
.nav-tabs .nav-link,.nav-pills .nav-link{border-radius:0;}
.nav-tabs.nav-bordered{border-bottom:1px solid var(--ct-border-color);}
.nav-tabs.nav-bordered li a,.nav-tabs.nav-bordered .nav-link{color:var(--ct-secondary-color);font-weight:500;padding:.65rem 1rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease;}
.nav-tabs.nav-bordered li a:hover,.nav-tabs.nav-bordered .nav-link:hover{color:var(--ct-heading-color);}
.nav-tabs.nav-bordered li a.active,.nav-tabs.nav-bordered .nav-link.active{color:var(--ct-heading-color);background:transparent;border-bottom:2px solid var(--ui-brand);}
.nav-pills{--ct-nav-pills-border-radius:0;--ct-nav-pills-link-active-color:var(--ui-accent-text);--ct-nav-pills-link-active-bg:rgba(var(--ct-primary-rgb),.1);}
.nav-pills .nav-link{font-weight:500;transition:background-color .15s ease,color .15s ease;}
.nav-pills .nav-link.active{font-weight:600;}
.nav-pills .nav-link.active[class*="bg-"]{background-color:rgba(var(--ct-primary-rgb),.1) !important;color:var(--ui-accent-text) !important;}
.nav-pills .nav-link.active[class*="bg-"] i{--fa-primary-color:currentColor;--fa-secondary-color:currentColor;}

/* the trip menu (vertical pills on every trip page): a neutral list, each area keeps its colour as a small dot.
   The current page is .active on the trip page and a solid bg-* + text-white on the sub-pages; day links (with a <small> date) get no dot. */
.nav.flex-column.nav-pills .nav-link{
	background:transparent !important;
	color:var(--ct-body-color) !important;
	border-radius:0;
	padding:.45rem .7rem !important;
}
.nav.flex-column.nav-pills > .nav-link{position:relative;margin-bottom:2px !important;padding-left:1.65rem !important;}
.nav.flex-column.nav-pills .nav-link:hover{background:rgba(var(--ui-ink-rgb),.045) !important;color:var(--ct-heading-color) !important;}
.nav.flex-column.nav-pills .nav-link.active,
.nav.flex-column.nav-pills .nav-link.text-white{background:rgba(var(--ct-primary-rgb),.1) !important;color:var(--ui-accent-text) !important;font-weight:600;}
.nav.flex-column.nav-pills > .nav-link:not(:has(small))::before{content:"";position:absolute;left:.7rem;top:calc(.45rem + .75em - 3.5px);width:7px;height:7px;border-radius:50%;background:var(--ui-input-border);}
.nav.flex-column.nav-pills > .nav-link.active::before{background:var(--ui-brand);}
.nav.flex-column.nav-pills > .nav-link:is(.text-success,.bg-success)::before{background:var(--ct-success);}
.nav.flex-column.nav-pills > .nav-link:is(.text-info,.bg-info)::before{background:var(--ct-info);}
.nav.flex-column.nav-pills > .nav-link:is(.text-danger,.bg-danger)::before{background:var(--ct-danger);}
.nav.flex-column.nav-pills > .nav-link:is(.text-warning,.bg-warning)::before{background:var(--ct-warning);}
.nav.flex-column.nav-pills > .nav-link:is(.text-primary,.bg-primary)::before{background:var(--ui-brand);}
.nav.flex-column.nav-pills > .nav-link:is(.text-secondary,.bg-secondary)::before{background:var(--ct-secondary);}
.nav.flex-column.nav-pills > .nav-link:is(.text-dark,.bg-dark)::before{background:var(--ct-heading-color);}
.nav.flex-column.nav-pills small{color:var(--ct-secondary-color);}

.pagination{--ct-pagination-border-radius:.5rem;--ct-pagination-border-color:var(--ct-border-color);--ct-pagination-active-bg:var(--ui-accent);--ct-pagination-active-border-color:var(--ui-accent);--ct-pagination-hover-bg:var(--ct-tertiary-bg);--ct-pagination-hover-border-color:var(--ct-border-color);--ct-pagination-focus-box-shadow:var(--ui-ring);gap:.25rem;}
.pagination .page-link{border-radius:.5rem !important;min-width:2.15rem;text-align:center;}
.pagination .page-item:not(:first-child) .page-link{margin-left:0;}
.progress,.progress-stacked{--ct-progress-bg:var(--ct-tertiary-bg);--ct-progress-bar-bg:var(--ui-accent);--ct-progress-border-radius:99px;}
.list-group{--ct-list-group-border-color:var(--ct-border-color);--ct-list-group-active-bg:var(--ui-accent);--ct-list-group-active-border-color:var(--ui-accent);}

/* ---------- 10. Badges, alerts ---------- */
.badge{--ct-badge-font-weight:600;--ct-badge-border-radius:.375rem;--ct-badge-padding-x:.5em;--ct-badge-padding-y:.32em;letter-spacing:.01em;}
.badge.bg-warning{color:#fff;}
/* "purple" (LeadStatus::OfferSent) has no Bootstrap utilities; "light" chips need readable text */
.text-purple{color:#7c3aed !important;}
.bg-purple{background-color:#7c3aed !important;color:#fff;}
.bg-purple-subtle{background-color:#f5f3ff !important;}
[data-bs-theme=dark] .text-purple{color:#c4b5fd !important;}
[data-bs-theme=dark] .bg-purple-subtle{background-color:rgba(167,139,250,.14) !important;}
.bg-light-subtle.text-light,.badge.bg-light{color:var(--ct-secondary-color) !important;}

/* section headings inside pages: ink, not teal */
.content-page :is(h4,h5).text-primary{color:var(--ct-heading-color) !important;font-weight:600;}
.content-page h3.text-primary.fw-light{color:var(--ct-heading-color) !important;font-weight:600 !important;font-size:1.125rem;}
.alert{--ct-alert-border-radius:.625rem;--ct-alert-padding-x:1rem;--ct-alert-padding-y:.75rem;}

/* ---------- 11. Floating layers: menus, modals, tooltips (the glass) ---------- */
.dropdown-menu{
	--ct-dropdown-bg:var(--ui-glass-strong);
	--ct-dropdown-border-color:var(--ui-glass-border);
	--ct-dropdown-border-radius:.75rem;
	--ct-dropdown-inner-border-radius:calc(.75rem - 1px);
	--ct-dropdown-box-shadow:var(--ui-shadow-pop);
	--ct-dropdown-padding-x:.3rem;
	--ct-dropdown-padding-y:.3rem;
	--ct-dropdown-item-padding-x:.7rem;
	--ct-dropdown-item-padding-y:.42rem;
	--ct-dropdown-link-color:var(--ct-body-color);
	--ct-dropdown-link-hover-color:var(--ct-heading-color);
	--ct-dropdown-link-hover-bg:rgba(var(--ui-ink-rgb),.055);
	--ct-dropdown-link-active-color:var(--ct-heading-color);
	--ct-dropdown-link-active-bg:rgba(var(--ct-primary-rgb),.1);
	--ct-dropdown-divider-margin-y:.3rem;
	-webkit-backdrop-filter:saturate(180%) blur(20px);
	backdrop-filter:saturate(180%) blur(20px);
	box-shadow:var(--ct-dropdown-box-shadow);
}
.dropdown-item{border-radius:.45rem;}
.dropdown-header{font-size:.6875rem;font-weight:600;letter-spacing:.06em;color:var(--ct-secondary-color);}
.dropdown-lg{--ct-dropdown-padding-x:0;}
.quick-search-menu{--ct-dropdown-padding-x:.3rem;}
.quick-search-menu .quick-search-item{border-radius:.45rem;}

.modal{
	--ct-modal-border-radius:.875rem;
	--ct-modal-inner-border-radius:calc(.875rem - 1px);
	--ct-modal-border-color:var(--ui-glass-border);
	--ct-modal-box-shadow:var(--ui-shadow-xl);
	--ct-modal-header-border-color:var(--ct-border-color);
	--ct-modal-footer-border-color:var(--ct-border-color);
	--ct-modal-header-padding:1rem 1.25rem;
	--ct-modal-padding:1.25rem;
}
.modal-content{box-shadow:var(--ui-shadow-xl);}
.modal-header .modal-title{font-weight:600;color:var(--ct-heading-color);}
.modal-footer{background:var(--ui-surface-2);border-bottom-left-radius:var(--ct-modal-inner-border-radius);border-bottom-right-radius:var(--ct-modal-inner-border-radius);}
.modal-backdrop{--ct-backdrop-bg:rgba(10,16,28,.38);--ct-backdrop-opacity:1;}
.modal-backdrop.show{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
[data-bs-theme=dark] .modal-backdrop{--ct-backdrop-bg:rgba(0,0,0,.55);}
.tooltip{--ct-tooltip-bg:#111827;--ct-tooltip-color:#fff;--ct-tooltip-border-radius:.4rem;--ct-tooltip-font-size:.75rem;--ct-tooltip-padding-x:.55rem;--ct-tooltip-padding-y:.3rem;}
.popover{--ct-popover-border-color:var(--ui-glass-border);--ct-popover-border-radius:.75rem;--ct-popover-box-shadow:var(--ui-shadow-pop);box-shadow:var(--ui-shadow-pop);}

/* the Ctrl+K palette: frosted glass */
#command-palette .modal-content{
	background:var(--ui-glass-strong);
	-webkit-backdrop-filter:saturate(180%) blur(24px);
	backdrop-filter:saturate(180%) blur(24px);
	border:1px solid var(--ui-glass-border);
	box-shadow:var(--ui-shadow-xl);
}
.command-palette-head{padding:.95rem 1.1rem;}
.command-palette-head > i{color:var(--ct-secondary-color);}
.command-palette-head .form-control,.command-palette-head .form-control:focus{background:transparent;border:0;box-shadow:none;}
.command-palette-foot{background:transparent;}
#command-palette .quick-search-item{margin:0 .35rem;border-radius:.5rem;}

/* bulk bar: floats over the list, above the collapsed copilot, while rows are ticked (its form sits after the table, so "sticky" never held it in view) */
.bulk-bar{
	background:var(--ui-glass-strong);
	-webkit-backdrop-filter:saturate(180%) blur(18px);
	backdrop-filter:saturate(180%) blur(18px);
	border:1px solid var(--ui-glass-border);
	border-radius:.875rem;
	box-shadow:var(--ui-shadow-xl);
}
.bulk-bar.show{
	position:fixed;
	left:50%;
	bottom:5.25rem;
	z-index:1035;
	width:max-content;
	max-width:calc(100vw - 2rem);
	margin:0;
	padding:.55rem .7rem .55rem 1rem;
	transform:translateX(-50%);
	animation:ui-rise .18s ease-out;
}
html[data-sidenav-size=default] .bulk-bar.show{left:calc(50% + var(--ct-leftbar-width) / 2);max-width:calc(100vw - var(--ct-leftbar-width) - 2rem);}
@keyframes ui-rise{from{opacity:0;transform:translate(-50%,8px);}to{opacity:1;transform:translate(-50%,0);}}
.live-progress{background:var(--ui-brand);}

/* ---------- 12. Copilot chat: the primary-colour header, a frosted panel below ---------- */
#aichat.aichat,.aichat{
	background:var(--ui-glass-strong);
	-webkit-backdrop-filter:saturate(180%) blur(22px);
	backdrop-filter:saturate(180%) blur(22px);
	border:1px solid var(--ui-glass-border);
	border-radius:.875rem;
	box-shadow:var(--ui-shadow-xl);
}
.aichat-header{background:var(--ct-primary);color:#fff;padding:.6rem .75rem .6rem 1rem;}
.aichat-header .fa-robot{color:#fff;--fa-primary-color:#fff;--fa-secondary-color:#fff;}
.aichat-header-actions .btn{color:#fff !important;}
.aichat-header-actions .btn:hover{color:rgba(255,255,255,.8) !important;}
.aichat-agent-select{border-radius:.4rem;}
.aichat-status{background:rgba(255,255,255,.2) !important;color:#fff !important;font-weight:500;}
.aichat-body{background:rgba(var(--ui-ink-rgb),.025);border-top:1px solid var(--ui-hairline);}
.aichat-input{background:transparent;border-top:1px solid var(--ui-hairline) !important;}
.aichat-input .form-control,.aichat-input .btn-light{background:transparent;box-shadow:none;}
.aichat-input .btn-primary{border-radius:0 0 .875rem 0 !important;}
.aichat-message-user .aichat-message-body{background:var(--ui-accent);}
.aichat-message-ai .aichat-message-body{background:var(--ui-surface);border-color:var(--ct-border-color);color:var(--ct-body-color);}
.aichat-message-system .aichat-message-body{background:rgba(var(--ui-ink-rgb),.05);color:var(--ct-secondary-color);}
.aichat-preset-btn{background:var(--ui-surface);border:1px solid var(--ct-border-color);color:var(--ct-body-color);}
.aichat-preset-btn:hover{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff;box-shadow:none;}
[data-bs-theme=dark] .aichat-action .aichat-message-body{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.35);color:var(--ct-body-color);}
[data-bs-theme=dark] .aichat-action .aichat-action-desc{color:var(--ct-secondary-color);}

/* ---------- 13. Home dashboard ---------- */
.home-tile:hover{transform:none;box-shadow:var(--ui-shadow-card);border-color:rgba(var(--ct-primary-rgb),.35);}
.home-tile-bar{display:none;}
.home-tile-label{font-size:.75rem;letter-spacing:0;text-transform:none !important;font-weight:500 !important;}
.home-tile-value{font-weight:650;letter-spacing:-.02em;color:var(--ct-heading-color);}
.home-hero{background:linear-gradient(115deg,rgba(var(--ui-brand-rgb),.13) 0%,rgba(var(--ui-brand-rgb),.04) 45%,var(--ui-surface) 100%);}
.home-hero-date{letter-spacing:.04em;font-weight:600;color:var(--ui-accent-text);}
.home-recent:hover{border-color:rgba(var(--ct-primary-rgb),.35);background:rgba(var(--ct-primary-rgb),.035);}
.home-section-label{letter-spacing:.05em;}

/* ---------- 13b. List pages: one header row, one filter bar joined to the table ----------
   Markup: .list-head = {&Navigator} + .list-actions; form.list-bar = .list-filters (.list-field…, {&ListBarEndPartial})
   + optional .list-more (secondary fields, behind "More filters") + optional .list-tabs / .list-chips.
   script.js ("list pages") keeps the toggle, its count and Clear in sync, and sorts by th[data-sort]. */
.list-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;padding:1.25rem 0 1rem;}
.list-head > .page-title-box{padding:0;min-width:0;}
.list-head > .page-title-box > .breadcrumb{display:none !important;}
.list-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;margin-left:auto;}
.list-actions > *,.list-actions > * > .btn,.list-actions > .btn-group > .btn{margin:0 !important;}
.list-actions > form{display:inline-flex;}
.list-note{margin:-.4rem 0 1rem;font-size:.8125rem;color:var(--ct-secondary-color);}

.list-bar{display:flex;flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:.65rem .75rem;background:var(--ui-surface);border:1px solid var(--ct-border-color);border-radius:var(--ct-border-radius-lg);box-shadow:var(--ui-shadow-card);}
.list-filters,.list-more{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;}
.list-more{display:none;padding-top:.5rem;border-top:1px dashed var(--ct-border-color);}
.list-open .list-more{display:flex;}
.list-field{flex:0 1 200px;min-width:0;}
.list-field-wide{flex:1 1 240px;max-width:340px;}
.list-field-date{flex:0 1 150px;}
.list-field-auto{flex:0 0 auto;}
.list-field .select2-container{width:100% !important;}
.list-bar .form-switch{margin:0;padding-top:.1rem;white-space:nowrap;}
.list-toggle{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;}
.list-toggle-count{min-width:1.35rem;padding:0 .4rem;border-radius:99px;background:rgba(var(--ct-primary-rgb),.12);color:var(--ui-accent-text);font-size:.72rem;font-weight:600;line-height:1.35rem;text-align:center;}
.list-clear{padding-left:.35rem;padding-right:.35rem;}
/* tabs / chips at the bottom of the bar, flush with its edges */
.list-bar > .list-tabs{margin:.1rem -.75rem -.65rem;padding:0 .75rem;border-top:1px solid var(--ct-border-color);border-bottom:0 !important;}
.list-bar > .list-tabs .nav-link{padding-top:.6rem;padding-bottom:.6rem;}
.list-chips{display:flex;flex-wrap:wrap;gap:.35rem;}
.list-chips .badge{font-size:.78rem !important;font-weight:500;padding:.4em .65em;}
/* joined to the table card right below it (when the results start with a card) */
[data-live-region="filters"]:has(+ [data-live-region="results"] > .card:first-child) > .list-bar{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;box-shadow:none;}
[data-live-region="filters"]:has(> .list-bar) + [data-live-region="results"] > .card:first-child{border-top:0;border-top-left-radius:0;border-top-right-radius:0;}

/* sticky table header: only when the table fits its card (script.js adds .list-card-fits; a scrolling card keeps its own scroll) */
.list-card-fits{overflow:visible !important;}
.list-card-fits table > thead > tr > th{position:sticky;top:var(--ct-topbar-height);z-index:3;background:var(--ui-surface);box-shadow:inset 0 -1px 0 var(--ct-border-color);}

/* sortable column headers */
th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap;}
th[data-sort]:hover,th[data-sort]:focus-visible{color:var(--ct-heading-color);outline:0;}
th[data-sort]::after{content:"";display:inline-block;width:.45rem;height:.45rem;margin-left:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:0;transition:opacity .15s ease,transform .15s ease;}
th[data-sort]:hover::after,th[data-sort]:focus-visible::after{opacity:.4;}
th[data-sort].is-sorted{color:var(--ct-heading-color);}
th[data-sort].is-sorted::after{opacity:.9;}
th[data-sort].is-sorted.is-asc::after{transform:translateY(1px) rotate(-135deg);}

@media (max-width:767.98px){
	.list-head{padding:.9rem 0 .75rem;gap:.6rem;}
	.list-actions{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;}
	.list-actions::-webkit-scrollbar{display:none;}
	.list-actions > *{flex:0 0 auto;}
	.list-field,.list-field-wide,.list-field-date{flex:1 1 calc(50% - .25rem);max-width:none;}
	.list-bar > .list-tabs,.list-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
	.list-bar > .list-tabs::-webkit-scrollbar,.list-chips::-webkit-scrollbar{display:none;}
	.list-chips > *{flex:0 0 auto;}
	/* section tabs (finance…) scroll sideways instead of wrapping */
	.nav-tabs.nav-bordered{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
	.nav-tabs.nav-bordered::-webkit-scrollbar{display:none;}
	.nav-tabs.nav-bordered .nav-item{flex:0 0 auto;margin-bottom:0;}
	.nav-tabs.nav-bordered .nav-link{white-space:nowrap;}
}
@media (max-width:575.98px){
	/* phones: one field (.list-field-keep, else the first) and "Filters"; the rest opens with it */
	.list-bar:not(.list-open) .list-filters:not(:has(> .list-field-keep)) > .list-field:not(:first-child),
	.list-bar:not(.list-open) .list-filters:has(> .list-field-keep) > .list-field:not(.list-field-keep){display:none;}
	.list-filters:not(:has(> .list-field-keep)) > .list-field:first-child,.list-filters > .list-field-keep{flex:1 1 0;}
	.list-open .list-filters > .list-field,.list-more .list-field{flex:1 1 calc(50% - .25rem);}
}

/* ---------- 14. Small screens ---------- */
@media (max-width:767.98px){
	.content-page{padding:0 .5rem var(--ct-footer-height);}
	.page-title-box{padding:1rem 0 .9rem;}
	.page-title-box > h3{font-size:1.3rem;}
	.app-search .form-control{min-width:0;}
}
@media (prefers-reduced-motion:reduce){
	.btn,.form-control,.form-select,.side-nav-link,.nav-link{transition:none !important;}
}
@media print{
	.navbar-custom::before{display:none;}
	.content-page > .content > .container-fluid{animation:none;}
}
