/* Property Tax Drop brand layer. Colors/fonts come from propertytaxdrop.com; assets are self-hosted. */
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/ptd/Outfit-latin-ext-variable.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/ptd/Outfit-latin-variable.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
    --ptd-primary: #3f65af;
    --ptd-secondary: #31b44b;
    --ptd-header: #656565;
    --ptd-bg: #f7f7f7;
}
body, input, button, select, textarea { font-family: 'Outfit', Helvetica, Arial, sans-serif; }

/* Modal headers: PTD blue by default. Page-specific rules are more specific and also use this blue. */
.modal-header { background-color: #3f65af; color: #fff; }
.modal-header .close, .modal-header button.close { color: #fff; opacity: .9; text-shadow: none; }
.modal-header .modal-title, .modal-header h4, .modal-header h5 { color: #fff; }
.bg-primary, .modal-header.bg-primary { background-color: #3f65af !important; }

/* Destructive actions (delete / remove confirmations) stay red; everything else uses PTD blue. */
#DeletePropertyModal .btn-primary,
#DeleteCompModel .btn-primary,
#DeleteAdjustmentTemplateModal .btn-primary,
#btnDeleteOwnersForm,
#RemoveRemindersBtn,
#DeleteDocument_Modal .selectYes,
#DeleteProperty {
    background: #d9534f !important;
    background-image: none !important;
    border-color: #d43f3a !important;
    color: #fff !important;
}
#DeletePropertyModal .btn-primary:hover,
#DeleteCompModel .btn-primary:hover,
#DeleteAdjustmentTemplateModal .btn-primary:hover,
#btnDeleteOwnersForm:hover,
#RemoveRemindersBtn:hover,
#DeleteDocument_Modal .selectYes:hover,
#DeleteProperty:hover {
    background: #c9302c !important;
    border-color: #ac2925 !important;
}

/* Table headers: PTD blue with white text (calendars/date pickers excluded). */
table:not(.table-condensed):not(.ui-datepicker-calendar) > thead > tr > th,
table:not(.table-condensed):not(.ui-datepicker-calendar) > thead > tr > td,
table.dataTable > thead > tr > th,
table.dataTable > thead > tr > td,
.dataTables_scrollHead table thead th,
.dataTables_scrollHeadInner table thead th,
.custm__table table thead tr th,
.custm__table1 table thead tr th,
.SiteSettings .custm__table table thead tr th,
#ApplicationGrid thead,
#ApplicationGrid thead th,
#UasmStatusGrid.dataTable thead tr th {
    background-color: #3f65af !important;
    color: #fff !important;
    border-color: rgba(255, 255, 255, .25) !important;
}
/* Sort arrows: local white icons (the old ones were dark images hosted on datatables.net) */
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc {
    background-repeat: no-repeat !important;
    background-position: center right 6px !important;
    background-size: 10px 16px !important;
}
table.dataTable thead .sorting { background-image: url('/images/ptd/sort_both.svg') !important; }
table.dataTable thead .sorting_asc { background-image: url('/images/ptd/sort_asc.svg') !important; }
table.dataTable thead .sorting_desc { background-image: url('/images/ptd/sort_desc.svg') !important; }
table.dataTable thead .sorting_disabled { background-image: none !important; }

/* Delete/remove buttons: red everywhere, matched by their handler so page rules (including ID-based
   gradients) can't turn them blue. ":not(#_)" only raises specificity above those ID rules. */
body .btn[onclick*="elete" i]:not(.btn-delete):not(.btn-cancel):not(#_):not(#__),
body .btn[onclick*="emove" i]:not(.btn-delete):not(.btn-cancel):not(#_):not(#__),
body button#btnDeleteOwnersForm:not(#_):not(#__),
body button#DeleteProperty:not(#_):not(#__),
body #DeletePropertyModal .btn-primary:not(#_):not(#__),
body #DeleteCompModel .btn-primary:not(#_):not(#__),
body #DeleteAdjustmentTemplateModal .btn-primary:not(#_):not(#__),
body #DeleteDocument_Modal .selectYes:not(#_):not(#__) {
    background: #d9534f !important;
    background-image: none !important;
    border: 1px solid #d43f3a !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(217, 83, 79, .35) !important;
}
body .btn[onclick*="elete" i]:not(.btn-delete):not(.btn-cancel):not(#_):not(#__):hover,
body .btn[onclick*="emove" i]:not(.btn-delete):not(.btn-cancel):not(#_):not(#__):hover,
body button#btnDeleteOwnersForm:not(#_):not(#__):hover,
body button#DeleteProperty:not(#_):not(#__):hover,
body #DeletePropertyModal .btn-primary:not(#_):not(#__):hover,
body #DeleteCompModel .btn-primary:not(#_):not(#__):hover,
body #DeleteAdjustmentTemplateModal .btn-primary:not(#_):not(#__):hover,
body #DeleteDocument_Modal .selectYes:not(#_):not(#__):hover {
    background: #c9302c !important;
    border-color: #ac2925 !important;
}

/* ==========================================================================
   Button system (PTD)
   primary   = blue  #3f65af / hover #2f4d8c  (site.css: .btn-primary, .custm_btn_, .blue-btn ...)
   positive  = green #31b44b / hover #28963e  (approve, restore, non-destructive "Yes")
   danger    = red   #d9534f / hover #c9302c  (delete/remove/decline; block above + .ptd-danger)
   secondary = white, #555 text, #d9dae3 border, light-blue hover (cancel / close / never mind / reset / clear)
   Rules below use :is() + :not(#_) only to out-rank older ID-scoped page rules.
   ========================================================================== */

/* Secondary / cancel */
body :is(.btn-nevermind, .NeverMindBtn, .neverMind_btn, .theme-btn-default, .btnCancel.btn-cancel, .blue-outline-btn,
         .modal_close_btn, .outline_modal_btn, .ptd-secondary, .btn.btn-clear, .btn-secondary,
         .confirm_btns .btn_danger, .btn[style*="lightgrey" i],
         .btn-default:not(.custm_btn_):not(.blue-btn):not(.softRed-btn):not(.navbar-btn):not(.ChangeStatusBtn)):not(#_):not(#__) {
    background: #fff !important;
    background-image: none !important;
    border: 1px solid #d9dae3 !important;
    color: #555 !important;
    box-shadow: none !important;
}
body :is(.btn-nevermind, .NeverMindBtn, .neverMind_btn, .theme-btn-default, .btnCancel.btn-cancel, .blue-outline-btn,
         .modal_close_btn, .outline_modal_btn, .ptd-secondary, .btn.btn-clear, .btn-secondary,
         .confirm_btns .btn_danger, .btn[style*="lightgrey" i],
         .btn-default:not(.custm_btn_):not(.blue-btn):not(.softRed-btn):not(.navbar-btn):not(.ChangeStatusBtn)):not(#_):not(#__):is(:hover, :focus, :active) {
    background: #e8eef8 !important;
    border-color: #b9c9e6 !important;
    color: #3f65af !important;
}

/* Row icon buttons: edit / add / save = blue tint, cancel = neutral (delete icons stay red/pink) */
body :is(.edit_btn, .Edit_AdjustmentTemplate, .Edit_UserDetails, .Update_User,
         .setting_User .ResetPasswordBtn, .setting_User #Add_User,
         .document_settings #Edit, .document_settings #update, .document_settings #Add,
         .Filing_Period_Deadlines #Edit, .Filing_Period_Deadlines #update, .Filing_Period_Deadlines #Add,
         .AdjustmentTemplates_section #Edit, .AdjustmentTemplates_section #Add, .history_update_btn .btn-Update):not(#_):not(#__) {
    background: #e8eef8 !important;
    color: #3f65af !important;
    border: 1px solid #3f65af !important;
}
body :is(button#cancel, .delete_btn[title="Cancel" i], .ea-cancel-trigger, .Marketing_cancel):not(#_):not(#__) {
    background: #fff !important;
    color: #666 !important;
    border: 1px solid #d9dae3 !important;
}

/* Positive */
body :is(.ptd-positive, .btn-success, #confirm .btn_success.yes):not(#_):not(#__) {
    background: #31b44b !important;
    background-image: none !important;
    border: 1px solid #28963e !important;
    color: #fff !important;
    font-weight: 600;
}
body :is(.ptd-positive, .btn-success, #confirm .btn_success.yes):not(#_):not(#__):is(:hover, :focus, :active) {
    background: #28963e !important;
    border-color: #28963e !important;
}
/* The generic confirm dialog turns red when its message is about deleting/removing (see OpenConfirmDialog) */
body #confirm.confirm-danger .btn_success.yes:not(#_):not(#__) {
    background: #d9534f !important;
    border-color: #d43f3a !important;
}
body #confirm.confirm-danger .btn_success.yes:not(#_):not(#__):is(:hover, :focus, :active) {
    background: #c9302c !important;
    border-color: #ac2925 !important;
}

/* Danger: explicit marker for buttons whose handler name doesn't say delete/remove (decline, clear parcel id ...) */
body :is(.btn, .eq-btn).ptd-danger:not(#_):not(#__) {
    background: #d9534f !important;
    background-image: none !important;
    border: 1px solid #d43f3a !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(217, 83, 79, .35) !important;
}
body :is(.btn, .eq-btn).ptd-danger:not(#_):not(#__):is(:hover, :focus, :active) {
    background: #c9302c !important;
    border-color: #ac2925 !important;
}

/* Disabled: same hue, 55% opacity */
body .btn:is(:disabled, .disabled, [disabled]):not(#_) {
    opacity: .55 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* Outline primary (blue outline, fills on hover). Replaces legacy names that mixed a white fill with the
   primary gradient (unreadable text) or were gray. */
body :is(.green-outline-btn, .softRed-outline-btn, .ptd-outline):not(#_):not(#__) {
    background: #fff !important;
    background-image: none !important;
    border: 1px solid #3f65af !important;
    color: #3f65af !important;
    box-shadow: none !important;
}
body :is(.green-outline-btn, .softRed-outline-btn, .ptd-outline):not(#_):not(#__):is(:hover, :focus, :active) {
    background: #3f65af !important;
    border-color: #3f65af !important;
    color: #fff !important;
}

/* ------------------------------------------------------------------
   Text on a blue header is white (modal, card, table and accordion headers).
   ":not(#_)" only raises specificity above the older ID-based page rules.
   ------------------------------------------------------------------ */
body .modal-header:not(#_):not(#__),
body .card_layout .card_header:not(#_):not(#__),
body .accrordion_layout .notes_heading:not(#_):not(#__),
body :is(.sblm-header, .uasm-header):not(#_):not(#__) {
    color: #fff !important;
}
body .modal-header :is(h1, h2, h3, h4, h5, h6, .modal-title, p, span, i, b, strong, small, label, a, .fa, .glyphicon):not(.btn):not(#_):not(#__),
body .card_layout .card_header :is(h1, h2, h3, h4, h5, h6, p, span, i, b, strong, small, label, a, .fa, .glyphicon):not(.btn):not(#_):not(#__),
body .accrordion_layout .notes_heading :is(h1, h2, h3, h4, h5, h6, p, span, i, b, strong, small, label, a, .fa, .glyphicon):not(.btn):not(#_):not(#__),
body :is(.sblm-header, .uasm-header) :is(h1, h2, h3, h4, h5, h6, p, span, i, b, strong, small, label, a, div):not(.btn):not(#_):not(#__) {
    color: #fff !important;
}
body table:not(.table-condensed):not(.ui-datepicker-calendar) > thead :is(th, td) :is(a, span, div, label, i, b, strong, p, .fa):not(.btn):not(#_):not(#__) {
    color: #fff !important;
}
.ag-theme-quartz .ag-header-cell-label,
.ag-theme-quartz .ag-header-cell-text,
.ag-theme-quartz .ag-header-icon,
.ag-theme-quartz .ag-header-cell .ag-icon { color: #fff; }

/* ------------------------------------------------------------------
   Hover system: light PTD blue wherever the app highlights a row, menu item or tab
   ------------------------------------------------------------------ */
.table-hover > tbody > tr:not(.selected):hover > td,
.table-hover > tbody > tr:not(.selected):hover > th,
table.dataTable.hover > tbody > tr:not(.selected):hover > td,
table.dataTable.display > tbody > tr:not(.selected):hover > td,
table.dataTable > tbody > tr:not(.selected):hover > td { background-color: #e8eef8; }
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-menu > .active > a,
.multiselect-container > li > a:hover,
.list-group-item-action:hover,
.nav > li > a:hover,
.nav > li > a:focus { background-color: #e8eef8; color: #2f4d8c; }
.nav-tabs > li > a:hover { border-color: #e8eef8 #e8eef8 #dddddd; }
.ui-menu .ui-menu-item-wrapper.ui-state-active,
.ui-menu .ui-state-focus { background: #3f65af; border-color: #3f65af; color: #fff; }
a { color: #3f65af; }
a:hover, a:focus { color: #2f4d8c; }

/* ------------------------------------------------------------------
   Header: signed-in user chip + logout (avatar with initials, name, "Log out" pill)
   ------------------------------------------------------------------ */
.btn_logoutDiv.ptd-user {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 0;
    padding: 4px 6px 4px 4px;
    background: #fff;
    border: 1px solid #e3e8f2;
    border-radius: 999px;
    box-shadow: 0 1px 3px rgba(27, 42, 94, .08);
}
.ptd-user-avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1b2a5e 0%, #3f65af 100%);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .03em;
    line-height: 1;
}
.ptd-user-meta {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.15;
}
.ptd-user-label {
    font-size: 10px;
    font-weight: 500;
    color: #7a8499;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.ptd-user-name {
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 600;
    color: #1b2a5e;
}
.btn_logoutDiv .signout-btn.ptd-logout:not(#_) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    float: none !important;
    padding: 7px 14px !important;
    border: 1px solid #d9dae3;
    border-radius: 999px;
    background: #fff;
    color: #2b2b30 !important;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    transform: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn_logoutDiv .signout-btn.ptd-logout:not(#_) i {
    padding: 0 !important;
    font-size: 15px;
    color: #d9534f;
}
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):hover,
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):focus-visible {
    background: #fdefec;
    border-color: #d9534f;
    color: #c9302c !important;
    transform: none;
    text-decoration: none;
}
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):focus-visible {
    outline: 2px solid rgba(63, 101, 175, .8);
    outline-offset: 2px;
}

/* Mobile menu logout button: same look, full width */
body .logout-resp .btn_logout:not(#_):not(#__) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: calc(100% - 30px);
    margin: 6px 15px 10px;
    padding: 10px 14px;
    background: #fff !important;
    border: 1px solid #d9dae3 !important;
    border-radius: 999px !important;
    color: #2b2b30 !important;
    font-weight: 500;
    box-shadow: none !important;
}
body .logout-resp .btn_logout:not(#_):not(#__) i { padding: 0 !important; color: #d9534f; }
body .logout-resp .btn_logout:not(#_):not(#__):hover,
body .logout-resp .btn_logout:not(#_):not(#__):focus-visible {
    background: #fdefec !important;
    border-color: #d9534f !important;
    color: #c9302c !important;
    transform: none;
}

@media (max-width: 767px) {
    .ptd-user-label { display: none; }
    .ptd-user-name { max-width: 120px; font-size: 13px; }
    .btn_logoutDiv.ptd-user { padding-right: 12px; }
}

/* DataTables empty state: centered, roomy, muted (grids with their own empty-state markup keep it) */
table.dataTable tbody td.dataTables_empty {
    text-align: center !important;
    padding: 36px 16px !important;
    color: #6b7280;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: .2px;
}

/* DataTables loading state: spinner + friendly text, centered */
.ptd-dt-loading { display: inline-flex; align-items: center; justify-content: center; gap: 10px; color: #3f65af; }
.ptd-dt-loading i {
    width: 18px; height: 18px; border-radius: 50%;
    border: 2px solid rgba(63, 101, 175, .25); border-top-color: #3f65af;
    animation: ptd-dt-spin .8s linear infinite;
}
@keyframes ptd-dt-spin { to { transform: rotate(360deg); } }
div.dataTables_processing { text-align: center !important; }

/* One empty-state icon, centered inside the message wrapper (replaces per-page td::before icons) */
body table.dataTable td.dataTables_empty::before { content: none !important; }
.ptd-dt-empty-text::before { content: "\f0ce"; font-family: FontAwesome; display: block; font-size: 24px; margin-bottom: 8px; opacity: .45; }

/* Centering inside the pinned wrapper (loading + empty message) */
.ptd-dt-empty-msg { text-align: center !important; box-sizing: border-box; }
.ptd-dt-empty-msg > .ptd-dt-loading { display: flex; width: 100%; justify-content: center; align-items: center; }

/* Log out pill: no dark browser focus box after a click; keyboard users still get a rounded ring */
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):focus,
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):active {
    outline: none;
    box-shadow: none;
}
.btn_logoutDiv .signout-btn.ptd-logout:not(#_):focus-visible {
    outline: 2px solid rgba(63, 101, 175, .65);
    outline-offset: 2px;
    border-radius: 999px;
}
.logout-resp .signout-btn:focus:not(:focus-visible) { outline: none; box-shadow: none; }
