/*------------------------------------
  THEME - GENERAL
------------------------------------*/
/* HTML */
html {
    position: relative;
}

/* BODY */
body {
    height: 0;
    min-height: 100vh;
    font-family: system-ui, sans-serif;
    font-size: 12pt;
    line-height: 1.5;
    color: #030303;
}

/* NAVBAR */
.navbar-logo {
    height: 30px;
}

/* CONTENT */
#content {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    flex: 1 1 100%;
}

/* FOOTER */
#footer {
    height: 30px;
}


/*------------------------------------
  GOOGLE MAPS
------------------------------------*/
.gm-style .gm-style-iw-chr {
    font-weight: bold;
}

.marker-highlight {
    /* colour + size are set programmatically on PinElement; this adds the purple glow */
    filter: drop-shadow(0 0 8px rgba(204, 0, 255, 0.9)) drop-shadow(0 0 18px rgba(204, 0, 255, 0.5));
    transition: filter 0.15s ease;
}

/*------------------------------------
  BRYNTUM
------------------------------------*/
/*------------------------------------
  BRYNTUM - ICON FONT OVERRIDE
  Bryntum v7 defaults to "Font Awesome 6 Free" but this app uses Pro.
------------------------------------*/
:root {
    --b-widget-icon-font-family: "Font Awesome 6 Pro";
}

/*------------------------------------
  BRYNTUM - HELPER CLASSES
------------------------------------*/
.b-no-padding {
    padding: 0 !important;
}

.b-no-margin {
    margin: 0 !important;
}

/*------------------------------------
  BRYNTUM - PANEL
------------------------------------*/
.b-panel-header {
    padding: .45em;
}

/* v7 adds a tinted background to top toolbars inside panels with headers — revert to transparent */
.b-panel.b-panel-has-header > .b-panel-body-wrap > .b-top-toolbar:not(.b-tab-bar) {
    background: transparent;
}

/* v7 adds an empty b-panel-content with 24px padding inside panel body-wraps — collapse it */
.b-panel.b-panel-has-header > .b-panel-body-wrap > .b-panel-content:empty {
    display: none;
}

/* v7 adds 24px padding to b-panel-content wrapping the unplanned treegrid — remove it */
#content-right-panel .b-panel-content.b-text-content {
    padding: 0;
}

/*------------------------------------
  BRYNTUM - SCHEDULER
------------------------------------*/
#bryntum-scheduler .b-sch-header-row[data-header-position="2"] .b-sch-header-text {
    padding-inline-start: 0.25em;
    padding-inline-end: 0.25em;
    font-size: 8px;
}

#bryntum-scheduler .b-sch-event {
    border-radius: 3px;
    box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.25);
    border-left: 3px solid red;
}

/* date separator lines — day boundaries only */
#bryntum-scheduler .b-day-start-line {
    border-inline-start: 2px solid rgba(0, 57, 120) !important;
}

/* vertical mode: day-start line becomes a horizontal row separator */
#bryntum-scheduler.b-sch-vertical .b-day-start-line {
    border-inline-start: 0 !important;
    border-block-start: 2px solid rgba(0, 57, 120) !important;
}

/* highlight */
#bryntum-scheduler .b-sch-event.scheduler-highlighted-event {
    box-shadow: 0 0 12px 3px var(--event-color);
    z-index: 2;
}



/*------------------------------------
  BRYNTUM - TREEGRID
------------------------------------*/
/* tbar */
.treegrid-unplanned-tbar .b-toolbar-content {
    min-height: auto !important;
}

.treegrid-unplanned-tbar .b-toolbar-content > .b-button {
    min-height: auto !important;
    min-width: 2.2em;
    justify-content: center;
}

/* Toggle buttons: subtle green when pressed/active */
.b-button.b-pressed.toggle-green {
    background: #d4edda !important;
    color: #28a745 !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.15);
}

/* header: match the 4px left border on data rows so columns align */
#bryntum-treegrid .b-grid-header-container {
    border-left: 4px solid transparent;
}

/* group */
#bryntum-treegrid .b-tree-parent-cell .b-tree-cell-inner .b-tree-expander,
#bryntum-treegrid .b-tree-parent-cell .b-tree-cell-inner .b-tree-icon,
#bryntum-treegrid .b-tree-parent-cell .b-tree-cell-inner .b-tree-cell-value {
    margin-left: 0;
    margin-right: 0;
}

#bryntum-treegrid .b-tree-parent-cell .b-tree-cell-inner .b-tree-cell-value {
    padding-inline-start: 0.25em;
}

/* leafs */
#bryntum-treegrid .b-grid-row {
    cursor: pointer;
}

#bryntum-treegrid .b-grid-row:not(.b-tree-parent-row):nth-child(even) {
    background-color: #f2f2f2;
}

#bryntum-treegrid .b-grid-row .b-grid-cell .b-tree-cell-inner {
    padding-inline-start: 0 !important;
}

#bryntum-treegrid .b-grid-row .b-grid-cell .b-tree-cell-inner .b-tree-icon.b-none {
    display: none;
}

#bryntum-treegrid .b-grid-row .b-grid-cell:not(.b-tree-parent-cell) .b-tree-cell-inner .b-tree-cell-value {
    padding-inline-start: 22px !important;
}

/* highlight */
#bryntum-treegrid .b-selected {
    background: none !important;
}

#bryntum-treegrid .b-grid-row.treeGrid-hovered-row,
#bryntum-treegrid .b-grid-row.treeGrid-selected-row {
    background: #FFF0D9 !important;
    z-index: 2;
}

#bryntum-treegrid .b-grid-row.treeGrid-hovered-row,
#bryntum-treegrid .b-grid-row.treeGrid-selected-row {
    box-shadow: 0 0 12px 2px #FFCD82;
}

/* MySchedule vertical list mode */

/* All three time axis columns (day, hour, minute): equal width (2em each).
   Rotation/alignment for non-lowest rows is handled by Bryntum's built-in CSS. */
.b-sch-vertical .b-vertical-time-axis .b-sch-header-row {
    flex: 0 0 2em;
}
