
/* ------------------------------------------------------- */
/* Standard Time application styles                        */
/* ------------------------------------------------------- */


/* ------------------------------------------------------- */
/* Main page body                                          */
/* ------------------------------------------------------- */
body {
    padding-top: 0px;
    padding-bottom: 0px;
    height: 100vh;
    overflow: hidden;
    font-weight: var(--st-font-weight);
}

::selection {
    background: var(--st-selection-bg);
    color: var(--st-selection-text);
}

/* ------------------------------------------------------- */
/* Real content areas                                      */
/* ------------------------------------------------------- */
.contentareacolor {
    background-color: var(--st-bg-body);
}


/* ------------------------------------------------------- */
/* The main page controls, under ribbon, above footer      */
/* ------------------------------------------------------- */
.maincontentcontainer {
    height: 80%;
    height: calc(100% - 148px - 24px);
    overflow: hidden;
}


/* ------------------------------------------------------- */
/* Override bootstrap because the max-width was so small   */
/* ------------------------------------------------------- */
.container {
    max-width: 10000px !important;
}


/* ------------------------------------------------------- */
/* Small area at the top for ribbon controls               */
/* ------------------------------------------------------- */
.maincontentribboncontainer {
    height: 4%;
    min-height: 148px;
    width: 100%;
    font-size: var(--st-font-size-base);
    background-color: var(--st-bg-ribbon);
}


/* ------------------------------------------------------- */
/* Bottom of page                                          */
/* ------------------------------------------------------- */
.maincontentfootercontainer {
    height: 2%;
    min-height: 24px;
    position: fixed;
    bottom: 0;
    width: 100%;
    display:inline-table;
    background-color: var(--st-bg-footer);
    color: var(--st-text-footer);
}

.progressbarcontainer {
    height: 100%;
    /*display: inline-block;*/
    display: flex;
    width: fit-content;
    float: right;
}



.lightgrayhover { }
.lightgrayhover:hover { background-color: lightgray !important; }


/* ------------------------------------------------------- */
/* Override +/- icons in tree grid                         */
/* ------------------------------------------------------- */
.ui-icon-plus:before {
    content: '\e646';
}
.ui-icon-minus:before {
    content: '\e648';
}
.ui-icon-plus {
    content: '\e646';
}
.ui-icon-minus {
    content: '\e648';
}

/* ------------------------------------------------------- */
/* Override excessive grid padding                         */
/* ------------------------------------------------------- */
.ui-iggrid .ui-iggrid-header, .ui-iggrid table tbody td, .ui-iggrid table th {
    padding: 0px !important;
}

.ui-iggrid table tbody td.ui-iggrid-selectedcell {
    padding: 0px !important;
}

.ui-iggrid-editingcell {
    padding: 0px !important;
    border-width:0px !important;
}

/* ------------------------------------------------------- */
/* Override excessive tab padding                          */
/* ------------------------------------------------------- */
.ui-tabs-mainribbon .ui-tabs-panel {
    display: block;
    /*padding: 1em 1.4em;*/
    padding: 0 !important;
    overflow: hidden !important;
}

.ui-tabs-panel-mainribbon {
    display: block;
    /*padding: 1em 1.4em;*/
    padding: 0 !important;
    overflow: hidden !important;
}

.ui-corner-all {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
}







/* ------------------------------------------------------- */
/* Design tools window when editing a report               */
/* ------------------------------------------------------- */


.ui-tabs-reportdesigntools .ui-tabs-panel {
    display: block;
    /*padding: 1em 1.4em;*/
    padding: 0 !important;
    overflow-y: scroll !important;
}

.ui-tabs-panel-reportdesigntools {
    display: block;
    /*padding: 1em 1.4em;*/
    padding: 0 !important;
    overflow-y: scroll !important;
}






/* ------------------------------------------------------- */
/* Tables within a report                                  */
/* See stdata.Globals.DataTableToHtml()                    */
/* ------------------------------------------------------- */

.reporttable, .reporttable th, .reporttable td {
    border: 1px solid var(--st-grid-border);
    border-collapse: collapse;
}

