/* =========================================================
   UB Minimal skin — style.css
   Themes: cool (default) · warm · dark · teal · indigo · finance
   ========================================================= */

/* ----- Theme: Cool (default) ----------------------------- */
:root,
[data-theme="cool"] {
    --accent:           #3b82f6;
    --accent-h:         #2563eb;
    --accent-light:     #eff6ff;
    --bg:               #f3f4f6;
    --card:             #ffffff;
    --sidebar-bg:       #f9fafb;
    --topbar-bg:        #ffffff;
    --text:             #111827;
    --text-m:           #6b7280;
    --text-s:           #9ca3af;
    --border:           #e5e7eb;
    --row-alt1:         #f3f4f6;
    --row-label:        #e9eaed;
    --row-hover:        #eef2ff;
    --th-bg:            #e9eaed;
    --btn-bg:           #e5e7eb;
    --btn-border:       #d1d5db;
    --btn-hover-bg:     #d1d5db;
    --btn-hover-border: #9ca3af;
    --btn-active-bg:    #9ca3af;
    --row-red:          #fee2e2;
    --row-yellow:       #fef9c3;
    --sort-col:         #e4e6ea;
    --header-bg:        #e9eaed;
    --dialog-pane:      #f3f4f6;
    --fc-today:         #dbeafe;
    --logout-hover-bg:  #fef2f2;
    --logout-hover-text:#dc2626;
    --logout-hover-bdr: #fca5a5;
    --sidebar-w:        240px;
    --topbar-h:         52px;
    --font:             -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                        "Helvetica Neue", Arial, sans-serif;
    --radius:           8px;
    --shadow:           0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
    --shadow-md:        0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
}

/* ----- Theme: Warm --------------------------------------- */
[data-theme="warm"] {
    --bg:               #ddd9d3;
    --card:             #edeae5;
    --sidebar-bg:       #e4e1db;
    --topbar-bg:        #edeae5;
    --text:             #1c1917;
    --text-m:           #6b7280;
    --text-s:           #9ca3af;
    --border:           #d4d0c9;
    --row-alt1:         #e8e5df;
    --row-label:        #e2dfd9;
    --row-hover:        #d8e4f4;
    --th-bg:            #dedad3;
    --btn-bg:           #c8c4bc;
    --btn-border:       #b0aca4;
    --btn-hover-bg:     #b8b4ac;
    --btn-hover-border: #9c9890;
    --btn-active-bg:    #a8a49c;
    --row-red:          #f5dede;
    --row-yellow:       #f5f0d8;
    --sort-col:         #dbd7d0;
    --header-bg:        #dedad3;
    --dialog-pane:      #e4e1db;
    --fc-today:         #e2ddd4;
    --logout-hover-bg:  #fef2f2;
    --logout-hover-text:#dc2626;
    --logout-hover-bdr: #fca5a5;
}

/* ----- Theme: Dark --------------------------------------- */
/* Palette: #111827 #374151 #6B7280 #D1D5DB #F9FAFB          */
[data-theme="dark"] {
    --accent:           #3b82f6;
    --accent-h:         #60a5fa;
    --accent-light:     #1e3050;
    --bg:               #111827;
    --card:             #1f2937;
    --sidebar-bg:       #111827;
    --topbar-bg:        #1f2937;
    --text:             #F9FAFB;
    --text-m:           #D1D5DB;
    --text-s:           #6B7280;
    --border:           #374151;
    --row-alt1:         #1f2937;
    --row-label:        #374151;
    --row-hover:        #1e3050;
    --th-bg:            #374151;
    --btn-bg:           #374151;
    --btn-border:       #4b5563;
    --btn-hover-bg:     #4b5563;
    --btn-hover-border: #6B7280;
    --btn-active-bg:    #6B7280;
    --row-red:          #3b1f1f;
    --row-yellow:       #3b3010;
    --sort-col:         #374151;
    --header-bg:        #374151;
    --dialog-pane:      #111827;
    --fc-today:         #1e3050;
    --logout-hover-bg:  #3b1f1f;
    --logout-hover-text:#f87171;
    --logout-hover-bdr: #7f1d1d;
    --shadow:           0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);
    --shadow-md:        0 4px 12px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.4);
}

