html {
    font-size: 16px;
}

body {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    display: flex;
    min-height: 100dvh;
}

.sidebar {
    width: 20%;
    background-color: #15284B;
    height: 100dvh;
    color: white;
    padding: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    max-width: 250px;
    position: relative;
}

.leaflet-top.leaflet-right {
    display: flex;
}

.leaflet-editing-icon:nth-child(2) {
    background-color: #CD9700 !important;
}

.reports-table textarea {
    width: calc(100% - 10px);
    height: calc(100% - 10px);
}

.cash-flow > div {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.cash-flow > div > h2 {
    text-align: left;
}

.cash-flow .checkbox-section {
    align-items: center;
}

.cash-flow .vd-wrapper {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.cash-flow .vd-wrapper > label:first-child > label {
    /*margin-left: 5px;*/
    display: block;
}

.cash-flow button {
    padding: 5px;
}

.cash-flow label > span {
    width: 325px;
    display: inline-block;
}

.cash-flow label input {
    width: 325px;
}

.cash-flow .tail-select {
    width: 337px;
}

.checkbox-section > label:nth-child(2) > span {
    display: none;
}

@media (min-width: 768px) {
    .leaflet-sidebar-right~.leaflet-control-container .leaflet-right {
        transition:right .35s !important;
    }
}

@media (min-width: 768px) and (max-width:991px) {
    .leaflet-sidebar-right~.leaflet-control-container .leaflet-right {
        right:315px
    }
}

@media (min-width: 992px) and (max-width:1199px) {
    body .leaflet-sidebar-right~.leaflet-control-container .leaflet-right {
        right:360px !important;
    }
}

@media (min-width: 1200px) {
    .leaflet-sidebar-right~.leaflet-control-container .leaflet-right {
        right:360px !important
    }
}

.leaflet-sidebar-right.collapsed~.leaflet-control-container .leaflet-right {
    right: 50px !important;
}

.leaflet-sidebar .sidebar-hidden {
    display: none !important;
}

.leaflet-control-attribution.leaflet-control {
    margin-right: 10px !important;
}

.sidebar {
    display: none;
}

.sidebar > a{
    text-align: center;
}

.sidebar.active {
    display: flex;
}

#review-questionnaires, #questionnaire-tenant-select {
    max-width: 150px;
}

label[for='questionnaire-tenant-select'],
label[for='review-questionnaires'] {
    flex-direction: column;
    gap: 5px !important;
    justify-content: left !important;
    align-items: start !important;
}

label[for='filter-deleted'] {
    flex-direction: row !important;
    width: 110px;
}

#menu {
    cursor: pointer;
    padding: 5px;
    font-size: 24px;
    padding-bottom: 10px;
}

.sidebar nav {
    flex-grow: 1;
}

.sidebar nav ul {
    list-style: none;
    padding: 0;
    width: 100%;
}

.sidebar nav li {
    margin-bottom: 4px;
    width: 100%;
}

.sidebar nav a {
    color: white;
    text-decoration: none;
    width: 100%;
    display: block;
    padding: 5px;
}

.sidebar nav li:hover, .sidebar nav li.selected {
    background-color: #213d72;
}

.main-content {
    width: 80%;
    height: 100dvh;
    overflow: auto;
    flex-grow: 1;
}

main {
    flex-grow: 1;
}

header {
    background-color: white;
    padding: 10px;
    padding-bottom: 0;
    color: black;
    position: sticky;
    top: 0;
    z-index: 2000;
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px solid lightgray;
    align-items: center;
}

header nav {
    border-top: 2px solid lightgray;
    min-width: calc(100% + 20px);
    margin-left: -10px;
    border-bottom: 2px solid lightgray;
    margin-bottom: -2px;
}

header nav a {
    text-decoration: none;
    padding: 10px 20px;
    display: inline-block;
    color: gray;
    font-weight: bold;
    border-bottom: 2px solid lightgray;
    margin-bottom: -2px;
}

header nav a:hover, header nav a.selected {
    color:#CD9700;
    border-bottom: 2px solid #CD9700;
}

.sidebar img:not(.detail-flag) {
    width: 110px;
    max-width: 100%;
}

header > a > i {
    color: black;
    font-size: 2em;
}

h1 { 
    margin: 0;
    letter-spacing: 2px;
    flex-grow: 1;
}

h2, h3.rec-outlook { 
    margin: 0;
    text-align: center;
    color: black;
    padding: 5px;
}

h1 a {
    text-decoration: none;
    color: black;
}

h3 {
    text-decoration: underline;
}

h4 {
    font-style: italic;
}

.table-wrapper {
    display: block !important;
    overflow-y: visible;
    overflow-x: visible;
    max-width: 100%;
}

.table-wrapper.show-down {
    overflow-x: visible;
}

.disposition-report-table, .colo-report-table, .dm-report-table {
    margin-top: 40px;
}

.dm-report-table .tail-select {
    max-width:  100px !important;
}

.disposition-report-table > tr > *:nth-child(8) {
    background-color: rgb(128, 204, 255);
}

.disposition-report-table > tr > *:nth-child(9) {
    background-color: rgb(138, 255, 196);
}

.bold {
    font-weight: bold !important;
}

/*.sortable-table-wrapper {
    min-height: 300px;
}*/

.list, table {
    display: table;
    width: 100%;
    margin: 10px 0;
}

.list {
    border-collapse: collapse;
    /*overflow: hidden;*/
    margin: 0;
    height: 100%;
}

.list.hide-timeline .list-timeline {
    display: none !important;
}

.list.hide-timeline td {
    padding-bottom: 12px !important;
}

th.sortable {
    cursor: pointer;
}

.list-row, tr {
    transition: background-color 0.2s;
}

.list-row {
    cursor: pointer;
}

.list-row td:last-child {
    cursor: initial;
}

.list-row td {
    height: 1px;
}

.list-row-dm-approved::before {
    content: "✔️ ";
}

.list-row td a {
    display: flex;
    height: 100%;
    flex-direction: column;
    width: 100%;
}

.list-row td.list-row-dms a {
    display: block;
}

.list-row-events div:not(:last-child) {
    margin-bottom: 5px;
}

.list-timeline {
    max-width: calc(100vw - 50px);
}

.sidebar.active + .main-content .list-timeline {
    max-width: calc(100vw - 305px);
}

td, th {
    text-align: left;
    height: 1px;
    padding: 8px;
    border-bottom: 2px solid lightgray;
    vertical-align: top;
}

td > a:not(.tda-cancel) {
    text-decoration: none;
    color: black;
    display: block;
    padding: 5px;
    position: relative;
}

td input[type="text"], td input[type="date"] {
    width: calc(100% - 24px);
}

td input[type="number"] {
    max-width: 70px;
}

.new-task-input:empty:not(:focus):before{
    content:attr(data-ph);
    color:grey;
    font-style:italic;
}

td:not(.task-td) .select-wrapper {
    width: 100%;
}

td select {
    width: 100%;
}

.select-wrapper {
    display: inline-block;
}

.details-column .select-wrapper {
    min-width: 0;
}

.select-dropdown {
    z-index: 10000 !important;
}

.details-column select {
    max-width: 100%;
}

.list-row:nth-child(2n+1), tr:nth-child(2n+1) {
    background-color: #15284b20;
}

.extended-rows .list-row:nth-child(4n+2), .extended-rows tr:nth-child(4n+2),
.extended-rows .list-row:nth-child(4n+3), .extended-rows tr:nth-child(4n+3) {
    background-color: #15284b20;
}

.extended-rows .list-row:nth-child(4n), .extended-rows tr:nth-child(4n),
.extended-rows .list-row:nth-child(4n+1), .extended-rows tr:nth-child(4n+1) {
    background-color: initial;
}

tr.force-white, tr.force-white + .extended-row {
    background-color: initial !important;
}

tr.force-blue, tr.force-blue + .extended-row {
    background-color: #15284b20 !important;
}

.list-row:not(:first-child):hover, tr:not(:first-child):hover {
    background-color: #15284b40 !important;
}

th {
    user-select: none;
    /*background-color: #15284b40 !important;*/
}

th input[type='date'] {
    display: block;
}

.list-row-flags a {
    flex-direction: row !important;
    height: initial;
    align-items: baseline;
    justify-content: initial !important;
}

/** use detail-flags alot, but list-row-flags is the one different class */
.list-row-flags img, .detail-flag {
    width: 20px;
    transition: opacity 0.2s;
    cursor: pointer;
    margin-left: 2px;
}

.ce-flag {
    cursor: text;
    vertical-align: middle;
}

input[type="checkbox"]:not(:checked) ~ span img {
    opacity: 0.4;
}

.detail-flag:hover {
    opacity: 1 !important;
}

.hidden, .hidden-filter, .colo-hidden, .hidden-page {
    display: none !important;
}

.invisible {
    visibility: hidden !important;
}

.colo-logo {
    width: 30px;
    background-color: white;
}

.big-logos .colo-logo {
    width: 60px;
}

.client-questions-caret {
    margin-right: 5px;
    font-size: 20px;
    user-select: none;
    cursor: pointer;
    vertical-align: middle;
}
.client-questions-caret +span {
    user-select: none;
    cursor: pointer;
    vertical-align: middle;
}

label[for='questionnaire-tenant-select'] .tail-select .select-dropdown ul li.dropdown-option:first-child::before {
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgDQoJIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ1LjQwMiA0NS40MDIiDQoJIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZD0iTTQxLjI2NywxOC41NTdIMjYuODMyVjQuMTM0QzI2LjgzMiwxLjg1MSwyNC45OSwwLDIyLjcwNywwYy0yLjI4MywwLTQuMTI0LDEuODUxLTQuMTI0LDQuMTM1djE0LjQzMkg0LjE0MQ0KCQljLTIuMjgzLDAtNC4xMzksMS44NTEtNC4xMzgsNC4xMzVjLTAuMDAxLDEuMTQxLDAuNDYsMi4xODcsMS4yMDcsMi45MzRjMC43NDgsMC43NDksMS43OCwxLjIyMiwyLjkyLDEuMjIyaDE0LjQ1M1Y0MS4yNw0KCQljMCwxLjE0MiwwLjQ1MywyLjE3NiwxLjIwMSwyLjkyMmMwLjc0OCwwLjc0OCwxLjc3NywxLjIxMSwyLjkxOSwxLjIxMWMyLjI4MiwwLDQuMTI5LTEuODUxLDQuMTI5LTQuMTMzVjI2Ljg1N2gxNC40MzUNCgkJYzIuMjgzLDAsNC4xMzQtMS44NjcsNC4xMzMtNC4xNUM0NS4zOTksMjAuNDI1LDQzLjU0OCwxOC41NTcsNDEuMjY3LDE4LjU1N3oiLz4NCjwvZz4NCjwvc3ZnPg==);
    background-size: contain;
    background-origin: content-box;
    padding: 10px;
}

label[for='question-is-exclusively-authorized'] {
    margin-left: 30px;
}

.is-me-button {
    margin-bottom: 5px !important;
}

.block-labels label {
    margin-left: 10px;
    margin-bottom: 4px;
}

.logo-error {
    background-color: rgba(255, 255, 255, 0.7);
    padding: 2px;
    border-radius: 2px;
}

.leaflet-tooltip {
    background-color: none !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    pointer-events: all !important;
    cursor: pointer !important;
}

.pagination-controls {
    position: sticky;
    bottom: 0;
    background-color: #f3f4f3;
    text-align: center;
    padding: 10px;
}

.project-list-wrapper .pagination-controls,
.task-table-wrapper .pagination-controls {
    display: flex;
    gap: 5px;
    justify-content: center;
    background-color: white;
}

.relative {
    position: relative;
}

.shown-block {
    display: block !important; 
}

#user-info, #login, #register {
    position: relative;
}

#user-info {
    display: flex;
    padding-bottom: 10px;
    margin-left:auto;
}

#user-menu > div:nth-child(2) {
    text-align: center;
}

#user-circle {
    background-image: url("/assets/images/default.png");
    display: inline-block;
    padding: 10px;
    border-radius: 50%;
    color: #15284B;
    font-weight: bold;
    width: 24px;
    height: 24px;
    line-height: 24px;
    cursor: pointer;
    position: relative;
    user-select: none;
    background-position: center;
    background-size: contain;
}