.reporttableheaderrow {
    background-color: var(--st-grid-header-bg);
    font-weight: 700;
}

.reporttablefooterrow {
    background-color: var(--st-grid-header-bg);
    font-weight:700;
}

.reporttablerows:nth-child(even) {
    background-color: var(--st-grid-alt-row-bg);
}

.reporttablerows:hover {
    background-color: var(--st-grid-hover-bg);
}

.reporttablecols:nth-child(1) {
    background-color: var(--st-grid-col1-bg);
    font-weight: 700;
}






/* ------------------------------------------------------- */
/* Become visible after a preiod of time                   */
/* ------------------------------------------------------- */
.transitiontovisible1 {
    opacity: 0;
    transition: opacity 0.5s ease-in;
}

.transitiontovisible2 {
    opacity: 1;
}







/* ------------------------------------------------------- */
/* Grid header text alignment and styles                   */
/* ------------------------------------------------------- */
th.ui-iggrid-header:nth-child(1) {
    text-align: left !important;
}

th.ui-iggrid-header {
    text-align: left !important;
}

/* Property grid category row                              */
.ui-igtreegrid-rowlevel0 {
    background-color: var(--st-treegrid-cat-bg) !important;
    white-space: nowrap !important;
}

/* Property grid property row                              */
.ui-igtreegrid-rowlevel1 {
    background-color: var(--st-treegrid-row-bg) !important;
    color: var(--st-text-body) !important;
    white-space:nowrap !important;
}


/* ------------------------------------------------------- */
/* JQuery UI modal dialog overlay background color         */
/* ------------------------------------------------------- */
.ui-widget-overlay {
    opacity: .70 !important;
    filter: Alpha(Opacity=50) !important;
    background: var(--st-bg-dialog-overlay) !important;
}


/* --------------------------------------------------------------------- */
/* Dropdown panel for custom properties like Folder, Attachments, etc.   */
/* --------------------------------------------------------------------- */
.custom-dropdown-panel {
    position: fixed;
    z-index: 1001;
    width: 500px;
    height: 400px;
    background-color: white;
    border-width: 1px;
    border-color: darkgray;
    border-style: solid;
    overflow: hidden;
    border-radius: 8px;
}


.whitetextshadow {
    text-shadow: -1px -1px 0px white, 1px -1px 0px white, -1px 1px 0px white, 1px 1px 0px white;
}

/* Timesheet cells where hours are entered*/
.timesheettimeperiodcell {
    border-width: 1px;
    border-color: whitesmoke;
    border-style: solid;
}

/* Timesheet "today" column helps focus on data entry*/
.timesheettodaycolumncell {
    background-color: var(--st-ts-cell-bg);
    mix-blend-mode: darken;
    border-width: 1px;
    border-color: var(--st-ts-cell-bg-alt);
    border-style: solid;
}

.timesheettimeperiodcell:hover { border-color: var(--st-ts-cell-bg-sel); }
.timesheettodaycolumncell:hover { border-color: var(--st-ts-cell-bg-sel); }

/* darken blend-mode kills white active-cell text on skins with dark accent colors — reset when selected */
.ui-iggrid td.ui-state-active .timesheettodaycolumncell,
.ui-iggrid .ui-ig-altrecord td.ui-state-active .timesheettodaycolumncell {
    mix-blend-mode: normal;
    background-color: transparent;
}

/*.timesheettimeperiodcolumn {*/
    /*background-color: green;*/
/*}

.timesheettimeperiodcolumn:hover div {
    background-color: red !important;
    mix-blend-mode: darken !important;
}*/



.editedgridcell {
    background-color: lightyellow !important
}

/* Signify that an item is selected by user click */
.clickselected {
    background-color: lightblue !important;
}

.draghandle {
    width: 100%; /* Set equal width and height */
    height: 100%;
    background-color: white; /* Optional: Add a background color */
    border-width:1px;
    border-style:solid;
    border-color:orange;
    border-radius: 50%; /* This makes the square element a circle */
}

.draghandle:hover { background-color: cornflowerblue; border-width:2px; }