/* ----- Theme: Teal --------------------------------------- */
[data-theme="teal"] {
    --accent:           #0d9488;
    --accent-h:         #0f766e;
    --accent-light:     #f0fdfa;
    --row-hover:        #ccfbf1;
    --fc-today:         #ccfbf1;
}

/* ----- Theme: Indigo ------------------------------------- */
[data-theme="indigo"] {
    --accent:           #4f4aa8;
    --accent-h:         #2a2673;
    --accent-light:     #eeedf8;
    --bg:               #f7f8fc;
    --card:             #ffffff;
    --sidebar-bg:       #f0f1f8;
    --topbar-bg:        #ffffff;
    --text:             #14123d;
    --text-m:           #2a2673;
    --text-s:           #4f4aa8;
    --border:           #cfd2e6;
    --row-alt1:         #eef0f8;
    --row-label:        #e5e7f4;
    --row-hover:        #dddcf0;
    --th-bg:            #e5e7f4;
    --btn-bg:           #e0e2f0;
    --btn-border:       #cfd2e6;
    --btn-hover-bg:     #cfd2e6;
    --btn-hover-border: #4f4aa8;
    --btn-active-bg:    #4f4aa8;
    --row-red:          #fce8e8;
    --row-yellow:       #fef9c3;
    --sort-col:         #dddcf0;
    --header-bg:        #e5e7f4;
    --dialog-pane:      #f0f1f8;
    --fc-today:         #e8e7f8;
    --logout-hover-bg:  #fef2f2;
    --logout-hover-text:#dc2626;
    --logout-hover-bdr: #fca5a5;
}

/* ----- Theme: Finance ------------------------------------ */
/* Palette: #0B1F3B #123A63 #2F5D8C #C9D6E5 #F2F5F8         */
[data-theme="finance"] {
    --accent:           #2F5D8C;
    --accent-h:         #123A63;
    --accent-light:     #e8eef5;
    --bg:               #F2F5F8;
    --card:             #ffffff;
    --sidebar-bg:       #edf1f6;
    --topbar-bg:        #ffffff;
    --text:             #0B1F3B;
    --text-m:           #123A63;
    --text-s:           #2F5D8C;
    --border:           #C9D6E5;
    --row-alt1:         #edf1f6;
    --row-label:        #dde6f0;
    --row-hover:        #d5e2ee;
    --th-bg:            #dde6f0;
    --btn-bg:           #dde6f0;
    --btn-border:       #C9D6E5;
    --btn-hover-bg:     #C9D6E5;
    --btn-hover-border: #2F5D8C;
    --btn-active-bg:    #2F5D8C;
    --row-red:          #fee2e2;
    --row-yellow:       #fef9c3;
    --sort-col:         #d5e2ee;
    --header-bg:        #dde6f0;
    --dialog-pane:      #F2F5F8;
    --fc-today:         #d5e2ee;
    --logout-hover-bg:  #fef2f2;
    --logout-hover-text:#dc2626;
    --logout-hover-bdr: #fca5a5;
}

/* ----- Reset / Base -------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    font-family: var(--font);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text);
    background: var(--bg);
}

a:link, a:visited    { color: var(--accent); text-decoration: none; }
a:hover              { color: var(--accent-h); text-decoration: underline; }

img               { max-width: 100%; vertical-align: middle; }
img:not([height]) { height: auto; }
img[height]       { max-width: none; }

input, select, textarea, button {
    font-family: var(--font);
    font-size: 13px;
}

/* ----- Layout -------------------------------------------- */
.ub-layout {
    display: grid;
    grid-template-columns: var(--sidebar-w) 1fr;
    min-height: 100vh;
}

/* ----- Sidebar ------------------------------------------- */
.ub-sidebar {
    width: var(--sidebar-w);
    background: var(--sidebar-bg);
    border-right: 1px solid var(--border);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    z-index: 150;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}
.ub-sidebar::-webkit-scrollbar { width: 4px; }
.ub-sidebar::-webkit-scrollbar-track { background: transparent; }
.ub-sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

.ub-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ub-logo {
    display: flex;
    align-items: center;
    gap: .4rem;
    text-decoration: none !important;
    color: var(--text) !important;
}
.ub-logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    border-radius: 6px;
    flex-shrink: 0;
}
.ub-logo-text { font-weight: 700; font-size: 15px; color: var(--text); }
.ub-logo-ver  { font-size: 9px; color: var(--text-s); font-weight: 400; }

