/* CSP utility classes — extracted inline style replacements */

/* display: none */
.csp-hidden         { display: none; }

/* margin-top: 5px */
.csp-mt5            { margin-top: 5px; }

/* margin-top: 5px; border-style: hidden (used on easyui-panel table wrappers) */
.csp-mt5-border-h   { margin-top: 5px; border-style: hidden; }

/* text-indent: 5em (booking status paragraph) */
.csp-ti5em          { text-indent: 5em; }

/* display: inline-block */
.csp-inline-block   { display: inline-block; }

/* font-size: 12px; display: none (delete-link on file-upload widgets) */
.csp-fs12-hidden    { font-size: 12px; display: none; }

/* margin-top: 10px (agent login hint paragraph) */
.csp-mt10           { margin-top: 10px; }

/* margin-top: 5px; font-size: 0.9em (admin login hint paragraph) */
.csp-mt5-fs09       { margin-top: 5px; font-size: 0.9em; }

/* width: 350px (admin login Azure AD wrapper div) */
.csp-w350           { width: 350px; }

/* display: inline-block; width: 100% (Azure AD button label span) */
.csp-span-full      { display: inline-block; width: 100%; }

/* Azure AD primary button styles (brand colour + border-radius) */
.csp-azuread-btn    { border-radius: 2px; position: relative; background-color: #C10046; box-shadow: inset 0px -3px 0px #98003B; }

/* Azure AD secondary button — border-radius + relative, no background override */
.csp-btn-rounded    { border-radius: 2px; position: relative; }

/* Cancel/back button — border-radius + left margin */
.csp-btn-br2-ml10   { border-radius: 2px; margin-left: 10px; }

/* Azure AD icon positioning (absolute-positioned SVG inside button) */
.csp-azuread-icon   { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); }

/* booking status <pre> block styling */
.csp-pre-status     { padding: 9.5px; border: 1px solid #ccc; background-color: #f5f5f5; border-radius: 5px; }

/* ── EasyUI structural helpers (replaces inline style= in easyui JS) ── */
.easyui-pos-probe    { position: absolute; top: -1000px; width: 100px; height: 100px; padding: 5px; }
.easyui-pos-fixed    { position: fixed; }
.easyui-pos-hidden   { display: none; }
.easyui-clear-both   { clear: both; }
.easyui-border0      { border: 0; }
.easyui-height-full  { height: 100%; }
.easyui-width-full   { width: 100%; }
.easyui-pad-l6       { padding-left: 6px; }
.easyui-pad-r6       { padding-right: 6px; }
.easyui-pad2         { padding: 2px; }
.easyui-cell-probe   { position: absolute; left: -99999px; }
.easyui-cell-probe2  { position: absolute; left: -9999px; }
.easyui-mask-show    { display: block; }
.easyui-mask-center  { display: block; left: 50%; }

/* ── Datagrid group row (replaces dynamic <style id="datagrid-group-style"> injection) ── */
:root {
    --dg-group-height: 30px;
    --dg-group-line-height: 30px;
    --dg-group-expander-width: 14px;
    --dg-group-expander-margin: 7px;
}
.datagrid-group { height: var(--dg-group-height); overflow: hidden; font-weight: bold; border-bottom: 1px solid #ccc; }
.datagrid-group-title,
.datagrid-group-expander { display: inline-block; vertical-align: bottom; height: 100%; line-height: var(--dg-group-line-height); padding: 0 4px; }
.datagrid-group-expander { width: var(--dg-group-expander-width); text-align: center; padding: 0; }
.datagrid-row-expander { margin: var(--dg-group-expander-margin) 0; display: inline-block; width: 16px; height: 16px; cursor: pointer; }