#user-text {
    margin-left: 10px;
    text-align: left;
    cursor: pointer;
    user-select: none;
}

#user-email {
    font-size: 12px;
    cursor: pointer;
    text-decoration: none;
}

#user-menu {
    position: absolute;
    bottom: -10px;
    transform: translate(-33.33%, 100%);
    background-color: white;
    color: black;
    width: 150%;
    padding: 10px 0;
    z-index: 2500;
    border: 2px solid lightgray;
}

#user-menu button {
    margin-right: 10px;
    margin-top: 10px;
    display: block;
    margin-left: auto;
}

label {
    font-weight: bold;
    user-select: none;
    cursor: pointer;
}

.input-area {
    text-align: center;
    margin-top: 10px;
}

label[for="list-input"] {
    text-align: center;
    margin: 10px;
}

input, textarea, .faux-input, select, .ce {
    font-size: 16px;
    font-family: 'Montserrat', sans-serif;
    padding: 5px;
}

.ce {
    border: 1px solid black;
    border-radius: 2px;
    font-weight: normal;
    min-height: 50px;
    cursor: text;
    position: relative;
    padding-bottom: 30px;
    background-color: white;
    display: inline-block;
    width: calc(100% - 10px);
}

label[for="project-notes-wrapper"] {
    display: flex;
    margin-top: 5px;
    margin-top: 10px;
    width: 100%;
    vertical-align: top;
}

#project-notes-wrapper {
    margin-left: 10px;
}

.ce-wrapper {
    display: inline-block;
    position: relative;
    flex-grow: 1;
}

.home .ce-wrapper {
    width: 100%;
}

.ce-appendix {
    position: absolute;
    bottom: 5px;
    right: 5px;
    cursor: pointer;
}

.ce-flag-list {
    margin-right: 5px;
    display: inline-block;
}

.tab, .home, .me, .master, .tuesday, .approval, .profiles, .colo, .stripe, .upload, .calendar, .expired {
    margin: 10px;
}

.profiles tr {
    cursor: pointer;
}

.profiles-modal {
    padding: 10px;
}

.profiles-modal label > span {
    display: block;
}

.profiles-modal button {
    padding: 5px;
    margin-top: 10px;
    margin-left: auto;
    float: right;
    position: sticky;
    bottom: 10px;
}

.profiles-wide {
    width: 100%;
}

.profiles-wide textarea {
    width: 500px;
}

.profile-fields {
    gap: 20px;
    display: flex;
    flex-wrap: wrap;
}

.opts {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.opts label {
    align-items: center;
    display: inline-flex;
}

.opts label span {
    margin-right: 5px;
}

.create-folder-link button {
    padding: 5px;
    margin-top: 10px;
}

.create-folder-link label {
    display: block;
    margin-top: 10px;
}

.stripe div {
    margin-bottom: 15px;
}

.stripe a {
    font-size: 16px;
}

.tuesday-mini {
    font-size: 12px;
}

.tuesday-hide {
    margin-bottom: 10px;
    float: right;
}

.home, .master, .areas, .colo {
    position: relative;
}

.colo a {
    display: block;
    margin: auto;
    text-align: center;
    font-size: 125%;
}

.details-columns {
    max-width: 1000px;
    margin: auto;
}

.details-columns-3 {
    max-width: initial;
}

.details-column {
    width: calc(50% - 5px);
    display: inline-block;
    vertical-align: top;
}

.details-column-3 {
    width: calc(33% - 6.67px);
}

.details-column:first-child {
    margin-right: 10px;
}

.details-column-3:last-child {
    margin-left: 10px;
}

.details-column label {
    display: flex;
    margin-top: 5px;
    align-items: center;
}

.details-column label > span, .details-column .checkbox-header {
    flex-grow: 1;
}

label[for='details-approved-dms'] {
    align-items: center;
    justify-content: end;
}

.details-column label[for='details-approved-dms'] > span {
    flex-grow: initial;
}

.navigation-tools .checkbox-header {
    margin-right: 5px;
}

.toast {
    position: fixed;
    z-index: 4000;
    top: 10%;
    padding: 10px;
    font-size: 14px;
    background-color: white;
    color: black;
    border-radius: 10px;
    opacity: 0;
    transition: opacity 0.5s, transform 0.5s;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    border: 2px solid lightgray;
    cursor: pointer;
}

.toast-shown {
    opacity: 1;
}

.checkbox-section {
    position: relative;
    display: flex;
}

.checkbox-section.inline {
    display: block;
}

.checkbox-section.inline > .checkbox-header {
   margin-right: 5px;
}

.checkbox-section.modified {
    display: inline-block;
}

.project-list-wrapper, .task-table-wrapper {
    overflow-y: hidden;
    display: flex;
    flex-direction: column;
    height: calc(100vh - 130px) !important;
}

.task-table-wrapper {
    height: calc(100vh - 140px) !important;
}

.list-row {
    position: relative;
}

.list-row:not(.undo-padding) td {
    padding-bottom: 380px;
}

.list-timeline {
    width: 100%;
    height: 380px;
    position: absolute;
    bottom: 0;
    left: 0;
}

.list-timeline .timeline-wrapper > *:not(.timeline) {
    display: none;
}

.list-timeline .timeline-wrapper > .timeline {
    height: 350px;
    max-height: 350px;
    margin: 10px;
}

.project-list-wrapper label[for='list-checkbox'] {
    margin-right: 10px;
}

.project-list-wrapper label[for='list-my-notes'],
.project-list-wrapper label[for='list-hide-timeline'] {
    margin-left: 10px;
}

.project-list-wrapper .table-wrapper,
.task-table-wrapper .table-wrapper {
    overflow: auto !important;
    margin: 10px 0;
    height: 100%;
}

.checkbox-header {
    margin: 0;
    font-weight: bold;
    font-size: 16px;
}

.checkbox-value {
    border: 1px solid black;
    padding: 5px;
    border-radius: 2px;
    cursor: pointer;
    user-select: none;
    margin-left: 10px;
    position: relative;
    min-width: 130px;
    margin-left: auto;
    padding-right: 35px;
    min-height: 18.75px;
    margin-top: 5px;
    background-color: white;
    color: black;
    font-family: 'Montserrat', sans-serif;
}

.checkbox-value::after {
    width: 0;
    height: 0;
    display: block;
    position: absolute;
    right: 15px;
    bottom: 22px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f107";
}

.checkbox-value > .checkbox-list {
    display: none;
    position:absolute;
    background-color: white;
    border: 1px solid black;
    border-top: none;
    max-height: 200px;
    overflow: auto;
    width: 100%;
    z-index: 2;
    background-color: white;
    bottom: 0;
    transform: translateY(100%);
    left: -1px;
    bottom: -1px;
}

.checkbox-value.selected > .checkbox-list {
    display: block;
}

.checkbox-list > label {
    display: block;
    font-size: 14px;
    font-weight: normal;
    user-select: none;
    cursor: pointer;
    padding: 5px;
}

.checkbox-section.inline label  {
    display: inline-block;
    padding: 0;
}

.checkbox-list > label > span {
    vertical-align: top;
    margin-right: 5px;
}

.timeline {
    position: relative;
    border: 2px solid lightgray;
    height: 700px;
    width: calc(100% - 8px);
    overflow-x: auto;
    overflow-y: auto;
}

.line-wrapper {
    position: absolute;
    top: calc(50% - 2px);
}

.line {
    width: calc( 100% - 80px ); /* match js */
    height: 4px;
    background-color: black;
    position: absolute;
    left: 40px;
}

.dot {
    border-radius: 50%;
    background-color: black;
    width: 10px;
    height: 10px;
    position: absolute;
    top: calc( 50% - 5px );
    transform: translateX(-50%);
}

.date-dot {
    background-color: grey;
}

.date-label, .event-label, .date-previewer {
    position: absolute;
    transform: translateX(-50%);
    font-size: 12px;
    max-width: 7%;
    text-align: center;
}

.date-label {
    top: 5px;
    color: grey;
}

.today-date-label {
    color: #CD9700;
    text-decoration: underline;
}

.today-dot {
    background-color: #CD9700;
}

.event-label {
    top: calc(50% + 10px);
    transform: translateX(-50%);
    cursor: pointer;
    user-select: none;
}

.event-note {
    font-size: 75%;
    font-style: italic;
}

/*div.event-label-position-1 {
    transform: translate(-50%, 100%);
}

div.event-label-position-2 {
    top: calc(50% - 10px);
    transform: translate(-50%, -100%);
}

div.event-label-position-3 {
    top: calc(50% - 10px);
    transform: translate(-50%, -200%);
}*/

.date-previewer {
    top: calc(50% + 10px);
    color: #15284B;
}

.moving {
    opacity: 0.2;
}

button, .button-link {
    font-size: 16px;
    background-color: #15284B;
    cursor: pointer;
    transition: 0.2s;
    text-align: center;
    color: white;
    border: none;
    border-radius: 8px;
}

button i, .button-link i {
    color: white;
}

button:hover, .button-link:hover {
    background-color: #213d72;
}

.button-subtle {
    background-color: transparent !important;
    color: black;
    font-size: 10pt;
}

.my-deals-quick-box {
    background-color: rgb(216, 216, 216);
    padding: 5px;
    margin: 5px 0;
}

.my-deals-quick-box a {
    margin: 5px;
    font-size: 90%;
    text-decoration: none;
}

.quick-dead, .quick-sold, .quick-procurement {
    display: none !important;
}

.quick-precon {
    background-color: purple;
    background-color: rgb(197, 0, 197);
}

.quick-precon {
    background-color: rgb(117, 77, 1);
}
.quick-precon:hover {
    background-color: rgb(180, 117, 0);
}

.quick-construction {
    background-color: green;
}
.quick-construction:hover {
    background-color: rgb(0, 175, 0);
}

.quick-disposition {
    background-color: rgb(0, 88, 146);
}
.quick-disposition:hover {
    background-color: rgb(51, 168, 247);
}

.sm-wrapper > div {
    margin-left: 20px;
}

.sm-wrapper > div > button {
    margin-top: 10px;
    margin-right: 10px;
}

.timeline-table {
    margin-bottom: 5px;
}

.timeline-table table {
    min-width: 1600px;
}

.timeline-table td:last-child {
    display: table-cell;
}

.client-questions h4 {
    margin-top: 0 !important;
}

.help-colo h4 {
    margin-bottom: 0 !important;
}

.timeline-wrapper button, .lock-button {
    margin-left: 5px;
    width: 40px;
    height: 40px;
    margin-bottom: 5px;
}

.timeline-wrapper table button, .task-table-wrapper button {
    margin-left: 0;
    margin-bottom: 0;
    width: initial;
}

.task-table-wrapper button {
    margin-left: 5px;
}

.timeline-wrapper label {
    vertical-align: top;
}

.right-float {
    float: right;
}

.messages, .my-notifications-wrapper {
    border: 2px solid lightgray;
    padding: 20px;
    max-width: 1000px;
    margin: auto;
    position: relative;
}

.messages-list {
    height: 350px;
    overflow: auto;
}

.my-notifications {
    height: 350px;
    max-height: 350px;
    overflow: auto;
}

.match-matrix {
    max-width: 275px;
    overflow: auto;
}

/* Leaflet sidebar */

.leaflet-sidebar-header, .leaflet-sidebar-tabs>li.active, .leaflet-sidebar-tabs>ul>li.active {
    background-color: #15284B !important;
}

.leaflet-sidebar-right {
    width: 350px ;
    max-width: 350px !important;
    z-index: 1001 !important;
}

.leaflet-sidebar-pane.active {
    display: flex !important;
    flex-direction: column !important;
}

.leaflet-sidebar-content > *:not(.active) {
    display: none !important;
}

.leaflet-sidebar-content > * {
    font: 16px Montserrat, sans-serif;
}

.match-box {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    gap: 10px;
}

.match-box .match {
    gap: 0 !important;
    flex-direction: column;
}

.match-filters {
    margin: 20px 10px;
}

label[for='filter-plots'] {
    flex-direction: row !important;
    align-items: center !important;
}

/* End Leaflet sidebar */

.lease-checkbox {
    margin-right: 5px;
}

.leaflet-popup, .leaflet-tooltip {
    transition: none !important;
}

.match-box button, .agree-modal button, .leaflet-popup-content button, .confidentiality-modal button {
    padding: 5px;
    margin: 5px 5px 0 5px;
}

.button-link {
    padding: 10px;
    display: inline-block;
}

.ma-left-five {
    margin-left: 5px;
}

.leaflet-popup-content button {
    margin-left: 0;
    font-size: 100%;
}

.margin-five {
    margin-top: 5px;
}

.match-box h4,h5,h6 {
    margin: 0;
}

.match-filters button, .request-new-button {
    padding: 5px;
}

.agree-modal-buttons, .confidentiality-modal-buttons {
    margin-left: auto;
    text-align: right;
}

.match-box .match {
    display: flex;
    gap: 10px;
    cursor: pointer;
    padding-bottom: 10px;
    border-bottom: 2px solid lightgray;
}

.match-box .match:last-child {
    border-bottom: 0;
}

.match-box > .match > div:nth-child(2) {
    flex-grow: 1;
}

.message {
    display: flex;
    margin: 10px 0;
}

.message-user {
    background-color: #CD9700;
    padding: 10px;
    border-radius: 50%;
    color: #15284B;
    font-weight: bold;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    margin-right: 10px;
    background-position: center;
    background-size: contain;
    min-width: 24px;
}

.message-initials {
    text-align: center;
    margin-right: 10px;
    font-weight: bold;
    font-size: 12px;
}

.message-body {
    flex-grow: 1;
}

.message-date, .notification-date, .notification-project, .notification-type, .match-date {
    font-size: 12px;
    color: grey;
    font-style: italic;
    flex-shrink: 0;
}

.notification-project, .notification-type {
    margin-right: 5px;
}

.navigation-tools {
    display: flex;
    border-bottom: 2px solid lightgray;
    padding-bottom: 5px;
    align-items: center;
}

.radio-button-section label {
    display: inline-block !important;
}

.input-box {
    display: flex;
    position: relative;
}

.messages label {
    flex-grow: 1;
    display: flex;
}

.messages label:nth-child(2) {
    flex-grow: 0;
    margin-top: 4px;
}

.messages label > span {
    align-self: center;
    margin-right: 10px;
}

.messages textarea, .messages .ce-wrapper {
    flex-grow: 1;
}

.send-button, .private-button, .file-upload-button {
    margin-left: 10px;
    min-width: 40px;
}

.suggestions {
    position: absolute;
    background-color: white;
    border: 2px solid lightgray;
    z-index: 3;
    font-weight: normal;
}

.suggestion {
    padding: 10px;
    cursor: pointer;
    transition: 0.2s;
}

.suggestion.selected {
    background-color: #c5c9d2;
}

.tagged {
    font-weight: bold;
}

tt {
    text-decoration: underline;
    font-family: 'Montserrat', sans-serif;
}

.clickable {
    cursor: pointer;
    user-select: none;
}

.float-table-wrapper {
    overflow-y: visible;
    overflow-x: visible;
}

#notification-list {
    border-bottom: 2px solid lightgray;
    margin-bottom: 10px;
    max-height: 300px;
    overflow: auto;
}