.ub-close-btn {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    color: var(--text-m);
    padding: 2px 6px;
    border-radius: 4px;
    line-height: 1;
}
.ub-close-btn:hover { background: var(--bg); color: var(--text); }

/* Sidebar search */
.ub-sidebar-search {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.ub-search-form { margin: 0; }

/* web_UserSearchElement() grid items */
.ub-search-element {
    flex: 500px;
    min-width: 0;
    padding: 5px;
    margin: 5px;
    border: 1px solid var(--border);
    background-color: var(--card);
    border-radius: var(--radius);
    overflow-wrap: break-word;
    word-break: break-word;
}
.ub-search-element h3 {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
    margin: 0 0 4px 0;
}
.ub-search-element input[type="text"],
.ub-search-element input[type="search"],
.ub-search-element select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: .35rem !important;
}
.ub-search-element input[type="submit"] {
    margin-top: .35rem !important;
    margin-right: .25rem !important;
}
.ub-search-input,
.ub-search-form input[type="text"],
.ub-search-form input[type="search"] {
    width: 100%;
    padding: .35rem .6rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg);
    color: var(--text);
    font-size: 12px;
    outline: none;
    transition: border-color .15s;
}
.ub-search-input:focus,
.ub-search-form input[type="text"]:focus,
.ub-search-form input[type="search"]:focus {
    border-color: var(--accent);
    background: var(--card);
}

/* Sidebar nav (GlobalMenu) */
.ub-sidebar-nav {
    flex: 1;
    padding: .5rem 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}
.ub-sidebar-nav::-webkit-scrollbar { width: 3px; }
.ub-sidebar-nav::-webkit-scrollbar-thumb { background: var(--border); }

.ub-sidebar-nav ul, #glmenu, #glmenu ul { list-style: none; margin: 0; padding: 0; }
.ub-sidebar-nav li, #glmenu li { margin: 0; }
.ub-sidebar-nav a, #glmenu a {
    display: block;
    padding: .4rem 1rem;
    color: var(--text);
    font-size: 12px;
    text-decoration: none !important;
    transition: background .12s, color .12s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ub-sidebar-nav a:hover, #glmenu a:hover { background: var(--accent-light); color: var(--accent); }
.ub-sidebar-nav a.active, #glmenu a.active { background: var(--accent-light); color: var(--accent); font-weight: 600; }

.ub-sidebar-nav .glmenu-category, #glmenu .glmenu-category {
    padding: .6rem 1rem .2rem;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-s);
    cursor: default;
    pointer-events: none;
}
.ub-sidebar-nav ul ul, #glmenu ul ul { padding-left: .75rem; }