.floatingmodelessdiv {
    position: relative;
    z-index: -1;
    background: #888;
    border-top-right-radius: 0;
    border-top-left-radius: 0;
    font-size: calc(8pt + 0.25vw);
    border: 1px solid #777;
    color: #FFF;
    padding: 0.4em 1em;
    white-space: nowrap;
    line-height: 1.2em;
    cursor: move;
    display: block;
    outline: 0px;
}

/* Popup list used to select records or items */
.popuplistdiv {
    position: fixed;
    z-index: 2001;
    width: 400px;
    height: 300px;
    background-color: white;
    border-style: solid;
    border-color: darkgray;
    border-width: 1px;
    overflow: hidden;
    border-radius: 4px;
    white-space: nowrap;
}

.popuplistminihtmltreeviewholder {
    width: 100%;
    height: 100%;
    list-style-type: none;
    overflow: scroll;
    cursor: default;
}


.popuplistul {
    width: 100%;
    height: 100%;
    list-style-type: none;
    overflow: scroll;
    cursor: default;
}

.multilinetextarea {
    font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace !important;
}


/* ------------------------------------------------------- */
/* Infragistics grid skin overrides                        */
/* Wires IG hard-coded colors to --st-* CSS variables so  */
/* skin files can retheme grids without touching IG files. */
/* ------------------------------------------------------- */

/* Grid header — covers the header table, all header cells, the jQuery UI header class,
   and sortable/filterable header cells which IG marks with an extra class */
.ui-iggrid .ui-iggrid-headertable,
.ui-iggrid th.ui-iggrid-header,
.ui-iggrid .ui-widget-header,
.ui-iggrid th.ui-iggrid-headercell-featureenabled {
    background-color: var(--st-grid-header-bg) !important;
    color: var(--st-grid-header-text) !important;
    border-color: var(--st-grid-border) !important;
}

/* Alternating rows */
.ui-iggrid tr.ui-ig-altrecord {
    background-color: var(--st-grid-alt-row-bg) !important;
}

/* Row / cell hover */
.ui-iggrid td.ui-state-hover,
.ui-iggrid .ui-ig-altrecord td.ui-state-hover,
.ui-iggrid .ui-ig-altrecord td.ui-state-default.ui-state-hover,
.ui-iggrid th.ui-iggrid-rowselector-class.ui-state-hover,
.ui-iggrid .ui-ig-altrecord th.ui-iggrid-rowselector-class.ui-state-hover {
    background: var(--st-grid-hover-bg) !important;
    color: var(--st-text-body) !important;
}

/* Selected / active cell */
.ui-iggrid td.ui-state-active,
.ui-iggrid .ui-ig-altrecord td.ui-state-active,
.ui-iggrid th.ui-iggrid-rowselector-class.ui-state-active,
.ui-iggrid .ui-ig-altrecord th.ui-iggrid-rowselector-class.ui-state-active {
    background: var(--st-grid-active-bg) !important;
    color: var(--st-grid-active-text) !important;
    border-color: var(--st-grid-active-bg) !important;
}

/* Focus ring on active row / cell */
.ui-iggrid tr.ui-state-focus td,
.ui-iggrid tr.ui-state-focus th,
.ui-iggrid tr.ui-ig-altrecord.ui-state-focus td,
.ui-iggrid tr.ui-ig-altrecord.ui-state-focus th {
    border-top-color: var(--st-grid-active-bg) !important;
    border-bottom-color: var(--st-grid-active-bg) !important;
}
.ui-iggrid td.ui-state-focus,
.ui-iggrid td.ui-state-active.ui-state-focus {
    border-color: var(--st-grid-active-bg) !important;
}

/* Grid body / scrolldiv background */
.ui-iggrid-scrolldiv,
.ui-iggrid-fixedcontainer {
    background-color: var(--st-bg-body) !important;
}

/* Footer and toolbar bar */
.ui-iggrid .ui-iggrid-footer,
.ui-iggrid .ui-iggrid-toolbar,
.ui-iggrid .ui-iggrid-footer .ui-state-default,
.ui-iggrid .ui-iggrid-toolbar .ui-state-default,
.ui-iggrid .ui-iggrid-addrow td,
.ui-iggrid .ui-iggrid-addrow th {
    background-color: var(--st-bg-toolbar) !important;
    color: var(--st-text-body) !important;
}