.notification {
    color: black;
    text-decoration: none;
    text-align: left;
    display: block;
    margin: 10px;
    margin-top: 0;
    border-left: 2px solid lightgray;
    padding-left: 3px;
}

.notification a {
    text-decoration: none;
}

.my-notifications .notification {
    color: black;
    display: flex;
}

#user-menu .notification-text {
    overflow: hidden;
}

.my-notifications .notification-text {
    flex-grow: 1;
}

.notification.not-seen {
    border-left: 2px solid red;
}

#user-circle #user-notifications {
    background-color: red;
    color: white;
    border-radius: 50%;
    position: absolute;
    min-width: 20px;
    height: 20px;
    right: -3px;
    bottom: -3px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 20px;
    text-align: center;
}

#notifications-discussion, #notifications-details, #notifications-journal {
    background-color: red;
    color: white;
    border-radius: 50%;
    min-width: 20px;
    height: 20px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 20px;
    display: inline-block;
    vertical-align: bottom;
    margin-left: 5px;
    text-align: center;
}

.documents td > a {
    padding: 5px;
}

.documents td > button {
    margin: 5px;
}

.documents td > button:not(:first-child) {
    margin-left: 0;
}

.dragged-over {
    border: 4px dashed black !important;
}

.is-dir {
    font-weight: bold;
}

.documents h3 > button {
    margin-right: 5px;
    padding: 0;
    width: 40px;
    height: 40px;
}

.documents h3 > button a {
    color: black;
    text-decoration: none;
    display: block;
    height: 100%;
    width: 100%;
    line-height: 38px;
}

.add-folder-button {
    margin-left: 5px;
    width: 40px;
    height: 40px;
}

.details table {
    margin-top: 0;
}

.redirect { 
    margin: auto;
    text-align: center;
    padding: 10px;
    font-size: 24px;
}

.project-notice {
    font-style: italic;
    color: grey;
}

.edit-box {
    position: absolute;
    top: 50%;
    transform: translate( -50%, -50% );
    border: 1px solid black;
    padding: 5px;
    background-color: white;
    text-align: center;
}

.edit-box-first-line {
    display: flex;
    align-items: center;
    justify-content: center;
}

.edit-box input {
    cursor: pointer;
}

.edit-box label {
    display: block;
}

.completed-set {
    font-size: 12px;
    display: inline-block;
    vertical-align: top;
}

.list-row-note {
    min-width: 500px;
    max-width: 500px;
}

.list-row-note > label {
    display: flex;
    flex-direction: column;
}

.list-row-note textarea {
    width: calc(100% - 10px);
    min-height: 80px;
}

.list-row-note .ce {
    max-height: 200px;
    overflow: auto;
}

.sort-ascending::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f106";
    margin-right: 5px;
}

.sort-descending::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f107";
    margin-right: 5px;
}

#me {
    float: left;
    margin-left: 10px !important;
    width: 40px;
    height: 40px; /* standard for buttons unless in a flex row or table */
}

#login, #register {
    margin-bottom: 5px;
    margin-top: 5px;
}

#register {
    margin-right: 5px;
}

#type-select {
    width: 206px;
}

.authorization-inputs {
    flex-direction: column;
    font-size: 11pt;
}

label[for='question-ft-only'], label[for='question-st'] {
    font-size: 11pt;
    gap: 0 !important;
}

label[for='question-ft-only'] input, label[for='question-st'] input {
    min-height: 20px;
    min-width: 20px;
}

#logout, #login, #register {
    height: 40px; /* standard for buttons unless in a flex row or table */
}

#logout {
    width: 40px;
}

.image-holder {
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
    max-height: calc(100dvh - 62px);
}

.image-holder div {
    width: 25%;
    height: 250px;
    background-size: cover;
    background-position: center;
}

.image-holder video {
    opacity: 0.5;
    width: 100vw;
    height: 100dvh;
    object-fit: cover;
}

.loom-video {
    margin-top: 10px;
}

td button {
    margin-left: 5px;
}

input[type="checkbox"],input[type="radio"] {
    accent-color:#15284B;
    border-radius: 8px;
    width: 20px;
    height: 20px;
}

label > input[type="checkbox"] ~ span, label > input[type="radio"] ~ span  {
    vertical-align: middle;
}

input[type='checkbox'], input[type='radio'], select {
    cursor: pointer;
    vertical-align: middle;
}

th .checkbox-value, td .checkbox-value {
    margin-left: 0;
    width: 100%;
    margin-top: 0;
}

.custom-events-line {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.me .navigation-tools {
    justify-content: right;
}

.navigation-tools .checkbox-value {
    margin-top: 0;
    margin-left: 5px;
}

.navigation-tools .checkbox-header span {
    display: flex;
    height: 100%;
    align-items: center;
}

.hide-checkbox, .drag-checkbox {
    float: right;
}

.timeline-button,.quick-task-button, .promote-button, .coordinates-button, .site-plans-button,.camera-button, .colo-button,.master-button, .user-button, .print-list-button, .download-button, .profiles .add-button, .areas-button, .all-button {
    display: inline-block;
    margin-left: 0;
    width: 40px;
    height: 40px;
    vertical-align: top;
    margin-top: 5px;
}

.master-button, .print-list-button, .download-button {
    position: absolute;
    top: 0;
    right: 0;
    margin-top: 0;
}

.user-button, .profiles .add-button, .all-button {
    position: absolute;
    top: 0;
    right: 45px;
    margin-top: 0;
}

.areas-button {
    position: absolute;
    top: 0;
    right: 90px;
    margin-top: 0;
}

.quick-task-button, .promote-button, .coordinates-button, .site-plans-button, .camera-button, .colo-button {
    margin-right: 5px;
}

.timeline-button,.coordinates-button, .site-plans-button, .camera-button, .colo-button, .master-button, .user-button, .print-list-button, .maps-button, .areas-button, .all-button {
    padding: 0;
}

.timeline-button a,.coordinates-button a, .open-link-button a, .site-plans-button a,.camera-button a, .colo-button a, .master-button a, .user-button a, .print-list-button a, .areas-button a, .all-button a {
    color: black;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    text-decoration: none;
}

.maps-button a {
    display: block;
    padding: 1px 6px;
}

.modal, .dying-modal {
    display: block;
    position: fixed;
    top: 50%;
    transform: translate( -50%, -50% );
    left: 50%;
    background-color: white;
    opacity: 0;
    transition: opacity 0.5s;
    max-height: 80%;
    overflow: auto;
    max-width: 100vw;
    box-sizing: border-box;
    z-index: 250;
    border: 2px solid lightgray;
    min-width: 1200px;
    min-width: min(1200px, 100vw);
}

.modal > div, .dying-modal > div {
    padding: 20px;
}

.modal > div::after, .dying-modal > div::after {
    clear: both;
    content: " ";
    display: block;
}

.modal-shown, .dying-modal .modal-shown {
    opacity: 1;
}

.next-projected, .display-until {
    font-size: 14px;
    font-weight: bold;
    font-style: italic;
    text-align: right;
}

.copy-date-business-button {
    margin-right: 25px;
}

.can-be-important {
    cursor: pointer;
    user-select: none;
}

.red {
    color: red;
}

.important::before {
    content: "!";
    color: red;
    font-size: 30px;
    font-weight: bold;
    display: block;
    margin-top: 7px;
    line-height: 30px;
    margin-right: 5px;
    font-style: normal;
}

.actions-td {
    white-space: nowrap;
}

.contract-td { 
    height: initial;
}

.contract-td select {
    width:400px;
}

.contract-td button {
    height: initial !important;
}

.flex {
    display: flex;
}

.grow {
    flex-grow: 1;
}

label[for^="note-input"] {
    display: flex;
}

textarea[id^="note-input"] {
    flex-grow: 1;
}

.contract-td ~ td {
    vertical-align: top;
}

.contract-td + td + td button {
    max-height: 31px;
}

.more-hidden {
    max-height: 100px;
    overflow: hidden;
}

.notification hr {
    margin: 2px 0 ;
}

.show-more {
    font-size: 70%;
    text-align: center;
}

.task-td {
    min-width: 500px;
}

.task-td > label {
    vertical-align: top;
}

.task-td .ce-wrapper {
    width: calc(100% - 20px) !important;
}

.task-td .ce {
    min-height: 21px !important;
    padding-bottom: 5px !important;
}

.task-td .ce-appendix {
    display: none !important;
}

.task-td select, .contact-person-div select {
    width: 20px;
}

.contact-person-div select {
    margin-left: -20px;
}

.contact-remove-button {
    position: absolute;
    top:20px; 
    right: 20px;
    padding: 10px !important;
    margin: 0 !important;
}

.contact-person-div > label > span:first-child {
    width: 70px;
}

.contact-person-div {
    border:1px solid black;
    padding: 20px;
    position: relative;
}

label[for="documents-upload-file"] {
    display: table;
    overflow: hidden;
}

label[for="documents-search"] {
    display: inline-block;
    margin-top: 20px;
}

label[for="project-lat"] input, label[for="project-lng"] input {
    width: 110px;
}

label[for="project-filepath"] {
    flex-grow: 1;
    display: flex;
    align-items: center;
}

label[for="project-filepath"] input {
    flex-grow: 1;
    margin-left: 5px;
}

#site-display {
    display: flex;
    margin-top: 20px;
    border: 4px solid #CD9700;
}