/* Sidebar footer */
.ub-sidebar-foot {
    padding: .5rem .75rem .75rem;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.ub-sidebar-foot form { margin: 0; }
.ub-sidebar-foot select {
    width: 100%;
    padding: .25rem .4rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: var(--bg);
    color: var(--text);
    font-size: 11px;
    cursor: pointer;
}
.ub-foot-link { font-size: 11px; color: var(--text-m) !important; }
.ub-foot-link:hover { color: var(--accent) !important; }

/* ----- Theme swatches ------------------------------------ */
.ub-theme-swatches {
    display: flex;
    gap: .35rem;
    align-items: center;
    padding-top: .1rem;
}
.ub-swatch {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0;
    transition: transform .12s, border-color .12s;
    flex-shrink: 0;
    outline: none;
    -webkit-font-smoothing: antialiased;
}
.ub-swatch:hover    { transform: scale(1.2); }
.ub-swatch.active   { border-color: var(--accent); transform: scale(1.15); }
.ub-swatch-label    { font-size: 10px; color: var(--text-s); }

/* ----- Main area ----------------------------------------- */
.ub-main { display: flex; flex-direction: column; min-width: 0; min-height: 100vh; }

/* ----- Top bar ------------------------------------------- */
.ub-topbar {
    min-height: var(--topbar-h);
    background: var(--topbar-bg);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .4rem 1rem;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 0 var(--border);
    flex-shrink: 0;
}

.ub-menu-btn {
    display: none;
    background: none;
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    font-size: 16px;
    color: var(--text-m);
    padding: .2rem .45rem;
    line-height: 1.2;
    flex-shrink: 0;
}
.ub-menu-btn:hover { background: var(--bg); color: var(--text); }

.ub-breadcrumbs {
    flex: 1;
    overflow: hidden;
    font-size: 12px;
    color: var(--text-m);
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
}
.ub-breadcrumbs a       { color: var(--text-m) !important; margin: 0 .15rem; }
.ub-breadcrumbs a:hover { color: var(--accent) !important; }

.ub-topbar-right { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.ub-notify       { display: flex; align-items: center; }
.ub-user-block   { display: flex; align-items: center; gap: .4rem; }
.ub-avatar       { border-radius: 50%; width: 30px; height: 30px; object-fit: cover; flex-shrink: 0; }
.ub-username     { font-size: 12px; font-weight: 600; color: var(--text); }

.ub-logout-btn {
    font-size: 11px;
    color: var(--text-m) !important;
    padding: .2rem .5rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    text-decoration: none !important;
    transition: background .12s, color .12s, border-color .12s;
}
.ub-logout-btn:hover {
    background: var(--logout-hover-bg) !important;
    color: var(--logout-hover-text) !important;
    border-color: var(--logout-hover-bdr) !important;
}

/* ----- Content area -------------------------------------- */
.ub-content { flex: 1; padding: 1.25rem; min-width: 0; }

/* ----- Cards (skin.window.php) --------------------------- */
.ub-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    margin-bottom: 1rem;
    overflow: hidden;
}
.ub-card-header {
    padding: .6rem 1rem;
    font-weight: 600;
    font-size: 13px;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    background: var(--card);
}
.ub-card-body { padding: .9rem 1rem; overflow-x: auto; }

/* ----- Footer -------------------------------------------- */
.ub-footer {
    padding: .4rem 1rem;
    font-size: 11px;
    color: var(--text-s);
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--topbar-bg);
    flex-shrink: 0;
}
.ub-footer-stats { font-family: monospace; }

/* ----- Mobile overlay ------------------------------------ */
.ub-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    z-index: 149;
    backdrop-filter: blur(2px);
}
.ub-overlay.show { display: block; }

/* ----- Login page ---------------------------------------- */
.ub-login-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: var(--bg);
    padding: 2rem 1rem;
    box-sizing: border-box;
}

/* override ubLoginContainer hardcoded absolute positioning */
.ubLoginContainer {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 420px !important;
    height: auto !important;
    margin: 0 !important;
}

/* override ubLoginForm hardcoded colors, font, background */
.ubLoginForm {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 1.5rem !important;
    font-size: 14px !important;
    background: var(--card) !important;
    background-image: none !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow-md) !important;
    color: var(--text) !important;
}