/* Group-by area */
.ui-iggrid .ui-iggrid-groupbyarea {
    background-color: var(--st-bg-body) !important;
    color: var(--st-text-body) !important;
}

/* Treegrid context row (theme hard-codes #FFF / rgba(68,68,68,.7)) */
.ui-igtreegrid-contextrow {
    background-color: var(--st-bg-body) !important;
    color: var(--st-text-body) !important;
}

/* Tree widget node colors (theme hard-codes #444/#333 link text, invisible on dark backgrounds) */
.ui-igtree a {
    color: var(--st-text-body) !important;
}
.ui-igtree a.ui-state-hover {
    background-color: var(--st-grid-hover-bg) !important;
    color: var(--st-text-body) !important;
}
.ui-igtree a.ui-state-focus {
    background-color: var(--st-accent-hover) !important;
    border-color: var(--st-accent) !important;
    color: var(--st-text-body) !important;
}
.ui-igtree a.ui-state-active {
    background-color: var(--st-accent) !important;
    color: var(--st-accent-text) !important;
}

/* ------------------------------------------------------- */
/* Ribbon button text color                                */
/* ------------------------------------------------------- */
.ribbonbutton, .ribbonbuttonsmall { color: var(--st-text-body); }


/* ------------------------------------------------------- */
/* jQuery UI tab skin overrides                            */
/* Wires jQUI tab classes to --st-* variables so skin     */
/* files retheme tabs without per-skin class rules.        */
/* ------------------------------------------------------- */

.ui-tabs .ui-tabs-nav {
    background: var(--st-tab-bg) !important;
    border: none !important;
}

.ui-tabs .ui-tabs-tab {
    background: var(--st-tab-bg) !important;
    border: 1px solid transparent !important;
    border-bottom: none !important;
}

.ui-tabs .ui-tabs-anchor {
    color: var(--st-tab-text) !important;
}

.ui-tabs .ui-tabs-tab.ui-state-hover {
    background: var(--st-tab-hover-bg) !important;
}

.ui-tabs .ui-tabs-tab.ui-state-active {
    background: var(--st-tab-active-bg) !important;
    border: 1px solid var(--st-tab-border) !important;
    border-bottom: none !important;
    margin-top: 1px !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.ui-tabs .ui-tabs-tab.ui-state-active .ui-tabs-anchor {
    color: var(--st-tab-text) !important;
}

.ui-tabs .ui-tabs-panel {
    background: var(--st-bg-body) !important;
    color: var(--st-text-body) !important;
    border: none !important;
}


/* ------------------------------------------------------- */
/* AI chat bubbles                                         */
/* ------------------------------------------------------- */
.ai-bubble {
    width: 78%;
    border-radius: 14px;
    padding: 6px 10px;
    color: var(--st-ai-bubble-text);
    font-size: 9pt;
    font-family: inherit;
    border: none;
    resize: none;
    overflow: hidden;
    word-break: break-word;
    white-space: pre-wrap;
    margin-bottom: 6px;
    display: block;
    box-sizing: border-box;
}

.ai-bubble-you {
    background-color: var(--st-ai-bubble-you-bg);
    margin-left: auto;
}

.ai-bubble-ai {
    background-color: var(--st-ai-bubble-ai-bg);
}

.ai-bubble-app {
    background-color: var(--st-ai-bubble-app-bg);
}

.ai-bubble-error-row {
    position: relative;
    display: block;
    width: 78%;
    margin-bottom: 6px;
}

.ai-bubble-error-row .ai-bubble {
    width: 100%;
    margin-bottom: 0;
}

.ai-error-info-icon {
    position: absolute;
    bottom: 5px;
    right: 6px;
    cursor: pointer;
    font-size: 0.9em;
    color: white;
    background: var(--st-accent);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    user-select: none;
    transition: transform 0.15s ease;
}

.ai-error-info-icon:hover {
    transform: scale(1.2);
}