#site-display > div {
    width: 25%;
    height: 200px;
    background-position: center;
    background-size: cover;
}

#map, .map {
    height: 350px;
}

#areas-map, #plots-map {
    width: 100%;
    height: calc(100dvh - 75px);
}

.ls-inputs {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 5px;
}

.ls-inputs label span {
    display: inline-block;
    width: 50px;
}

.ls-inputs label input {
    font-size: 12px;
}

.timeline-on-label {
    display: block;
    margin-bottom: 10px;
}

.date-filter-section input {
    width: 160px;
}

tr.hidden + .extended-row, tr.hidden-filter + .extended-row,
tr.hidden-page + .extended-row {
    display: none !important;
}

textarea[id^="task-note"] {
    width: calc(100% - 10px);
}

.timeline-changes {
    margin-top: 10px;
}

label[for^="timeline-change-start"] {
    margin-right: 5px;
}

label[for="topic-input"] {
    margin-bottom: 5px;
}

label[for="topic-input"] span {
    width: 77px;
}

.colo-brand .colo-projects, .colo-brand-ls .colo-projects {
    display: none !important;
}

button .fa-colo {
    width: 20px;
    display: block;
    margin: auto;
}

nav .fa-colo {
    width: 20px !important;
    vertical-align: middle;
}

label[for="area-project-select"] {
    display: block;
}

label[for="area-project-select"] .tail-select {
    max-width: 150px;
    vertical-align: middle;
}

#area-project-select {
    max-width: 150px;
}

#area-notes-input {
    display: block;
}

.message-topic {
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}

.message-share-button, .message-delete-button {
    margin-left: 5px;
}

#project-day {
    margin-bottom: 5px;
}

.home .input-area .checkbox-section.inline {
    vertical-align: middle;
}

.master .timeline-wrapper button:not(.view-changes-button):not(.view-table-button) {
    margin-left: 0;
    margin-right: 5px;
}

.status-div {
    padding-bottom: 10px;
    font-weight: bold;
    text-decoration: underline;
}

.contact-box {
    margin-left: 10px;
}

.contact-box button {
    padding: 3px;
    margin: 3px;
}

.description-div {
    margin-bottom: 10px;
    font-style: italic;
    font-size: 14px;
}

.login-modal {
    min-width: initial;
    max-width: min(80vw, 500px);
}

.login-modal label {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.login-modal label span {
    flex-grow: 1;
    padding-right: 10px;
}

.login-modal button {
    height: 40px;
    display: block;
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
}

.login-modal a {
    width: 100%;
    text-align: center;
    display: block;
}

.login-modal h3 {
    margin-top: 0;
    text-align: center;
}

.login-modal label[for="trust"] {
    display: block;
    width: 100%;
    text-align: center;
}

.login-modal .login-form > div {
    margin-bottom: 10px;
}

.tutorial-modal {
    max-width: 500px;
    min-width: 500px;
    z-index: 2000;
}

.slides {
    margin-bottom: 10px;
    text-align: center;
}

.slide {
    height: 250px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.slide-controls button:nth-child(2) {
    float: right;
} 

.areas {
    gap: 10px;
    height: calc(100dvh - 75px);
    margin: 0 !important;
}

.areas > button, .areas > .credits {
    position: absolute;
    top: 0;
    right: 0;
    font-weight: bold;
}

.credits button {
    display: inline-block;
    margin-left: 5px;
    padding: 5px;
}

.add-modal, .agree-modal, .confidentiality-modal {
    min-width: 0;
    z-index: 2000;
}

.timeline-modal {
    z-index: 2000;
}

.areas > button {
    display: none !important;
}

.leaflet-control-layers {
    max-height: 200px;
    overflow: auto;
}

.leaflet-control-layers-scrollbar {
    overflow-y: initial !important;
    overflow-x: initial !important;
    padding-right: 0 !important;
}

.client-questions, .match-box-wrapper, .bulk-wrapper, .agree-form, .profile-form { 
    display: flex;
    gap: 10px;
    width: 95%;
    margin-top: 20px;
}

.client-questions .checkbox-section > div {
    max-width: 50%
}

.match-box-wrapper {
    margin-bottom: 20px;
}

.match-box-wrapper.no-bottom {
    margin-bottom: 0px;
}

.bulk-wrapper {
    padding: 10px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    margin-top: 10px;
}

.match-box-wrapper > div {
    padding: 10px;
    padding-top: 0;
}

.client-questions > div {
    padding: 10px;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-grow: 1;
}

.client-questions > div > h4 {
    margin-bottom: 10px;
    margin-top: 10px;
}

.client-questions > div > label, .client-questions > div > div, .agree-form label {
    display: flex;
    align-items: center;
    justify-content: left;
    gap: 10px;
}

.agree-form label {
    padding: 2px;
}

.highlight-red-border {
    border: 5px solid red;
    padding: 3px;
}

.pass-opt {
    color: green;
}

.bad-pass-opt {
    color: red;
}

.pass-opt::before {
    font-family: "Font Awesome 5 Free";
    content: "\f00c";
    margin-right: 5px;
    font-weight: 900;
}

.bad-pass-opt::before {
    font-family: "Font Awesome 5 Free";
    content: "\f00d";
    margin-right: 5px;
    font-weight: 900;
}

.client-questions .tenant-details-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: max(200px, calc(50% - 5px));
}

.agree-form label.left-label {
    justify-content: left;
    padding-bottom: 3px;
    gap: initial;
}

.client-questions > div > label[for="question-drive-thru"],
.client-questions > div > label[for="question-double-drive-thru"],
.client-questions > div > label[for="question-freestanding"],
.client-questions > div > label[for="question-inline"],
.client-questions > div > label[for="question-endcap"] {
    justify-content: start;
}

.bulk-instructions {
    font-size: 70%;
}

.colo-brand .sidebar li:nth-child(1), .colo-brand .sidebar li:nth-child(2), .colo-brand .sidebar li:nth-child(3), 
.colo-brand .sidebar li:nth-child(5),
 .colo-brand h1 a:first-child, .colo-brand h1 span:nth-child(2),
.colo-brand #user-menu > button:nth-child(3),
.colo-brand .pdc-login, .colo-brand .sidebar, .colo-brand #menu, html:not(.colo-brand):not(.colo-brand-ls) #register {
    display: none !important;
}

.colo-brand-ls .sidebar li:nth-child(1), .colo-brand-ls .sidebar li:nth-child(2), .colo-brand-ls .sidebar li:nth-child(3), 
.colo-brand-ls .sidebar li:nth-child(4), .colo-brand-ls .sidebar li:nth-child(6),
 .colo-brand-ls h1 a:first-child, .colo-brand-ls h1 span:nth-child(2),
.colo-brand-ls #user-menu > button:nth-child(3), .colo-brand-ls .image-holder,
.colo-brand-ls .pdc-login, .colo-brand-ls .sidebar, .colo-brand-ls #menu {
    display: none !important;
}

.colo-brand header,.colo-brand-ls header {
    background-color: #15284B !important;
    color: white !important;
}

.colo-brand h1 a,.colo-brand-ls h1 a {
    color: white !important;
}

.native .sidebar nav li:not(:nth-child(1),:nth-child(2)), .native .areas-button, .native .project-list-wrapper + div,
.native .details-numbers, .native .details-project-properties {
    display: none !important;
}

.native .all-button {
    right: 90px;
}

.small-text {
    font-size: 75%;
}

.small-italic-text {
    font-size: 85%;
    font-style: italic;
}

.sidebar #menu {
    position: absolute;
    right: 10px;
}

.help-colo {
    display: flex;
    flex-direction: column;
    padding: 10px;
    gap: 5px;
}

.terms {
    font-family: "Times New Roman", "serif";
    height: 70vh;
    overflow: auto;
    margin: 10px;
    border:  none;
    width: calc(100% - 20px);
}

label[for='independent-contractor'] {
    text-align: right;
    margin-bottom: 10px;
    display: block;
}

.iframe-buttons {
    margin-left: auto;
    text-align: right;
}

.terms-button, .download-terms-button {
    padding: 5px;
    display: inline-block;
    margin-left: 5px;;
}

tr.is-dm {
    font-weight: bold;
    cursor: pointer;
}

.padded-button {
    padding: 5px;
}

#question-parking-spaces, #question-parking-spaces-max,
#question-locations-operated, #question-years-in-business {
    width: 100px;
}


#question-rent-min, #question-rent-max,
#question-land-cost-min, #question-land-cost-max {
    width: 85px;
}

.agree-form {
    display: flex;
    flex-direction: column;
    padding: 5px;
}

.blue-select .select-dropdown {
    background-color: #e9f2ff !important;
}