/* override hardcoded input width and font */
.ubLoginForm input[type="text"],
.ubLoginForm input[type="password"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: .3rem 0 .6rem 0 !important;
    padding: .45rem .6rem !important;
    font-size: 14px !important;
    background: var(--bg) !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
    border-radius: 5px !important;
    box-shadow: none !important;
}
.ubLoginForm input[type="text"]:focus,
.ubLoginForm input[type="password"]:focus {
    outline: none !important;
    border-color: var(--accent) !important;
    background: var(--card) !important;
}
.ubLoginForm input[type="submit"] {
    width: 100% !important;
    box-sizing: border-box !important;
    margin: .5rem 0 0 0 !important;
    padding: .5rem 1rem !important;
    font-size: 14px !important;
    background: var(--accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 5px !important;
    cursor: pointer !important;
    transition: background .15s !important;
}
.ubLoginForm input[type="submit"]:hover {
    background: var(--accent-h) !important;
}
.ubLoginForm label {
    font-size: 12px !important;
    color: var(--text-m) !important;
    display: block !important;
    margin-top: .5rem !important;
}

.ub-login-selectors { display: flex; gap: .75rem; margin-top: 1rem; flex-wrap: wrap; }
.ub-login-selectors form { margin: 0; }
.ub-login-selectors select {
    padding: .3rem .5rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: var(--card);
    color: var(--text);
    font-size: 12px;
}

/* ----- Ubilling table row overrides ---------------------- */
.row1  { background-color: var(--row-alt1); }
.row2  { background-color: var(--row-label); }
.row3  { background-color: var(--card); }
.row4    { background-color: var(--row-alt1); font-size: 12px; }
.row4 td { min-height: 25px; padding: .3rem .5rem; }
.row5  { background-color: var(--row-alt1); }
.row5:hover { background-color: var(--row-hover); }
.row6  { background-color: var(--row-label); color: var(--text-m); }
.row6:hover { background-color: var(--row-alt1); color: var(--accent); }

.row_red    { background-color: var(--row-red) !important; }
.row_yellow { background-color: var(--row-yellow) !important; }
.ChosenOne  { background-color: var(--row-hover); }

/* Tables */
table { border-collapse: collapse; }
th {
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    color: var(--text-m);
    padding: .4rem .6rem;
    border-bottom: 2px solid var(--border);
    background: var(--th-bg);
    white-space: nowrap;
}
td {
    padding: .35rem .6rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
tr:last-child td { border-bottom: none; }
tr:hover td { background-color: var(--row-hover); }

/* ----- Forms --------------------------------------------- */
input[type="text"],
input[type="password"],
input[type="number"],
input[type="email"],
input[type="date"],
input[type="time"],
textarea,
select {
    border: 1px solid var(--border);
    border-radius: 5px;
    padding: .3rem .55rem;
    background: var(--card);
    color: var(--text);
    transition: border-color .15s, box-shadow .15s;
    outline: none;
}
input[type="text"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
textarea:focus,
select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(59,130,246,.12);
}

input[type="submit"],
input[type="button"],
button:not(.ub-menu-btn):not(.ub-close-btn):not(.ub-swatch) {
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: .35rem .75rem;
    cursor: pointer;
    font-size: 12px;
    transition: background .15s;
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: .01em;
}
input[type="submit"]:hover,
input[type="button"]:hover,
button:not(.ub-menu-btn):not(.ub-close-btn):not(.ub-swatch):hover {
    background: var(--accent-h);
}

/* ----- Alert blocks -------------------------------------- */
.alert_info,
.alert_warning,
.alert_error {
    display: block !important;
    width: auto !important;
    box-sizing: border-box !important;
    margin: 1rem !important;
    padding: .7rem .9rem .7rem 46px !important;
    text-indent: 0 !important;
    text-align: justify !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    background-position: 12px 50% !important;
}

/* ----- ubButton / ubButtonInline override ---------------- */
.ubButton,
.ubButtonInline {
    background: var(--btn-bg) !important;
    background-image: none !important;
    filter: none !important;
    box-shadow: none !important;
    border: 1px solid var(--btn-border) !important;
    border-radius: 5px !important;
    color: var(--text) !important;
    text-shadow: none !important;
    font-family: var(--font) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    padding: .3rem .65rem !important;
    cursor: pointer !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: background .13s, border-color .13s !important;
    margin: .2rem .25rem .2rem 0 !important;
    vertical-align: middle !important;
}
.ubButton:hover, .ubButtonInline:hover {
    background: var(--btn-hover-bg) !important;
    background-image: none !important;
    border-color: var(--btn-hover-border) !important;
    color: var(--text) !important;
    text-decoration: none !important;
}
.ubButton:active, .ubButtonInline:active {
    box-shadow: inset 0 1px 3px rgba(0,0,0,.15) !important;
}
.ubButton:visited, .ubButton:link,
.ubButtonInline:visited, .ubButtonInline:link { color: var(--text) !important; }
.ubButton:disabled, .ubButtonInline:disabled  { opacity: .45 !important; cursor: not-allowed !important; }

/* ----- glamour forms override ---------------------------- */
.glamour {
    float: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background: var(--card) !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--text) !important;
}
.glamour label  { color: var(--text-m) !important; }
.glamour legend { color: var(--text) !important; border-color: var(--border) !important; }

/* jQuery UI combobox: stretch to fill the full cell width */
[class*="custom-combobox_"] {
    display: block !important;
    width: 100% !important;
}
[class*="custom-combobox-input_"] {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* form-grid-*cols: tighter row gap, h3 labels compact */
[class*="form-grid-"][class*="cols"] {
    row-gap: 4px !important;
    column-gap: 10px !important;
}
[class*="form-grid-"][class*="cols"] h3 {
    margin: 2px 0 0 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
}

/* clearfix for floatpanelswide containing floated children */
.floatpanelswide::after { content: ""; display: table; clear: both; }

/* two-column layout: input fills space, label shrinks to text width */
.floatpanelswide table { table-layout: auto; width: 100%; }
.floatpanelswide table td + td { white-space: nowrap; width: 1px; padding-left: .75rem; }

/* ----- DataTables overrides ------------------------------ */
.dataTables_wrapper { overflow-x: auto; }
.dataTables_filter input  { border-radius: 5px !important; }
.dataTables_length select { border-radius: 5px !important; }

table.dataTable { border-collapse: collapse !important; background: var(--card) !important; }
table.dataTable thead th,
table.dataTable thead td {
    background: var(--th-bg) !important;
    border-bottom: 2px solid var(--border) !important;
    color: var(--text-m) !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    padding: .4rem .6rem !important;
}
table.dataTable thead th:active { outline: none !important; }
table.dataTable tbody tr        { background: var(--card) !important; }
table.dataTable tbody tr.odd    { background: var(--row-alt1) !important; }
table.dataTable tbody tr.even   { background: var(--card) !important; }
table.dataTable tbody tr:hover > * { background: var(--row-hover) !important; box-shadow: none !important; }
table.dataTable tbody td {
    border-bottom: 1px solid var(--border) !important;
    color: var(--text) !important;
    padding: .35rem .6rem !important;
}
table.dataTable.no-footer { border-bottom: 1px solid var(--border) !important; }

.dataTables_wrapper .dataTables_paginate .paginate_button {
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    color: var(--text) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--btn-hover-bg) !important;
    border-color: var(--btn-hover-border) !important;
    color: var(--text) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--accent) !important;
    border-color: var(--accent) !important;
    color: #fff !important;
    -webkit-font-smoothing: antialiased !important;
}
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter { color: var(--text-m) !important; font-size: 12px !important; }

/* Sorted column */
table.dataTable.order-column tbody tr > .sorting_1,
table.dataTable.order-column tbody tr > .sorting_2,
table.dataTable.order-column tbody tr > .sorting_3,
table.dataTable.display tbody tr > .sorting_1,
table.dataTable.display tbody tr > .sorting_2,
table.dataTable.display tbody tr > .sorting_3 { background-color: var(--sort-col) !important; }

table.dataTable.display tbody tr.odd > .sorting_1,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_1,
table.dataTable.display tbody tr.odd > .sorting_2,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_2,
table.dataTable.display tbody tr.odd > .sorting_3,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { background-color: var(--sort-col) !important; }

table.dataTable.display tbody tr.even > .sorting_1,
table.dataTable.order-column.stripe tbody tr.even > .sorting_1,
table.dataTable.display tbody tr.even > .sorting_2,
table.dataTable.order-column.stripe tbody tr.even > .sorting_2,
table.dataTable.display tbody tr.even > .sorting_3,
table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { background-color: var(--sort-col) !important; }

/* ----- FullCalendar overrides ---------------------------- */
.fc-toolbar, .fc-header-toolbar {
    background: transparent !important;
    padding: .4rem 0 !important;
    margin-bottom: .75rem !important;
}
.fc-toolbar h2 { font-size: 15px !important; font-weight: 600 !important; color: var(--text) !important; }

.fc-button,
.fc-button.ui-button,
.fc-button.ui-state-default,
.fc-header-toolbar .ui-button {
    background: var(--btn-bg) !important;
    background-image: none !important;
    filter: none !important;
    border: 1px solid var(--btn-border) !important;
    border-radius: 5px !important;
    color: var(--text) !important;
    text-shadow: none !important;
    font-family: var(--font) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    -webkit-font-smoothing: antialiased !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer !important;
    padding: .25rem .6rem !important;
    transition: background .13s, border-color .13s !important;
}
.fc-button:hover, .fc-button.ui-button:hover,
.fc-button.ui-state-hover, .fc-header-toolbar .ui-button:hover {
    background: var(--btn-hover-bg) !important;
    background-image: none !important;
    border-color: var(--btn-hover-border) !important;
    color: var(--text) !important;
}
.fc-button.ui-state-active, .fc-button.ui-state-down, .fc-button:active {
    background: var(--btn-active-bg) !important;
    background-image: none !important;
    border-color: var(--btn-hover-border) !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,.15) !important;
    color: var(--text) !important;
}
.fc-today-button { background: var(--btn-bg) !important; background-image: none !important; }
.fc-button-group .fc-button:first-child { border-radius: 5px 0 0 5px !important; }
.fc-button-group .fc-button:last-child  { border-radius: 0 5px 5px 0 !important; }
.fc-button-group .fc-button:not(:first-child):not(:last-child) { border-radius: 0 !important; }