.match-filters, .match-filters > div {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.match-filters select {
    max-width: 200px;
}

.match-child {
    font-size: 80%;
    margin-left: 20px;
}

.gotocolo {
    padding: 5px;
    margin-left: 10px;
}

.red-button {
    background-color: rgb(131, 0, 0);
}

.red-button:hover {
    background-color: rgb(149, 0, 0);
}

.agree-form .block-labels label span {
    width: 60px;
}

.client-questions .checkbox-needs {
    flex-wrap: wrap;
}

.client-questions .checkbox-split {
    justify-content: space-between;
    align-items: start;
}

.client-questions h5 {
    margin-bottom: 0;
    margin-top:0;
}

.match-filters label, .client-questions .checkbox-section,
.profile-form label,
.client-questions label[for='question-parking-spaces'],
.client-questions label[for='question-rent-min'], 
.client-questions label[for='question-land-cost-min'], 
.client-questions label[for='question-space'],
.client-questions label[for='question-acres'] {
    gap: 5px;
    display: flex;
    align-items: start;
    flex-direction: column;
    justify-content: left;
}

label[for="user-show-for"] {
    width: 100%;
    flex-direction: row;
    align-items: center;
}

.clickable {
    cursor: pointer;
}

.contact-div {
    margin-top: 10px;
}

.contact-div a {
    display: block;
}

.company-all {
    margin-top: 20px;
}

.company-all a {
    display: block;
}

.promoted {
    background-color: rgb(202, 255, 202);
}

.input-area ~ .checkbox-section {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
}

.input-area + .checkbox-section ~.checkbox-section {
    margin-top: 10px;
}

.documents td {
    vertical-align: middle;
}

.path-div {
    font-size: 75%;
    font-style: italic;
}

li.primary {
    font-weight: bold !important;
}

.feedback-form-wrapper, .profile-form {
    margin: 10px;
    margin-top: 20px;
    flex-direction: column;
}

.feedback-form h5 {
    margin-top: 20px;
}

.feedback-form textarea {
    width: calc(100% - 20px);
    height: 300px;
}

.feedback-form button, .padding-button {
    padding: 5px;
}

.feedback-form label {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 5px;
    margin-bottom: 10px;
}

.watermark, .watermark-left {
    width: 50px;
    position: absolute;
    top: -80px;
    right: 15px;
    z-index: 400;
    opacity: 0.8;
}

.watermark-left {
    right: initial !important;
    left: 15px;
    top: -30px;
}

.tutorial-video-outer {
    max-width: 800px;
}

.tutorial-video {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    max-width: 800px;
}

.tutorial-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.bpFab {
    display: none !important;
}

iframe[name="webchat"] {
    bottom: 15px;
    right: 60px;
}

.land-closing {
    display: flex;
    flex-direction: column;
}

.land-closing > div {
    display: flex;
}

.land-closing-count  {
    gap: 30px;
}

.land-closing-item {
    display: flex;
    align-items: stretch;
    border: 2px solid black;
}

.land-closing-item div {
    padding: 15px;
    display: flex;
    align-items: center;
}

.land-closing-item div:first-child {
    background-color: rgb(124, 199, 124);
    width: 200px;
}

.land-closing-keys .land-closing-item div:nth-child(2) {
    border-left: 2px solid black;
}

.land-closing h2 {
    text-align: left;
    margin: 10px 0;
}

.land-closing-keys {
    width: 100%;
}

.land-closing-keys .land-closing-item div:first-child {
    width: 100px;
    font-size: 80%;
}

.land-closing-keys .land-closing-item:nth-child(2) div:first-child,
.land-closing-keys .land-closing-item:nth-child(3) div:first-child,
.land-closing-keys .land-closing-item:nth-child(4) div:first-child,
.land-closing-keys .land-closing-item:nth-child(5) div:first-child,
.land-closing-keys .land-closing-item:nth-child(6) div:first-child {
    background-color: white;
}

.land-closing-keys .land-closing-item:nth-child(4) {
    border-color: red;
}

.land-closing-keys .land-closing-item:nth-child(5) {
    border-color: orange;
}

.land-closing-keys .land-closing-item:nth-child(6) div:first-child {
    background-color: rgb(175, 115, 24);
}

.land-closing-timeline {
    margin-top: 20px;
    gap: 20px;
}

.land-closing-timeline-box > div {
    flex-direction: row;
    display: flex;
}

.land-closing-item-column > div:first-child {
    height: 30px;
    border: 2px solid black;
}

.land-closing-item.land-closing-item-column > div,
.land-closing-item.land-closing-item-column > .land-closing-item > div {
    width: 85px !important;
    font-size: 80%;
    background-color: white;
}

.land-closing-item.land-closing-item-column > .land-closing-item > div {
    font-size: 100%;
    padding: 0;
}

.land-closing-item-column {
    display: flex;
    flex-direction: column;
    border: none;
}

.land-closing-rec, .land-closing-rec > div {
    background-color: rgb(124, 199, 124) !important;
}

.land-closing-danger, .land-closing-danger > div {
    border-color: red;
}

.land-closing-potential, .land-closing-potential > div {
    border-color: orange;
}

.land-closing-manager, .land-closing-manager > div {
    background-color: rgb(175, 115, 24) !important;
}

.land-closing-potential-project-box .land-closing-item > div {
    background-color: white !important;
}

.gpt {
    display: flex;
    gap: 10px;
    margin-bottom: -10px;
}

.gpt-history {
    background-color: #15284B;
    color: white;
    padding: 10px;
    width: 150px;
    min-width: 150px;
    height: calc(100dvh - 86px);
    position: sticky;
    top: 66px;
    left: 0;
}

.gpt-history ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.gpt-history li {
    cursor: pointer;
    padding: 3px;
}

.gpt-history li.selected,
.gpt-history li:hover {
    background-color: #213d72;
}

.gpt-chat {
    flex-grow: 1;
}

.gpt button, .gpt textarea {
    display: block;
    margin-top: 5px;
}

.gpt textarea {
    width: calc(100% - 10px);
    height: 120px;
}

.gpt button {
    padding: 5px;
}

.gpt-delete {
    padding: 10px !important;
}

.gpt-answer {
    margin-top: 20px;
}

.gpt-answer-text {
    margin-top: 10px;
    margin-bottom: 10px;
}

.gpt-button-controls {
    display: flex;
    gap: 5px;
    margin-bottom: 5px;
}

@media only screen and (max-width: 600px) {
    header nav  a {
        width: 100%;
    }
    header h1 {
        font-size: 16px;
    }
    header nav, #user-info {
        display: none;
    }
    header nav.active:not(.hidden) {
        display: block;
    }
    #user-info.active:not(.hidden) {
        display: flex;
    }
    #menu {
        display: inline-block;
    }
    .sidebar-text {
        display: none !important;
    }
    .details-column {
        width: 100%;
        display: inline-block;
        vertical-align: top;
    }
    .details-column:last-child {
        margin-left: 0;
    }
    .details-column select {
        max-width: 185px;
    }
    header > a {
        display: none;
    }
    .custom-events-line {
        flex-direction: column;
    }
    .custom-events-line > button {
        max-width: 40px;
        align-self: flex-end;
    }
    button:not(.tail-select button) {
        min-width: 40px;
        min-height: 40px;
    }
    .timeline-wrapper table button, .task-table-wrapper button {
        height: initial;
    }
    textarea {
        width: 1px;
    }
    .navigation-tools {
        flex-direction: column;
    }
    .my-notifications .notification {
        flex-direction: column;
    }
    .input-area > * {
        display: block;
    }
    .home .input-area > .checkbox-section {
        margin-top: 10px;
    }
    .coordinates-button {
        margin-left: 0;
        margin-top: 5px;
    }
    .image-holder {
        display: block;
    }
    .image-holder div {
        width: 100%;
    }
    #login, #register {
        display: block;
    }
    .documents td > button:not(:first-child) {
        margin-left: 5px;
        margin-top: 0;
    }
    .copy-date-button, .copy-date-business-button {
        margin-bottom: 5px !important;
    }
    #site-display > div {
        display: none;
    }
    #site-display > div:first-child {
        display: block;
        width: 100%;
    }
    .leaflet-top.leaflet-right {
        flex-direction: column;
    }
    .leaflet-top.leaflet-right .tail-select {
        max-width: 175px;
    }
}

@media print {
    footer {
        display: none;
    }
    .tuesday {
        position: absolute;
        top: 0;
        left: 0;
        background-color: white;
        margin: 0;
        padding: 10px;
        width: calc(100% - 20px);
        height: 100dvh;
    }
    .tuesday-hide {
        display: none;
    }
    .sidebar {
        display: none !important;
    }
    .main-content {
        height: initial !important;
    }
    table {
        table-layout: fixed !important;
        break-inside: auto;
    }
}

/** MODERN UPGRADES **/

/* =============================
   PDC+ Modern UI – index.modern.css
   Design goals: crisp typography, clear hierarchy, high contrast,
   subtle depth, responsive layout, and accessible focus states.
   Drop-in: keeps your existing class names so no HTML changes required.
   ============================= */