.fc-head-container,
.fc-head-container.ui-widget-header {
    background: var(--header-bg) !important;
    border-color: var(--border) !important;
}

.fc-widget-header, .fc-day-header {
    background: var(--header-bg) !important;
    color: var(--text-m) !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    border-color: var(--border) !important;
}
.fc-widget-content, .fc-day, .fc-other-month {
    background: var(--card) !important;
    border-color: var(--border) !important;
}
.fc-today { background: var(--fc-today) !important; }

/* ----- jQuery UI full override --------------------------- */
.ui-widget,
.ui-widget input, .ui-widget select,
.ui-widget textarea, .ui-widget button {
    font-family: var(--font) !important;
    font-size: 13px !important;
}
.ui-widget-content {
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
}
.ui-widget-content a { color: var(--accent) !important; }
.ui-widget-header {
    background: var(--header-bg) !important;
    background-image: none !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    font-weight: 600 !important;
}
.ui-widget-header a { color: var(--text) !important; }

.ui-dialog {
    border-radius: var(--radius) !important;
    border: 1px solid var(--border) !important;
    background: var(--card) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.15) !important;
    padding: 0 !important;
    overflow: visible !important;
}
.ui-dialog .ui-dialog-titlebar {
    border-radius: var(--radius) var(--radius) 0 0 !important;
    padding: .55rem 1rem !important;
    background: var(--header-bg) !important;
    background-image: none !important;
    border: none !important;
    border-bottom: 1px solid var(--border) !important;
}
.ui-dialog .ui-dialog-title { font-size: 13px !important; font-weight: 600 !important; color: var(--text) !important; }
.ui-dialog .ui-dialog-content { background: var(--card) !important; color: var(--text) !important; padding: .9rem 1rem !important; overflow: visible !important; }
.ui-dialog .ui-dialog-buttonpane {
    background: var(--dialog-pane) !important;
    background-image: none !important;
    border-top: 1px solid var(--border) !important;
    padding: .5rem .75rem !important;
}
.ui-dialog .ui-dialog-titlebar-close {
    background: transparent !important;
    background-image: none !important;
    border: 1px solid transparent !important;
    border-radius: 4px !important;
    color: var(--text-m) !important;
}
.ui-dialog .ui-dialog-titlebar-close:hover {
    background: var(--btn-bg) !important;
    border-color: var(--btn-border) !important;
}
.ui-dialog .ui-dialog-titlebar-close .ui-icon { background-color: transparent !important; }

.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default {
    background: var(--btn-bg) !important;
    background-image: none !important;
    filter: none !important;
    border: 1px solid var(--btn-border) !important;
    color: var(--text) !important;
    text-shadow: none !important;
    -webkit-font-smoothing: antialiased !important;
}
.ui-state-hover, .ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus, .ui-widget-content .ui-state-focus {
    background: var(--btn-hover-bg) !important;
    background-image: none !important;
    filter: none !important;
    border-color: var(--btn-hover-border) !important;
    color: var(--text) !important;
    text-shadow: none !important;
}
.ui-state-active, .ui-widget-content .ui-state-active {
    background: var(--btn-active-bg) !important;
    background-image: none !important;
    border-color: var(--btn-hover-border) !important;
    color: var(--text) !important;
}
.ui-state-highlight, .ui-widget-content .ui-state-highlight {
    background: var(--row-hover) !important;
    background-image: none !important;
    border-color: var(--accent-light) !important;
    color: var(--text) !important;
}
.ui-state-active.ui-priority-primary,
.ui-dialog .ui-dialog-buttonpane .ui-button-primary {
    background: var(--accent) !important;
    background-image: none !important;
    border-color: var(--accent-h) !important;
    color: #fff !important;
    -webkit-font-smoothing: antialiased !important;
}
.ui-widget-overlay { background: #000 !important; background-image: none !important; opacity: .35 !important; }
.ui-resizable-handle { border-color: var(--border) !important; }

/* ----- Taskbar icons (.dashtask) ------------------------- */
.dashtask {
    height: auto !important;
    overflow: visible !important;
    display: inline-flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    vertical-align: top;
    text-align: center;
    line-height: 1.3;
    font-size: 11px;
    padding: 4px;
    margin: 2px;
}
.dashtask a   { display: block; line-height: 0; }
.dashtask img { display: block; }

/* ----- Profile / equipment nested tables ----------------- */
/* auto column widths — browser decides based on content */
.ub-card-body table { min-width: 100%; table-layout: auto; }
.ub-card-body td { padding: .3rem .5rem; }

/* label cells (row2 on <td>) should not override the row's background —
   instead whole rows alternate via :nth-child on non-DataTable tables */
.ub-card-body table:not(.dataTable) td.row2 { background: inherit; }
.ub-card-body table:not(.dataTable) tr:nth-child(odd)  td { background-color: var(--card); }
.ub-card-body table:not(.dataTable) tr:nth-child(even) td { background-color: var(--row-alt1); }


/* ----- Utility ------------------------------------------- */
.clear        { clear: both; }
.spacer       { height: 1rem; }
.ub-mt        { margin-top: .75rem; }
br + .ub-card { margin-top: 0; }
.ub-plugins-mobile { padding: .75rem 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }

/* ----- Responsive: Mobile (≤ 768px) ---------------------- */
@media (max-width: 768px) {
    .ub-layout { grid-template-columns: 1fr; }
    .ub-sidebar {
        position: fixed; top: 0; left: 0; height: 100vh;
        width: var(--sidebar-w); z-index: 200;
        transform: translateX(-100%); transition: transform .22s ease;
        box-shadow: none;
    }
    .ub-sidebar.open { transform: translateX(0); box-shadow: var(--shadow-md); }
    .ub-close-btn { display: inline-flex; }
    .ub-menu-btn  { display: inline-flex; }
    .ub-content   { padding: .75rem; }
    .ub-topbar    { padding: .4rem .75rem; gap: .4rem; }
    .ub-username  { display: none; }
    th, td        { padding: .3rem .4rem; font-size: 12px; }

    /* ui-dialog: full-width on mobile */
    .ui-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
        min-width: 0 !important;
        left: 2vw !important;
        right: 2vw !important;
        top: 2vh !important;
        max-height: 90vh !important;
        box-sizing: border-box !important;
    }
    .ui-dialog .ui-dialog-content {
        max-height: 70vh !important;
        overflow-y: auto !important;
    }
    /* disable drag/resize handles on mobile */
    .ui-dialog .ui-resizable-handle { display: none !important; }

    /* ui-icon buttons (close etc): reduce */
    .ui-dialog .ui-icon { width: 14px !important; height: 14px !important; }

    /* web_FinRepControls: drop float, stack vertically on mobile */
    div[style*="float:left"][style*="height:90px"] {
        float: none !important;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        margin-right: 0 !important;
        margin-bottom: .75rem !important;
        box-sizing: border-box !important;
    }

    /* form-grid-*cols: collapse to single column on mobile */
    [class*="form-grid-"][class*="cols"] {
        grid-template-columns: 1fr !important;
        padding: 8px !important;
    }
    [class*="form-grid-"][class*="cols"] > * {
        min-width: 0 !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    [class*="form-grid-"][class*="cols"] input,
    [class*="form-grid-"][class*="cols"] select,
    [class*="form-grid-"][class*="cols"] textarea {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* floatpanelswide / onusection: drop float, stack table cells vertically */
    .floatpanelswide {
        float: none !important;
        width: 100% !important;
        margin: 0 0 .75rem 0 !important;
        box-sizing: border-box !important;
    }
    #onusection, #wcpesection, #switchsection {
        padding-left: 0 !important;
    }
    .floatpanelswide table,
    .floatpanelswide tr,
    .floatpanelswide td {
        display: block !important;
        width: 100% !important;
    }
}


/* ----- Responsive: Tablet (769px – 1024px) --------------- */
@media (min-width: 769px) and (max-width: 1024px) {
    :root { --sidebar-w: 200px; }
}