/* -------- CSS Variables (Design Tokens) -------- */
:root{
    --bg: #0b1220;                 /* App background (behind content) */
    --surface: #0f1a33;            /* Sidebar / elevated surfaces */
    --surface-2: #111a34;          /* Variant */
    --panel: #ffffff;              /* Main content cards/panels */
    --text: #0f172a;               /* Default text on light panels */
    --muted: #667085;              /* Secondary text */
    --brand: #1e3a8a;              /* Primary (nav hover, active) */
    --brand-2: #0ea5e9;            /* Accent (chips, highlights) */
    --accent: #CD9700;             /* Legacy gold accent */
    --success: #16a34a;
    --warning: #f59e0b;
    --danger: #ef4444;
    --border: #e6e8ee;
    --ring: #7dd3fc;
    --shadow: 0 4px 16px rgba(2,6,23,0.08), 0 1px 2px rgba(2,6,23,0.06);
    --radius: 14px;
  }
  
  /* Light theme base for main content */
  html, body{
    height:100%;
  }
  
  html{ font-size:16px; }
  
  body{
    margin:0;
    font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
    background: var(--bg);
    color: var(--text);
    display:flex;
    min-height:100dvh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  
  /* -------- Sidebar -------- */
  .sidebar{
    width: 280px;
    max-width: 32vw;
    background: linear-gradient(180deg, var(--surface) 0%, #0c162d 100%);
    color: #e5e7eb;
    padding: 20px 16px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    position: sticky;
    top:0;
    height: 100dvh;
    border-right: 1px solid rgba(255,255,255,0.06);
  }
  
  .sidebar > a{
    text-align:center;
    margin-bottom: 12px;
  }
  
  .sidebar img:not(.detail-flag){
    width: 128px;
    max-width: 100%;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,0.25));
  }
  
  #menu{
    cursor:pointer;
    font-size:24px;
    color:#e2e8f0;
    user-select:none;
  }

  .sidebar:not(.active) ~ div #menu {
    color: black;
    padding-bottom: 0;
  }
  
  .sidebar nav{
    flex:1;
    margin-top: 8px;
  }
  
  .sidebar nav ul{
    list-style:none;
    padding:0;
    margin:0;
  }
  
  .sidebar nav li{
    width:100%;
    margin:2px 0;
    border-radius: 10px;
    transition: background-color .2s ease, transform .06s ease;
  }
  
  .sidebar nav a{
    display:flex;
    align-items:center;
    gap:.625rem;
    text-decoration:none;
    color:#e5e7eb;
    padding:10px 12px;
    border-radius:10px;
    font-weight:600;
    letter-spacing:.2px;
  }
  
  .sidebar nav li:hover{
    background: rgba(255,255,255,0.06);
  }
  
  .sidebar nav li.selected{
    background: linear-gradient(90deg, rgba(14,165,233,0.18), rgba(14,165,233,0.08));
    outline: 1px solid rgba(125,211,252,0.25);
  }
  
  .sidebar .kicker{
    margin-top:auto;
    font-size:.8rem;
    color:#94a3b8;
    padding-top:8px;
    border-top:1px solid rgba(255,255,255,0.06);
  }
  
  /* Collapsible behavior (existing classes preserved) */
  .sidebar{ display:none; }
  .sidebar.active{ display:flex; }
  
  /* -------- Main Content Shell -------- */
  .main-content{
    flex:1 1 auto;
    height:100dvh;
    overflow:auto;
    background:
      radial-gradient(1200px 800px at 10% -10%, rgba(14,165,233,0.10), transparent 60%),
      radial-gradient(1000px 700px at 120% 10%, rgba(205,151,0,0.09), transparent 55%),
      linear-gradient(0deg, #f8fafc, #f8fafc);
    border-left: 1px solid rgba(255,255,255,0.04);
  }
  
  /* -------- Header & Tabs -------- */
  header{
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border);
    padding: 14px 16px 0 16px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
  }
  
  h1{
    margin:0;
    letter-spacing: .06em;
    font-weight: 800;
  }
  
  h1 a{ color: inherit; text-decoration:none; }
  
  header > a > i{
    color: var(--text);
    font-size: 1.6rem;
  }
  
  /* Tabs */
  header nav{
    width: 100%;
    display:flex;
    gap: 4px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin: 0 -16px;
    padding: 0 8px;
    background: #fff;
  }
  
  header nav a{
    position:relative;
    color: var(--muted);
    text-decoration:none;
    padding: 12px 14px;
    font-weight:700;
    border-bottom: 2px solid transparent;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
    border-radius: 10px 10px 0 0;
  }
  
  header nav a:hover{
    color: var(--brand);
  }
  
  header nav a.selected{
    color: var(--brand);
    border-bottom-color: var(--brand-2);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 90%);
  }
  
  /* -------- User Pill / Menu -------- */
  #user-info{
    display:flex;
    margin-left:auto;
    padding-bottom:10px;
    align-items:center;
    gap:.5rem;
  }
  
  #user-circle{
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 999px;
    background-position: center;
    background-size: cover;
    border: 2px solid rgba(255,255,255,0.9);
    box-shadow: var(--shadow);
  }
  
  #user-text{ color: var(--text); }
  #user-email{ color: var(--muted); }
  
  #user-menu{
    position:absolute;
    bottom:-10px;
    transform: translate(0%, 100%);
    background:#fff;
    border:1px solid var(--border);
    border-radius: 12px;
    padding: 10px 8px;
    width: max(260px, 150%);
    box-shadow: var(--shadow);
    z-index: 2500;
    right: 0;
  }
  
  /* -------- Cards / Editors -------- */
  .tab, .home, .me, .master, .tuesday, .approval, .profiles, .colo, .stripe, .upload, .calendar, .expired{
    margin: 16px;
  }
  
  .card, .ce, .profiles-modal, .panel{
    background:#fff;
    border:1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }
  
  .ce{
    padding: 10px 10px 36px 10px;
    min-height: 56px;
    width: 100%;
    box-sizing: border-box;
  }
  
  .ce-appendix{
    position:absolute;
    bottom: 10px;
    right: 10px;
    cursor:pointer;
    opacity:.8;
    transition: opacity .2s ease;
  }
  .ce-appendix:hover{ opacity:1; }
  
  /* -------- Forms -------- */
  label{ font-weight:700; user-select:none; cursor:pointer; }
  
  input, textarea, select, .faux-input, .ce{
    font: inherit;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background:#fff;
    color: var(--text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease, background .15s ease;
  }
  
  input:focus, textarea:focus, select:focus, .ce:focus-within{
    border-color: var(--ring);
    box-shadow: 0 0 0 4px rgba(125,211,252,0.35);
  }
  
  select{ appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 15px) 50%, calc(100% - 10px) 50%; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 28px; }
  
  /* Inline helpers */
  .input-area{ text-align:center; margin-top:10px; }
  .block-labels label{ margin-left:10px; margin-bottom:6px; }
  
  /* Buttons (global) */
  button, .btn{
    font: inherit;
    font-weight: 700;
    border-radius: 12px;
    border: 1px solid transparent;
    background: var(--brand);
    color: #fff;
    box-shadow: var(--shadow);
    cursor:pointer;
    transition: transform .03s ease, filter .2s ease, background .2s ease;
  }
  button:hover{ filter: brightness(1.05); }
  button:active{ transform: translateY(1px); }
  button.secondary{ background:#fff; color: var(--brand); border-color: var(--brand); }
  button.ghost{ background: transparent; color: var(--brand); border-color: transparent; box-shadow: none; }
  button.danger{ background: var(--danger); }
  
  /* -------- Tables / Lists -------- */
  .table-wrapper{ display:block !important; overflow: auto; max-width: 100%; background: transparent; }
  .list, table{ width:100%; border-collapse: collapse; margin: 12px 0; background:#fff; border:1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow);  }
  .list {margin: 0;}
  th, td{
    text-align:left;
    padding: 12px 12px;
    vertical-align: top;
    border-bottom: 1px solid var(--border);
    color: var(--text);
  }
  th{
    position: sticky;
    top: 0; /* header + tabs approx */
    background: #f8fafc;
    z-index: 1;
    font-weight: 800;
    color: #111827;
    user-select:none;
  }
  tr:last-child td{ border-bottom: none; }
  
  tr:hover:not(:first-child),
  .list-row:not(:first-child):hover{
    background: #f1f5f9;
  }
  
  /* Flags / status chips */
  .list-row-flags a{
    display:flex; align-items:center; gap:6px; height:auto;
  }
  .list-row-flags img, .detail-flag{
    width: 20px; margin-left: 2px; transition: opacity .2s ease, transform .12s ease;
  }
  .detail-flag:hover{ opacity:1 !important; transform: translateY(-1px); }
  
  .list-row-dm-approved::before{ content:"✔️ "; color: var(--success); }
  
  /* Task composer placeholder */
  .new-task-input:empty:not(:focus):before{
    content:attr(data-ph);
    color:#9aa3af;
    font-style:italic;
  }
  
  /* Timeline / pagination footer */
  .pagination-controls{
    position: sticky;
    bottom: 0;
    background:#fff;
    text-align:center;
    padding: 10px;
    border-top:1px solid var(--border);
    box-shadow: 0 -8px 16px rgba(2,6,23,0.04);
  }
  
  /* -------- Leaflet integration tweaks -------- */
  .leaflet-top.leaflet-right{ display:flex; }
  .leaflet-sidebar-right~.leaflet-control-container .leaflet-right{ transition:right .35s; }
  .leaflet-sidebar-right.collapsed~.leaflet-control-container .leaflet-right { right: 50px !important; }
  .leaflet-control-attribution.leaflet-control{ margin-right:10px !important; }
  
  /* -------- Utility -------- */
  .bold{ font-weight:800 !important; }
  .hidden, .hidden-filter, .colo-hidden, .hidden-page{ display:none !important; }
  .invisible{ visibility:hidden !important; }
  .relative{ position:relative; }
  .shown-block{ display:block !important; }
  
  /* -------- Scrollbar (WebKit) -------- */
  *::-webkit-scrollbar{ width: 10px; height: 10px; }
  *::-webkit-scrollbar-track{ background: transparent; }
  *::-webkit-scrollbar-thumb{ background: #cbd5e1; border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
  *::-webkit-scrollbar-thumb:hover{ background: #94a3b8; }
  
  /* -------- Responsive -------- */
  @media (max-width: 1100px){
    .sidebar{ width: 240px; }
    th{ top: calc(56px + 56px); }
  }
  
  @media (max-width: 900px){
    .sidebar{ position: fixed; z-index: 60; transform: translateX(-100%); transition: transform .25s ease; }
    .sidebar.active{ transform: translateX(0); }
    .main-content{ width: 100%; }
    header{ border-bottom: 1px solid var(--border); }
    th{ top: 96px; }
  }
  
  @media (max-width: 640px){
    header nav{ overflow:auto; white-space: nowrap; }
    header nav a{ padding: 10px 12px; }
    .tab, .home, .me, .master, .tuesday, .approval, .profiles, .colo, .stripe, .upload, .calendar, .expired{ margin: 12px; }
    .list, table{ font-size: .95rem; }
  }
  
  /* -------- Color helpers (retain legacy accents) -------- */
  .text-muted{ color: var(--muted); }
  .badge{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius: 999px; font-weight:700; border:1px solid var(--border); background:#fff; }
  .badge.success{ color: var(--success); border-color: rgba(22,163,74,.25); background: rgba(22,163,74,.06); }
  .badge.warn{ color: var(--warning); border-color: rgba(245,158,11,.25); background: rgba(245,158,11,.08); }
  .badge.info{ color: var(--brand); border-color: rgba(30,58,138,.25); background: rgba(14,165,233,.10); }
  .badge.gold{ color: var(--accent); border-color: rgba(205,151,0,.25); background: rgba(255,214,102,.14); }
  
  /* -------- Tabs within tables (optional) -------- */
  th.sortable{ cursor: pointer; }
  .sort-indicator{ opacity:.6; margin-left:6px; font-size:.9em; }
  
  /* Maintain specific styles you already rely on */
  .disposition-report-table > tr > *:nth-child(8){ background-color: rgb(128, 204, 255); }
  .disposition-report-table > tr > *:nth-child(9){ background-color: rgb(138, 255, 196); }
  
  /* Align with existing widths */
  .list-timeline{ max-width: calc(100vw - 50px); }
  .sidebar.active + .main-content .list-timeline{ max-width: calc(100vw - 305px); }
  
  /* Keep your select dropdown z-index */
  .select-dropdown{ z-index: 10000 !important; }

  /* === Micro-tweaks for PDC+ (append to end of index.modern.css) === */

/* 1) Better keyboard focus (only when tabbing) */
:root { --focus: 0 0 0 3px rgba(14,165,233,.35); }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none;
  box-shadow: var(--focus);
  border-color: var(--ring);
  border-radius: 12px;
}

/* 2) Checkbox / radio match brand */
input[type="checkbox"], input[type="radio"] { accent-color: var(--brand-2); }

/* 3) Hit-target padding when labels wrap checkboxes */
label > input[type="checkbox"], label > input[type="radio"] { margin-right: 8px; }
label { line-height: 1.2; }

/* 4) Truncation utilities */
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.line-clamp-2, .line-clamp-3 {
  display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
}
.line-clamp-2 { -webkit-line-clamp: 2; }
.line-clamp-3 { -webkit-line-clamp: 3; }

/* 5) Alignment helpers for dense tables */
.col-num { text-align: right; font-variant-numeric: tabular-nums; }
.col-nowrap { white-space: nowrap; }
.col-muted { color: var(--muted); }

/* 6) Small/Large button sizes (inherits your existing .btn styles) */
.btn-sm, button.btn-sm { padding: 6px 10px; border-radius: 10px; font-weight: 700; }
.btn-lg, button.btn-lg { padding: 12px 16px; border-radius: 14px; font-weight: 800; }

/* 7) Tiny, consistent icon-button variant */
.btn-icon { width: 36px; height: 36px; display:inline-flex; align-items:center; justify-content:center; padding:0; }

/* 8) Compact inputs for table filters */
.input-sm, select.input-sm { padding: 6px 8px; border-radius: 10px; }

/* 9) Subtle card headers (use on section titles inside cards) */
.card-title { font-weight: 800; letter-spacing: .2px; margin: 0 0 6px 0; }

/* 10) Tooltip (drop-in: add .tooltip to any element and a data-tip attr) */
.tooltip { position: relative; cursor: help; }
.tooltip:after {
  content: attr(data-tip);
  position: absolute; left: 50%; transform: translateX(-50%) translateY(8px);
  background:#111827; color:#fff; font-size: .82rem; line-height:1.1;
  padding: 6px 8px; border-radius: 8px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease;
  box-shadow: 0 6px 18px rgba(2,6,23,.25);
}
.tooltip:hover:after { opacity: 1; transform: translateX(-50%) translateY(4px); }

/* 11) Toast (simple, fixed top-right) */
.toast {
  position: fixed; top: 14px; right: 14px; z-index: 5000;
  background:#111827; color:#fff; padding: 10px 14px; border-radius: 12px;
  box-shadow: 0 12px 30px rgba(2,6,23,.25);
}
.toast.success { background: #166534; }
.toast.warn { background: #92400e; }
.toast.error { background: #991b1b; }

/* 12) Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* 13) Print: hide chrome, keep content legible */
@media print {
  .sidebar, header, #user-info, .pagination-controls { display:none !important; }
  body { background:#fff; }
  .card, .panel, .list, table { box-shadow:none !important; border:1px solid #000 !important; }
  th { position: static !important; }
}

/* 14) Optional high-contrast mode toggle:
   add data-contrast="high" on <html> or <body> when needed */
:root[data-contrast="high"]{
  --border: #cbd5e1; --brand: #0f172a; --brand-2:#0ea5e9;
}
:root[data-contrast="high"] .sidebar nav li.selected { outline-color: #0ea5e9; }

/* =============================
   PDC+ Header – refined compact version
   Same height, more polish.
   ============================= */

   header{
    position: sticky;
    top: 0;
    z-index: 80;
    background: rgba(255,255,255,0.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 4px 12px rgba(2,6,23,.06);
    padding: 5px 16px 5px 16px; /* reduced padding to preserve original height */
    height: auto;
  }
  
  /* Title row */
  header h1{
    margin: 0;
    font-weight: 900;
    font-size: clamp(1.2rem, 2vw, 1.6rem);
    letter-spacing: .015em;
    display:flex;
    align-items:center;
    gap:.5rem;
  }
  
  header h1 a{ text-decoration:none; color:inherit; }
  header h1 a:hover{ text-decoration:underline; text-underline-offset:3px; }
  
  /* Icon next to title (optional) */
  header > a > i{
    color: var(--brand);
    font-size: 1.25rem;
    transition: opacity .2s ease, transform .1s ease;
  }
  header > a:hover > i{
    transform: translateY(-1px);
    opacity: .9;
  }
  
  /* Tabs row – same vertical space, modern look */
  header nav{
    display:flex;
    align-items:center;
    gap:4px;
    padding: 2px 4px;
    margin: 4px -4px 0 -4px;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    background: #fff;
  }
  
  header nav a{
    padding: 8px 10px;
    border-radius:8px;
    font-weight:700;
    font-size:.92rem;
    letter-spacing:.02em;
    color:#475569;
    text-decoration:none;
    transition: background .15s ease, color .15s ease;
  }
  
  header nav a:hover{
    background:#f1f5f9;
    color:var(--brand);
  }
  
  header nav a.selected{
    background:linear-gradient(180deg,#fff,#f1f5f9 90%);
    color:var(--brand);
    border-bottom:2px solid var(--brand-2);
    margin-bottom:-1px; /* keeps total height consistent */
  }
  
  /* User info pill (same vertical footprint) */
  #user-info{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:.5rem;
    padding: 4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.85);
    border:1px solid var(--border);
    box-shadow:0 2px 6px rgba(2,6,23,.04);
  }
  
  #user-circle{
    width:30px; height:30px;
    border:2px solid #e2e8f0;
    border-radius:999px;
    background-size:cover;
    background-position:center;
  }
  
  #user-text{ font-weight:700; font-size:.9rem; color:var(--text); }
  #user-email{ color:var(--muted); font-size:.8rem; }
  
  /* Keep dropdown styling light */
  #user-menu{
    background:#fff;
    border:1px solid var(--border);
    border-radius:12px;
    box-shadow:0 16px 40px rgba(2,6,23,.16);
    padding:8px 10px;
  }
  
  @media (max-width: 900px){
    header{ padding:8px 12px 0 12px; }
    #user-info{ display:none; }
  }

  
/* =====================================
   PDC+ Filter/Search – force selectors (no HTML changes)
   Targets:
     - labels with for^="project-day-"  (Procurement / Pre-Con / ...)
     - .search-input                     (the Search box)
     - spacing of the row around them
   ===================================== */

/* 1) Put the immediate controls row on a single, tidy line when possible */
.home h3 + *:not(button) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
  }
  
  /* 2) Fancy chip-style project-stage filters */
  label[for^="project-day-"]{
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px 8px 36px;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: background .15s ease, border-color .15s ease, transform .02s ease;
  }
  label[for^="project-day-"]:hover{ background:#f8fafc; }
  
  /* Visually hide the native checkbox without breaking accessibility */
  label[for^="project-day-"] > input[type="checkbox"]{
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  
  /* Custom checkbox box */
  label[for^="project-day-"] > span::before{
    content:"";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px; height: 18px;
    border-radius: 6px;
    border: 1.5px solid var(--border);
    background: #fff;
    box-shadow: inset 0 0 0 0 rgba(14,165,233,0);
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
  }
  
  /* Checked state */
  label[for^="project-day-"] > input[type="checkbox"]:checked + span::before{
    background: var(--brand-2);
    border-color: var(--brand-2);
    box-shadow: inset 0 0 0 3px #fff;
  }
  
  /* 4) Small separators / labels */
  .muted-label{ color: var(--muted); font-weight: 800; }
  
  /* 5) Keep icon-flag cluster tidy if present after Search */
  img.detail-flag{ filter: saturate(1.1); opacity:.9; }
  label[for^="cbs-1-"]{ display:inline-flex; align-items:center; gap:6px; padding:6px 8px; border-radius:8px; }
  label[for^="cbs-1-"]:hover{ background:#f8fafc; }
  
  /* 6) Responsive: stack cleanly */
  @media (max-width: 700px){
    .home h3 + *:not(button){ gap: 8px; }
    .search-input{ min-width: 100% !important; }
  }
  
  
/* =====================================
   PDC+ – Search + My Deals + $ icons + My Notes (row styling)
   No HTML changes required. Resilient selectors for common id/for names.
   ===================================== */

/* Scope: the element directly after the section heading on the Projects page */
.home h3 + *:not(button){
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
  }
  
  /* --- Search box --- */
  input[type="search"] {
    padding: 10px 12px 10px 40px !important;
    min-width: 280px;
    max-width: 38vw;
    border-radius: 12px !important;
    border: 1px solid var(--border) !important;
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'><circle cx='11' cy='11' r='8'/><path d='m21 21-3.5-3.5'/></svg>") no-repeat 12px 50% !important;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: box-shadow .15s ease, border-color .15s ease;
  }
  input[type="search"]:focus {
    outline: none;
    border-color: var(--ring) !important;
    box-shadow: 0 0 0 4px rgba(125,211,252,.35);
  }
  
  /* --- Chip-style checkboxes for 'My Deals' and 'My Notes' --- */
  /* Pattern 1: input#id + label[for=id] */
  input[type="checkbox"][id*="list-checkbox"] + label,
  input[type="checkbox"][id="list-my-notes"] + label,
  input[type="checkbox"][id="list-hide-timeline"] + label{
    display:inline-flex; align-items:center; gap:8px;
    padding: 8px 12px;
    border:1px solid var(--border);
    background:#fff;
    border-radius:999px;
    font-weight:800;
    color:var(--text);
    cursor:pointer;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: background .15s ease, border-color .15s ease;
  }
  /* Pattern 2: label wraps input */
  label[for*="list-checkbox"],
  label[for="list-my-notes"],
  label[for="list-hide-timeline"] {
    display:inline-flex; align-items:center; gap:8px;
    padding: 8px 12px;
    border:1px solid var(--border);
    background:#fff;
    border-radius:999px;
    font-weight:800;
    color:var(--text);
    cursor:pointer;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: background .15s ease, border-color .15s ease;
  }
  /* Hide the native checkbox inside labels, preserve a11y */
  label[for="list-checkbox"] input[type="checkbox"],
  label[for="list-my-notes"] input[type="checkbox"],
  label[for="list-hide-timeline"] input[type="checkbox"]{
    position:absolute; opacity:0; pointer-events:none;
  }

  label[for*="list-row-note"] {
    border-radius: 12px;
  }
  
  /* Custom tick indicator (works for both patterns) */
  input[type="checkbox"][id="list-checkbox"]:checked + label,
  input[type="checkbox"][id="list-my-notes"]:checked + label,
  label[for*="list-checkbox"]:has(input[type="checkbox"]:checked),
  label[for="list-my-notes"]:has(input[type="checkbox"]:checked),
  label[for="list-hide-timeline"]:has(input[type="checkbox"]:checked){
    border-color: rgba(14,165,233,.45);
    background: linear-gradient(180deg,#ffffff,#f1f5f9 90%);
    box-shadow: 0 2px 8px rgba(2,6,23,.06);
  }
  
  /* Add a square check before the text for wrapped labels */
  label[for*"list-checkbox"]::before,
  label[for="list-my-notes"]::before,
  label[for="list-hide-timeline"]::before{
    content:"";
    width:18px; height:18px;
    border-radius:6px;
    border:1.5px solid var(--border);
    background:#fff;
    margin-right:2px;
  }
  label[for*="list-checkbox"]:has(input[type="checkbox"]:checked)::before,
  label[for="list-my-notes"]:has(input[type="checkbox"]:checked)::before,
  label[for="list-hide-timeline"]:has(input[type="checkbox"]:checked)::before{
    background: var(--brand-2);
    border-color: var(--brand-2);
    box-shadow: inset 0 0 0 3px #fff;
  }
  
  /* --- Currency flag icons group --- */
  img[src*="$"], /* fallback if filenames have $ */
  img.detail-flag{
    width: 22px; height: 22px;
    object-fit: contain;
    margin: 0 2px;
    background: #fff;
    padding: 3px;
    border: 1px solid var(--border);
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: transform .06s ease, box-shadow .15s ease;
  }
  img.detail-flag:hover{
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(2,6,23,.12);
  }
  
  /* Space the icon cluster nicely */
  .flag-cluster,
  .flags{
    display:inline-flex; align-items:center; gap:6px;
    padding: 4px 6px;
    border-radius: 8px;
    background: transparent;
  }
  
  /* Keep everything neat on narrow screens */
  @media (max-width: 640px){
    .home h3 + *{ gap: 8px; }
    input[type="search"],
    input[type="text"]{ min-width: 100%; max-width: 100%; }
  }
  

  /* =====================================
   PDC+ – Bottom Forms (no HTML changes)
   Targets existing markup in Custom Additions.
   ===================================== */

/* Each line becomes a tidy responsive card */
.custom-events-line{
    grid-template-columns: repeat(12, 1fr);
    gap: 12px 16px;
    align-items: center;
    padding: 10px 12px;
    margin: 8px 0 14px;
    background: linear-gradient(180deg,#ffffff,#f8fafc 85%);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow);
  }
  
  /* Labels act as fields */
  .custom-events-line > label{
    grid-column: span 4;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    color: var(--text);
  }
  
  /* Mid + small breakpoints */
  @media (max-width: 1100px){ .custom-events-line > label{ grid-column: span 6; } }
  @media (max-width: 720px){
    .custom-events-line{ grid-template-columns: 1fr; }
    .custom-events-line > label{ grid-column: 1 / -1; }
  }
  
  /* Inputs / selects / textareas */
  .custom-events-line input[type="text"],
  .custom-events-line input[type="search"],
  .custom-events-line input[type="number"],
  .custom-events-line input[type="email"],
  .custom-events-line input[type="url"],
  .custom-events-line select,
  .custom-events-line textarea{
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background:#fff;
    width: min(100%, 480px);
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .custom-events-line input:focus,
  .custom-events-line select:focus,
  .custom-events-line textarea:focus{
    outline: none;
    border-color: var(--ring);
    box-shadow: 0 0 0 4px rgba(125,211,252,.30);
  }
  
  /* Your select wrappers already exist – just refine them */
  .custom-events-line .select-wrapper{ display:inline-flex; align-items:center; }
  .custom-events-line .select-wrapper select{
    min-width: 240px; height: 38px; border-radius: 10px;
  }
  
  /* Chip checkboxes: “Trade Area” + “Market Area” (present in Projects row) */
  .custom-events-line label[for="project-folder-null"],
  .custom-events-line label[for="project-market-null"]{
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background:#fff;
    box-shadow: 0 1px 2px rgba(2,6,23,.04);
    cursor: pointer;
  }
  .custom-events-line label[for="project-folder-null"] input[type="checkbox"],
  .custom-events-line label[for="project-market-null"] input[type="checkbox"]{
    width: 16px; height: 16px; accent-color: var(--brand-2);
  }
  
  /* “Add” (+) button pill */
  .custom-events-line > button[title="Add"]{
    grid-column: span 1;
    width: 36px; height: 36px;
    display:inline-flex; align-items:center; justify-content:center;
    border-radius: 999px;
    background: var(--brand); color:#fff;
    border: 1px solid rgba(255,255,255,.35);
    box-shadow: 0 6px 14px rgba(2,6,23,.14);
    transition: transform .05s ease, filter .15s ease;
  }
  .custom-events-line > button[title="Add"]:hover{ filter: brightness(1.06); }
  .custom-events-line > button[title="Add"]:active{ transform: translateY(1px); }
  
  /* The single-line Tenants block uses the same grid; give its field more space */
  div.custom-events-line > label{ grid-column: span 6; }
  @media (max-width: 720px){ div.custom-events-line > label{ grid-column: 1 / -1; } }
  
  /* Helper under the Lease section */
  .description-div{ color: var(--muted); font-weight: 700; margin: 6px 2px 10px; }
  
  .task-td .ce-wrapper {
    width: calc(100% - 43px) !important;
  }

  .task-td select {
    width: 20px;
    padding-top: 8px;
    padding-bottom: 8px;
    border-radius: 0 12px 12px 0;
  }

  .task-td .ce {
    border-radius: 12px 0 0 12px;
  }

  .reports-table textarea {
    height: initial;
  }

  header > nav {
    margin-bottom: -5px;
  }

  .list-row-summary > a > div {
    max-height: 300px;
    overflow: auto;
  }

  /** END MODERN UPGRADES **/

  /* ================================
   REC Dashboard v2 (append-only)
   Namespaced: rd-*
   ================================ */

:root{
    --rd-navy: #153a59;
    --rd-navy-2: #1d4466;
    --rd-gold: #CD9700;
    --rd-card: #ffffff;
    --rd-sky: #eef4fa;
    --rd-border: #d9e2ec;
    --rd-text: #102033;
    --rd-muted: #6b7a8c;
    --rd-warn: #e11d2a;
    --rd-shadow: 0 8px 24px rgba(16,32,50,.08);
    --rd-radius: 16px;
  }
  
  /* ---------- Layout (inside main only) ---------- */
  .rd-grid{
    display: grid;
    grid-template-columns: 300px 1fr 300px;
    gap: 24px;
    max-width: 1300px;
    margin: 0 auto;
    padding: 16px 16px 24px;
  }
  
  /* Bottom row spans full width */
  .rd-bottom{
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 24px;
  }

  .rd-top{
    grid-column: 1 / -1;
  }

  .rd-top h3 {
    margin: 0 0 10px;
    text-decoration: underline;
  }

  .rd-top textarea {
    width: calc(100% - 24px);
    min-height: 70px;
  }
  
  /* ---------- Left KPIs ---------- */
  .rd-counter{
    background: var(--rd-navy);
    color: #eaf2ff;
    border: 2px solid rgba(255,255,255,.12);
    border-radius: 18px;
    box-shadow: var(--rd-shadow);
    padding: 18px 22px;
    width: 240px;
    margin-bottom: 5px;
  }
  .rd-counter .rd-title{ font-size: 22px; font-weight: 800; }
  .rd-counter .rd-count{ font-size: 44px; font-weight: 900; line-height: 1; margin-top: 8px; }
  
  .rd-pill{
    background: var(--rd-navy-2);
    color: #fff;
    border: 2px solid rgba(255,255,255,.14);
    width: 160px;
    padding: 14px 18px;
    border-radius: 14px;
    box-shadow: var(--rd-shadow);
    display: grid;
    place-items: center;
    gap: 6px;
    font-weight: 800;
    letter-spacing: .02em;
    margin-bottom: 5px;
  }
  
  .rd-arrow{
    height: 110px;
    border-right: 4px dotted #3b5973;
    border-bottom: 4px dotted #3b5973;
    width: 160px;
    margin: -4px 0 0 60px;
  }
  
  /* ---------- Center: REC Outlook ---------- */
  .rd-panel{
    background: var(--rd-card);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    padding: 8px 0 14px;
  }
  .rd-panel h2{
    margin: 10px 0 6px;
    text-align: center;
    font-size: 22px;
    color: var(--rd-text);
    letter-spacing: .02em;
  }
  
  .rd-table{
    width: 100%;
    border-collapse: collapse;
  }
  .rd-table thead th{
    background: var(--rd-gold);
    color: #fff;
    padding: 12px 14px;
    font-weight: 800;
    letter-spacing: .06em;
    text-align: center;
  }
  .rd-table tbody td{
    background: var(--rd-sky);
    color: var(--rd-text);
    padding: 16px 18px;
    border: 6px solid #fff;
    text-align: center;
    font-weight: 800;
  }

  .rd-timeline {
    grid-column-start: 1;
    grid-column-end: 4;
  }

  .rd-timeline .timeline {
    height: 350px;
    max-height: 350px;
    width: 100%;
  }

  .rd-timeline h4, .rd-timeline label[for="actualtimeline-adder"],
  .rd-timeline .timeline-changes, .rd-timeline label[for="timeline-date-before-actual"] {
    display: none !important;
  }
  
  /* ---------- Right: My Projects (formerly “sidebar”) ---------- */
  .projects-panel{
    background: var(--rd-card);
    color: var(--rd-text);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    padding: 16px 18px 42px;
    position: relative;
    max-height: 400px;
    overflow: auto;
  }
  .projects-panel h3{
    margin: 0 0 10px;
    text-decoration: underline;
  }
  .rd-list{
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
    font-weight: 800;
  }
  .rd-list li::before{
    content: "o";
    margin-right: 8px;
    opacity: .85;
  }
  .rd-list .rd-warn{ color: var(--rd-warn); }
  .projects-panel .rd-footnote{
    position: absolute;
    bottom: 12px; left: 18px; right: 18px;
    text-align: center;
    color: var(--rd-muted);
    font-weight: 800;
    font-size: 13px;
  }
  
  /* ---------- Bottom filter cards ---------- */
  .rd-card{
    background: var(--rd-card);
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    padding: 12px 16px;
    max-height: 300px;
    overflow: auto;
  }
  .rd-minititle{ font-size: 18px; text-decoration: underline; margin: 0 0 6px; }
  .rd-helper{ color: var(--rd-muted); font-weight: 700; margin-bottom: 8px; }
  
  .rd-radio{ display: grid; gap: 10px; }
  .rd-radio label{ display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--rd-text); }
  .rd-radio input[type="radio"]{ accent-color: var(--rd-navy); }
  .rd-selectall{
    color: #004b55;
    background: rgba(0,194,214,.12);
    border: 2px solid rgba(0,194,214,.36);
    border-radius: 6px;
    padding: 2px 6px;
  }
  
  /* ---------- Responsive ---------- */
  @media (max-width: 1100px){
    .rd-grid{ grid-template-columns: 260px 1fr 280px; }
    .rd-counter{ width: 100%; }
  }
  @media (max-width: 920px){
    .rd-grid{ grid-template-columns: 1fr; }
    .rd-bottom{ grid-template-columns: 1fr; }
    .rd-arrow{ display: none; }
  }
  
  /* =========================================================
   PDC+ GPT page – append-only styles
   Targets the structure you shared; no <main> overrides.
   ========================================================= */

/* ---- theme tokens (override safely if you already have these) ---- */
:root{
    --gpt-ink: #0f172a;
    --gpt-muted: #6b7280;
    --gpt-border: #dbe3ee;
    --gpt-surface: #ffffff;
    --gpt-surface-2: #f6f9fc;
    --gpt-rail-top: #173b64;
    --gpt-rail-bot: #0f2f49;
    --gpt-accent: #0ea5e9;
    --gpt-primary: #1e3a8a;
    --gpt-primary-2: #0f2f49;
    --gpt-shadow: 0 8px 24px rgba(16,32,50,.08);
    --gpt-radius: 14px;
  }
  
  /* ---- overall layout for the chat area ---- */
  .approval.gpt{
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 16px;
    align-items: start;
  }
  
  /* ---- left rail (history) ---- */
  .approval.gpt .gpt-history{
    overflow: auto;
    background: linear-gradient(180deg, var(--gpt-rail-top), var(--gpt-rail-bot) 70%);
    color: #e7f0fa;
    border-radius: 10px;
    padding: 10px 8px;
    border-right: 1px solid rgba(255,255,255,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  }
  
  .approval.gpt .gpt-history ul{
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .approval.gpt .gpt-history li{
    display: block;
    padding: 10px 12px;
    margin: 6px 0;
    border-radius: 10px;
    color: #e6f0fa;
    font-weight: 700;
    line-height: 1.15;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 1px 0 rgba(0,0,0,.05);
    cursor: pointer;
    transition: transform .05s ease, background .15s ease, border-color .15s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .approval.gpt .gpt-history li:hover{
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.22);
  }
  .approval.gpt .gpt-history li.selected{
    background: #ffffff;
    color: var(--gpt-rail-bot);
    border-color: #ffffff;
    box-shadow: var(--gpt-shadow);
    transform: translateY(-1px);
  }
  
  /* header-ish first item style (e.g., “New Chat”) */
  .approval.gpt .gpt-history li:first-child{
    font-size: .92rem;
    letter-spacing: .02em;
    opacity: .95;
  }
  
  /* pretty scrollbar in the rail */
  .approval.gpt .gpt-history::-webkit-scrollbar{ width: 10px; }
  .approval.gpt .gpt-history::-webkit-scrollbar-thumb{
    background: rgba(255,255,255,.35);
    border-radius: 999px;
  }
  
  /* ---- right column (chat/compose) ---- */
  .approval.gpt .gpt-chat label{
    display: block;
    margin-bottom: 10px;
  }
  .approval.gpt .gpt-chat label > span{
    display: block;
    font-weight: 800;
    color: var(--gpt-ink);
    letter-spacing: .02em;
    margin-bottom: 6px;
  }
  
  /* textarea */
  #gpt-input{
    width: 100%;
    min-height: 160px;
    background: var(--gpt-surface);
    border: 1px solid var(--gpt-border);
    border-radius: var(--gpt-radius);
    box-shadow: var(--gpt-shadow);
    padding: 12px 14px;
    font: inherit;
    color: var(--gpt-ink);
    transition: box-shadow .15s ease, border-color .15s ease, background .15s ease;
  }
  #gpt-input:focus{
    outline: none;
    border-color: var(--gpt-accent);
    box-shadow: 0 0 0 4px rgba(14,165,233,.25);
    background: #fff;
  }
  
  /* submit button */
  .approval.gpt .gpt-chat > button:not(.gpt-delete){
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 14px;
    margin-top: 6px;
    border-radius: 999px;
    border: 1px solid #0c2543;
    background: linear-gradient(180deg, var(--gpt-primary), var(--gpt-primary-2));
    color: #fff;
    font-weight: 800;
    letter-spacing: .02em;
    box-shadow: 0 8px 16px rgba(2,6,23,.18);
    cursor: pointer;
    transition: transform .05s ease, filter .15s ease, box-shadow .15s ease;
  }
  .approval.gpt .gpt-chat > button:not(.gpt-delete):hover{
    filter: brightness(1.05);
    box-shadow: 0 10px 22px rgba(2,6,23,.22);
  }
  .approval.gpt .gpt-chat > button:not(.gpt-delete):active{ transform: translateY(1px); }
  .approval.gpt .gpt-chat > button:not(.gpt-delete):focus-visible{
    outline: none;
    box-shadow: 0 0 0 4px rgba(14,165,233,.28), 0 8px 16px rgba(2,6,23,.18);
  }
  
  /* answer card */
  .approval.gpt .gpt-answer{
    margin-top: 14px;
    background: var(--gpt-surface-2);
    border: 1px solid var(--gpt-border);
    border-radius: var(--gpt-radius);
    box-shadow: var(--gpt-shadow);
    min-height: 120px;
    padding: 14px;
    color: var(--gpt-ink);
  }
  
  /* delete button (when shown) */
  .approval.gpt .gpt-delete{
    margin-top: 10px;
    background: #fff;
    border: 1px solid #ef4444;
    color: #ef4444;
    border-radius: 10px;
    padding: 8px 10px;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, transform .05s ease;
  }
  .approval.gpt .gpt-delete:hover{
    background: #fef2f2;
    transform: translateY(-1px);
  }
  .gpt-delete i {
    color: #ef4444;
  }

  /*.gpt-chat {
    height: 100vh !important;
    overflow: hidden;
  }*/
  
  /* ---- responsive ---- */
  @media (max-width: 980px){
    .approval.gpt{
      grid-template-columns: 220px 1fr;
      gap: 12px;
    }
  }
  @media (max-width: 760px){
    .approval.gpt{
      grid-template-columns: 1fr;
    }
    .approval.gpt .gpt-history{
      position: static;
      height: auto;
    }
  }
  
  /* ===== GPT page tweaks: remove rail/content gap & show more text ===== */

/* 1) Remove the space between the left rail and the chat content */
.approval.gpt{ gap:0 !important; }

.approval.gpt .gpt-history{
  width: calc(100% - 20px);
  margin-right:0 !important;
  border-right: 1px solid rgba(255,255,255,.18); /* subtle divider */
}

/* keep things comfy but visually tight */
.approval.gpt .gpt-chat{ padding-left:12px; overflow: hidden; }

/* 2) Show more of the conversation topic in the history list
      (wrap to 2 lines with a neat clamp instead of a single-line ellipsis) */
.approval.gpt .gpt-history li{
  white-space: normal !important;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.25;
  min-height: 2.5em;           /* ensures room for 2 lines */
  font-weight: 700;
}

/* Selected item gets a bit more room so 2 lines breathe on the white card */
.approval.gpt .gpt-history li.selected{ min-height: 2.6em; }

/* 3) Give the rail a bit more width on large screens so titles fit better */
@media (min-width: 1280px){
  .approval.gpt{
    grid-template-columns: 320px minmax(0,1fr) !important;
  }
}

/* 4) Make the very first item (“New Chat”) still look like a header */
.approval.gpt .gpt-history li:first-child{
  -webkit-line-clamp: 1;
  min-height: 0;
}

/* 5) Slightly thinner inner padding on rail items to fit more characters */
.approval.gpt .gpt-history li{ padding: 9px 10px; }


.approval.gpt {
    height: calc(100vh - 107px);
    overflow: hidden;
}

.approval.gpt .gpt-history {
    position: static;
    height: calc(100% - 24px)
}

.approval.gpt .gpt-chat {
    display: flex;
    flex-direction: column;
    max-height: calc(100% - 4px);
}

.approval.gpt .gpt-answer {
    overflow: auto;
}

.approval.gpt .gpt-answer th {
    top: -12px;
}

.approval.gpt button:disabled {
    background: gray !important;
    border: gray !important;
    cursor: default !important;
}