*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#e9ecef;color:#222}.app{display:flex;height:100vh}aside{width:210px;background:#c9d0d5;border-right:2px solid #777;padding:8px;overflow:auto}aside h2{font-size:18px;margin:8px 8px 12px}.module-title{font-size:11px;margin:14px 8px 4px;color:#555;text-transform:uppercase;font-weight:bold}aside a,.sidebtn{display:block;width:100%;padding:12px 10px;margin:3px 0;text-align:left;background:transparent;border:0;color:#111;text-decoration:none;font-size:14px;border-radius:4px}.active{background:linear-gradient(#f8b76b,#c87521)!important;color:white!important}.sidebtn{background:#47525c;color:white;cursor:pointer}main{flex:1;overflow:auto}.top{height:38px;background:#f8f8f8;border-bottom:1px solid #aaa;display:flex;justify-content:space-between;align-items:center;padding:0 12px}.toolbar{min-height:46px;background:#ddd;border-bottom:1px solid #999;display:flex;gap:5px;align-items:center;padding:6px;flex-wrap:wrap}.toolbar button,.form button,.smallbtn{border:1px solid #888;background:#f8f8f8;border-radius:3px;padding:7px 10px;cursor:pointer}.toolbar button:hover,.form button:hover,.smallbtn:hover{background:#fff}.summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;padding:10px;background:#f4f0dd;border-bottom:1px solid #aaa}.summary-card{background:white;border:1px solid #aaa;border-radius:6px;padding:9px}.summary-card b{display:block;font-size:21px}.summary-card span{font-size:12px;color:#555}.cards{display:flex;gap:6px;padding:8px;border-bottom:1px solid #aaa;overflow-x:auto;background:#f3f0dd}.card{min-width:170px;min-height:86px;border:1px solid #777;padding:6px;font-size:12px;cursor:pointer;border-radius:3px;box-shadow:0 1px 2px #aaa}.card:hover{outline:2px solid #555}.vacant{background:#bdf2bd}.rented{background:#ffd3a6}.reserved{background:#fff4a8}.maintenance{background:#ffb0b0}.open{background:#ffb0b0}.paid{background:#bdf2bd}.pending{background:#fff4a8}.panel{padding:12px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.grid{width:100%;border-collapse:collapse;background:white}.grid th{background:#54616b;color:white;position:sticky;top:0}.grid th,.grid td{border:1px solid #aaa;padding:7px;font-size:13px;vertical-align:top}.grid tr:hover{background:#f7fbff}.form{background:white;border:1px solid #aaa;padding:10px;margin-bottom:12px;display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px}.form input,.form select,.form textarea{padding:7px;border:1px solid #aaa;min-width:120px;width:100%}.form textarea{grid-column:span 2;min-height:36px}.login{display:grid;place-items:center;height:100vh;background:#34404b}.loginbox{background:white;padding:30px;border-radius:8px;width:330px;display:flex;flex-direction:column;gap:10px}.loginbox input,.loginbox button{padding:12px}.badge{padding:3px 8px;border-radius:10px;background:#eee;display:inline-block}.danger{color:#b00020}.muted{color:#666;font-size:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reportbox{background:white;border:1px solid #aaa;padding:12px;margin-bottom:12px}.search{margin-left:auto;padding:7px;border:1px solid #999;min-width:230px}@media(max-width:1000px){aside{width:160px}.summary{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}
.kpi-red{border-left:6px solid #c92828}.kpi-green{border-left:6px solid #159447}.kpi-yellow{border-left:6px solid #d9a100}.kpi-blue{border-left:6px solid #2878c9}.mini-actions{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.tab{padding:7px 10px;background:#eef;border:1px solid #99a;cursor:pointer}.status-open,.status-pending,.high,.urgent{background:#fff4a8}.status-closed,.approved,.completed{background:#bdf2bd}.bounced,.cancelled,.needs{background:#ffb0b0}.wide{grid-column:span 3}.right{text-align:right}.print-title{display:none}@media print{aside,.toolbar,.cards{display:none}.top{display:none}.summary{grid-template-columns:repeat(4,1fr)}.print-title{display:block}.panel{padding:0}.grid th{position:static}}
.bigbtn{padding:12px 16px;margin:4px;border:1px solid #777;background:linear-gradient(#fff,#d7dde2);border-radius:4px;cursor:pointer;font-weight:bold}.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;z-index:9999}.modalbox{background:#eee;border:2px solid #777;box-shadow:0 4px 20px #111;padding:18px;min-width:320px}.modalbox label{display:block;margin:10px 0}.x{float:right;border:0;background:#c44;color:white;border-radius:50%;width:26px;height:26px}.contract-wizard{grid-template-columns:repeat(4,minmax(160px,1fr));border-left:6px solid #2878c9}.booked{background:#c8ddff}.commercial{background:#ffe0b2}.residential{background:#d0ebff}.both{background:#e0e0e0}

.toolbar input.search{display:none!important}
.ajf-required-missing{
  border-color:#dc2626!important;
  box-shadow:0 0 0 2px rgba(220,38,38,.12)!important;
  background:#fff7f7!important;
}
.ajf-required-missing-label{
  color:#991b1b!important;
}

.summary.mini{grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0}.summary.mini .summary-card{padding:10px}.grid td .muted{font-size:11px}
/* AJF clear leasing/order layout */
.ajf-screen{background:#efe9d6;min-height:70vh}.contract-clean{display:block;background:transparent;border:0;padding:0}.ajf-block{background:white;border:1px solid #9a9a9a;margin:0 0 12px 0;padding:10px;border-left:6px solid #4c6678}.ajf-block h4{margin:0 0 10px;color:#263746}.form-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px}.form-grid label{font-size:12px;font-weight:bold;color:#333}.form-grid input,.form-grid select,.ajf-block textarea{margin-top:4px;width:100%;padding:7px;border:1px solid #999;background:#fff}.ajf-block textarea{min-height:70px}.savebar{position:sticky;bottom:0;background:#d7d9dc;border:1px solid #888;padding:8px;display:flex;gap:8px;justify-content:flex-end}.primary{background:linear-gradient(#fff7c5,#e0ad37)!important;border:1px solid #8a6a00!important;font-weight:bold}.cleared,.cash-paid{background:#bdf2bd}.pdc{background:#c8ddff}.returned{background:#ffe0b2}.voucher-print{background:white}.ajf-prompt{background:#f2f2f2}.ajf-prompt h3{margin-top:0}@media(max-width:1100px){.form-grid{grid-template-columns:repeat(2,1fr)}}
.side-link{cursor:pointer}.side-link:hover{background:#e5e9ec}.side-link.active{background:linear-gradient(#f8b76b,#c87521)!important;color:#fff!important}
/* Full AJF left menu with expandable Contracts */
.submenu{display:none;margin:0 0 4px 0;padding:2px 0 4px 12px;border-left:3px solid #9aa3aa;background:rgba(255,255,255,.18)}
.submenu.open{display:block}.side-link.sub{font-size:13px;padding:8px 10px;margin:1px 0;background:#dde3e7;border-left:3px solid transparent}.side-link.sub:hover{border-left-color:#c87521;background:#eef2f4}.menu-parent{font-weight:bold}.menu-parent .arrow{float:right;transition:transform .15s}.menu-parent.open .arrow{transform:rotate(90deg)}
.contract-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;margin:12px 0}.contract-choice{background:white;border:1px solid #888;border-left:7px solid #2878c9;border-radius:6px;padding:18px;min-height:145px;cursor:pointer;box-shadow:0 1px 3px #999}.contract-choice:hover{outline:2px solid #c87521;background:#fffdf4}.contract-choice h3{margin:0 0 8px}.contract-choice p{font-size:13px;color:#555;line-height:1.4}.contract-choice button{margin-top:8px}.contract-choice.booking{border-left-color:#d9a100}.contract-choice.offer{border-left-color:#159447}.ajf-list-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.contract-menu-grid{grid-template-columns:1fr}}

.installments-grid input,.installments-grid select{width:100%;padding:6px;border:1px solid #cfd7e3;border-radius:6px;background:#fff;box-sizing:border-box}.installments-grid td{vertical-align:middle}.right{text-align:right}.muted{color:#667085;font-size:12px}.savebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.ajf-block{border:1px solid #d7dde8;border-radius:10px;background:#fff;margin:12px 0;padding:12px}.ajf-block h4{margin:0 0 10px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.form-grid label{display:flex;flex-direction:column;font-weight:600;font-size:12px;gap:5px}.form-grid input,.form-grid select,.contract-clean textarea{padding:8px;border:1px solid #cfd7e3;border-radius:7px}.contract-clean textarea{width:100%;min-height:70px;box-sizing:border-box}.primary{background:#1456a0;color:#fff;border-color:#1456a0}

.bank-status-note{font-size:12px;color:#475569;margin-top:6px}.grid input,.grid select{width:100%;box-sizing:border-box}.summary-card b{white-space:nowrap}.badge.Reconciled,.badge.reconciled{background:#dcfce7;color:#166534}.badge.Unreconciled,.badge.unreconciled{background:#fef3c7;color:#92400e}.badge.Bounced,.badge.bounced{background:#fee2e2;color:#991b1b}.badge.Cleared,.badge.cleared,.badge.Paid,.badge.paid{background:#dcfce7;color:#166534}.badge.Deposited,.badge.deposited,.badge.PDC,.badge.pdc{background:#dbeafe;color:#1d4ed8}


/* Unit popup workflow */
.unit-action-card{position:relative;border:1px solid #75808a;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.unit-action-card:hover{outline:3px solid #c87521;transform:translateY(-1px)}
.unit-popup{min-width:420px;max-width:560px}.unit-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.unit-popup-grid .bigbtn{width:100%;min-height:48px}.ajf-prompt p{line-height:1.5}@media(max-width:650px){.unit-popup{min-width:90vw}.unit-popup-grid{grid-template-columns:1fr}}

/* AJF payment status lock */
.locked-status{display:inline-block;padding:4px 8px;border-radius:8px;background:#e9ecef;color:#555;font-size:12px;font-weight:700}
.flow-note{font-size:12px;color:#555;margin:3px 0 5px 0}
.mini-actions button{margin:2px}

/* Compact cheque issuer checkbox in contract payment setup */
.form-grid label.ajf-inline-check{
  display:grid;
  grid-template-columns:16px 1fr;
  align-items:center;
  column-gap:6px;
  row-gap:2px;
  font-size:12px;
  line-height:1.2;
  padding-top:18px;
}
.form-grid label.ajf-inline-check input[type="checkbox"]{
  width:14px;
  height:14px;
  margin:0;
  padding:0;
}
.form-grid label.ajf-inline-check span{
  font-weight:600;
  white-space:nowrap;
}
.form-grid label.ajf-inline-check small{
  grid-column:2;
  font-weight:400;
  font-size:11px;
  color:#667085;
}

/* Payment operation controls */
.alertbox{border-left:4px solid #dcae32;background:#fffdf6}.overdue-row{background:#fff1f1}.ajf-operation-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.small-select{max-width:190px;padding:6px;border:1px solid #bbb;border-radius:4px}.flow-note{font-size:11px;color:#666;flex-basis:100%}.locked-status{font-weight:700;color:#666;background:#eee;border-radius:4px;padding:4px 8px}.notice.info{background:#eef6ff;border:1px solid #b8d8ff;padding:10px;border-radius:6px;margin-bottom:12px}
.other-pdc-bank-select{width:260px;max-width:320px}
/* Contract list filters */
.compact-filter{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end}
.compact-filter label{font-size:12px;font-weight:700;color:#334155}
.compact-filter input,.compact-filter select{margin-top:4px}

.total-row td{background:#f3f6fb;font-weight:700;border-top:2px solid #9aa7b8;}


/* Contract list filter freeze fix */
.filterbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end;background:#f7f9fc;border:1px solid #d8e0ef;padding:12px;border-radius:10px;margin:12px 0}
.filterbar label{font-size:12px;font-weight:700;color:#334;display:flex;flex-direction:column;gap:4px}
.filterbar input,.filterbar select{height:34px;border:1px solid #b9c3d6;border-radius:6px;padding:6px;background:white}
.totals-bar{margin:10px 0 18px;padding:10px 12px;background:#fff8dd;border:1px solid #ead38a;border-radius:8px;font-size:13px}


/* AJF pro contract filter UI */
.pro-filterbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;background:#f8fafc;border:1px solid #d7dde8;border-radius:10px;padding:12px;margin:12px 0;}
.pro-filterbar label{font-size:12px;font-weight:700;color:#334155;display:flex;flex-direction:column;gap:5px;}
.pro-filterbar input,.pro-filterbar select{min-height:34px;border:1px solid #cbd5e1;border-radius:7px;padding:6px 8px;background:white;}
.pro-filterbar button{min-height:36px;border-radius:7px;}
.filter-actions{display:flex;flex-direction:column;gap:8px;align-self:end;}
.filter-actions button{width:100%;}
.contract-filterbar.pro-filterbar .filter-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(120px,1fr));
  gap:8px;
  align-self:end;
  grid-column:auto / span 2;
}
.contract-filterbar.pro-filterbar .filter-actions button{
  width:100%;
  min-height:36px;
}
@media (max-width:760px){
  .contract-filterbar.pro-filterbar .filter-actions{
    grid-template-columns:1fr;
    grid-column:1 / -1;
  }
}

/* AJF Falcon Pro left menu */
aside{width:235px;background:linear-gradient(180deg,#25313b 0%,#33424e 100%);border-right:1px solid #1d2730;color:#eef5fb;padding:10px 8px;box-shadow:2px 0 8px rgba(0,0,0,.18)}
aside h2{color:#fff;letter-spacing:.4px;margin:8px 8px 14px;padding:10px 8px;border-radius:10px;background:rgba(255,255,255,.08);text-align:center;border:1px solid rgba(255,255,255,.12)}
.module-title{color:#aebdca;font-size:10px;letter-spacing:.08em;margin:14px 10px 6px;text-transform:uppercase}
aside a,.sidebtn{color:#eaf1f7;border-radius:9px;padding:10px 11px;margin:4px 0;font-size:13px;transition:background .15s,transform .12s,border-color .15s;border:1px solid transparent;background:transparent}
aside a:hover,.sidebtn:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.12);transform:translateX(2px)}
.side-link.active,.side-link.active:hover{background:linear-gradient(90deg,#d98a2b,#f1b15b)!important;color:#fff!important;border-color:#f5c37b;box-shadow:0 2px 8px rgba(0,0,0,.25);font-weight:700}
.menu-parent{font-weight:700;background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.menu-parent .arrow{float:right;color:#c9d3dc;transition:transform .15s}.menu-parent.open .arrow{transform:rotate(90deg)}
.submenu{display:none;margin:2px 0 7px 12px;padding:4px 0 4px 9px;border-left:2px solid rgba(241,177,91,.65);background:rgba(0,0,0,.12);border-radius:0 8px 8px 0}.submenu.open{display:block}
.side-link.sub{font-size:12.5px;padding:8px 10px;margin:2px 0;color:#d9e3eb;background:rgba(255,255,255,.05);border-left:3px solid transparent}.side-link.sub:hover{background:rgba(255,255,255,.12);border-left-color:#f1b15b}.tenant-main-row{margin-top:6px;margin-bottom:6px}
.sidebtn{background:#526271;color:#fff;text-align:center;font-weight:700}.app main{background:#edf0f3}
@media(max-width:1000px){aside{width:190px}}
.disabled-field{background:#e7e7e7!important;color:#777!important;border-color:#bbb!important;cursor:not-allowed!important;}
.notice.info{background:#eef6ff;border:1px solid #b9dcff;padding:8px;border-radius:4px;}

.amt-in{color:#087f3f;font-weight:600}.amt-out{color:#b42318;font-weight:600}.total-row{background:#fff4cc;font-weight:700}.notice.info{background:#eef7ff;border:1px solid #bdd7ee;padding:8px;margin:8px 0}

/* AJF Falcon PDC Management */
.pdc-screen .grid td{vertical-align:top}
.pdc-bank-select{min-width:210px;margin-bottom:6px}
.falcon-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.falcon-actions button,.pdc-screen .section-title button{border-radius:8px;padding:7px 10px;font-weight:700}
.falcon-actions .pdc-clear{background:#0f766e;color:#fff;border-color:#0f766e}
.locked-status{display:inline-block;padding:6px 10px;border-radius:999px;background:#e5e7eb;color:#374151;font-weight:700}
.ajf-contract-status-stack{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px}
.ajf-contract-legal-status{font-size:11px;font-weight:700;color:#b91c1c;line-height:1.2}
.badge.pdc,.badge.pending,.badge.pending-collection{background:#fff7ed;color:#9a3412}
.badge.deposited{background:#eff6ff;color:#1d4ed8}
.badge.cleared,.badge.paid{background:#ecfdf5;color:#047857}
.badge.returned,.badge.bounced{background:#fef2f2;color:#b91c1c}
.badge.settled{background:#ecfdf5;color:#047857}
.badge.terminated{background:#fee2e2;color:#b91c1c;font-weight:700}
/* AJF FIX: lock existing PDC bank/account so users cannot change original selected account */
.locked-bank-select{background:#f3f4f6!important;color:#374151!important;border-color:#d1d5db!important;cursor:not-allowed!important;font-weight:700;}
.pdc-bank-select:disabled,.small-select:disabled{opacity:1;}

/* AJF Building payment schedule preview / calendar */
.form .full{grid-column:1/-1}
.form-actions.full{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.salary-form .payroll-date-row{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:8px;
  align-items:end;
}
.salary-form .payroll-date-row label{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
@media(max-width:900px){
  .salary-form .payroll-date-row{grid-template-columns:1fr;}
}
.small-check{font-size:12px;color:#475569;display:flex;gap:8px;align-items:center;background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;padding:8px}
.leased-schedule-preview{margin-top:10px;padding:10px;border:1px solid #dbe3ef;border-radius:10px;background:#fbfdff;overflow:auto}
.leased-schedule-preview h4{margin:0 0 8px}
.ajf-payment-calendar .calendar-row.pdc,.calendar-row.pdc{background:#fff7ed}
.ajf-payment-calendar .calendar-row.paid,.calendar-row.paid{background:#ecfdf5}
.ajf-payment-calendar .calendar-row.cleared,.calendar-row.cleared{background:#ecfdf5}
.ajf-payment-calendar .calendar-row.deposited,.calendar-row.deposited{background:#eff6ff}
.ajf-payment-calendar .calendar-row.returned,.calendar-row.returned,.ajf-payment-calendar .calendar-row.bounced,.calendar-row.bounced{background:#fef2f2}


/* AJF progress bars */
.ajf-progress-wrap{margin-top:6px;min-width:180px}.ajf-progress-label{display:flex;justify-content:space-between;font-size:11px;color:#475569;margin-bottom:3px}.ajf-progress{height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden;border:1px solid #cbd5e1}.ajf-progress>div{height:100%;background:linear-gradient(90deg,#16a34a,#22c55e)}.leased-summary-row{background:#f8fafc}.leased-summary-line{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:13px;margin-bottom:4px}.paid-text{color:#166534;font-weight:bold}.pending-text{color:#b45309;font-weight:bold}.total-text{color:#1d4ed8;font-weight:bold}


/* Super Admin Excel-style table tools */
.excel-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;padding:8px;border:1px solid #d7e3f5;background:#f7fbff;border-radius:10px;font-size:13px}
.excel-toolbar input{max-width:260px;padding:7px 9px;border:1px solid #cbd5e1;border-radius:8px}
.excel-toolbar button{padding:7px 10px;border-radius:8px;border:1px solid #cbd5e1;background:white;cursor:pointer}
.excel-toolbar button:hover{background:#eef6ff}
.ajf-export-toolbar-hidden{display:none!important}
.ajf-export-menu{position:relative;display:inline-block;text-align:left}
.ajf-export-menu summary{list-style:none;cursor:pointer;border:1px solid #94a3b8;background:#fff;border-radius:8px;padding:8px 12px;font-weight:700;min-width:92px}
.ajf-export-menu summary::-webkit-details-marker{display:none}
.ajf-export-menu summary:after{content:" ▾";font-size:11px;color:#475569}
.ajf-export-menu[open] summary{background:#eef6ff;border-color:#60a5fa}
.ajf-export-menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:210px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 10px 24px rgba(15,23,42,.16);padding:6px}
.ajf-export-menu-list button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:6px;cursor:pointer;color:#111;font-weight:500}
.ajf-export-menu-list button:hover{background:#eef6ff}
.ajf-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;margin-left:auto}
.ajf-page-actions button,.ajf-page-actions summary{white-space:nowrap}
.section-title .ajf-export-menu{margin-left:0}
.section-title.ajf-building-ledger-title-actions-right{justify-content:flex-start;gap:6px}
.section-title.ajf-building-ledger-title-actions-right>h1,.section-title.ajf-building-ledger-title-actions-right>h2,.section-title.ajf-building-ledger-title-actions-right>h3{margin-right:auto}
.section-title.ajf-building-ledger-title-actions-right>div,.section-title.ajf-building-ledger-title-actions-right>.ajf-export-menu,.section-title.ajf-building-ledger-title-actions-right>.ajf-page-actions{margin-left:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.section-title.ajf-building-ledger-title-actions-right>h1+div,.section-title.ajf-building-ledger-title-actions-right>h2+div,.section-title.ajf-building-ledger-title-actions-right>h3+div,.section-title.ajf-building-ledger-title-actions-right>h1+.ajf-page-actions,.section-title.ajf-building-ledger-title-actions-right>h2+.ajf-page-actions,.section-title.ajf-building-ledger-title-actions-right>h3+.ajf-page-actions{margin-left:auto}
.excel-filter-panel{flex-basis:100%;display:grid;gap:6px}
.excel-filter-row{display:grid;grid-template-columns:minmax(140px,1fr) 140px minmax(160px,1fr) auto;gap:6px;align-items:center;max-width:780px}
.excel-filter-row select,.excel-filter-row input,.excel-master select{height:34px;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;background:white}
.excel-scroll{overflow:auto;max-height:66vh;border:1px solid #d8e0ef}
.excel-scroll .grid th{top:0;z-index:2}
.excel-master label{display:flex;flex-direction:column;gap:5px;font-weight:700;max-width:360px}
.excel-toolbar-simple{background:#fff;border-color:#d8e0ef}
.advanced-grid-toolbar{background:#eef6ff;border-color:#9cc7f2}
.advanced-grid-wrap{overflow:auto;max-width:100%}
.advanced-grid-table th{resize:horizontal;overflow:auto;white-space:nowrap;user-select:none;cursor:pointer}
.advanced-grid-table td{min-width:90px}
.advanced-grid-table.advanced-freeze-first th:first-child,
.advanced-grid-table.advanced-freeze-first td:first-child{position:sticky;left:0;z-index:3;background:#f8fafc;box-shadow:2px 0 0 #cbd5e1}
.advanced-grid-table.advanced-freeze-first th:first-child{background:#334155;color:#fff;z-index:4}
.advanced-grid-table.advanced-editing td[contenteditable="true"]{outline:1px solid #60a5fa;background:#f8fbff}
.advanced-column-panel{display:flex;gap:10px;flex-wrap:wrap;padding:8px;background:#fff;border:1px solid #d8e0ef;border-radius:8px}
.advanced-column-panel label{display:inline-flex;align-items:center;gap:5px;font-size:12px}
.advanced-bulk-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) minmax(220px,1fr) auto;gap:8px;align-items:center;margin-top:8px}
.advanced-bulk-form input,.advanced-bulk-form select,.advanced-paste-box,#pasteReason{border:1px solid #cbd5e1;border-radius:8px;padding:8px;background:#fff}
.advanced-paste-box{width:100%;min-height:110px;margin-top:8px;font-family:Consolas,monospace}
.notice.warning{background:#fff8e1;border:1px solid #e3bd52;padding:10px;border-radius:6px;margin-bottom:12px}
.notification-body-field{grid-column:span 2}
.notification-body-field textarea{min-height:190px!important;font-family:Consolas,monospace;line-height:1.45;resize:vertical;white-space:pre-wrap}
@media(max-width:800px){.excel-filter-row{grid-template-columns:1fr}.excel-filter-row button{width:max-content}}
@media(max-width:900px){.advanced-bulk-form{grid-template-columns:1fr}}

/* AJF tenant contract receipt voucher print template */
.ajf-rv-print{background:white;color:#111;max-width:900px;margin:0 auto;padding:28px 34px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.25}
.ajf-rv-head{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;margin-bottom:18px}
.ajf-rv-logo{max-width:78px;max-height:78px;object-fit:contain}
.ajf-rv-company{text-align:center;font-size:20px;font-weight:700;letter-spacing:4px;text-transform:uppercase}
.ajf-rv-title{text-align:center;font-weight:700;border-top:1.5px solid #111;border-bottom:1.5px solid #111;padding:7px;margin:8px 0 18px;text-transform:uppercase}
.ajf-rv-info{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:12px}
.ajf-rv-info table{width:100%;border-collapse:collapse}.ajf-rv-info td{padding:4px 3px}.ajf-rv-info td:first-child{width:38%;font-weight:600;color:#333}
.ajf-rv-section{font-size:16px;font-weight:700;margin:8px 0 6px}.ajf-rv-table{width:100%;border-collapse:collapse;font-size:11px}.ajf-rv-table th,.ajf-rv-table td{border:1px solid #222;padding:5px 6px;vertical-align:middle}.ajf-rv-table th{background:#f1f1f1;text-align:center;font-weight:700}.ajf-rv-table .right{text-align:right}.ajf-rv-table .center{text-align:center}.ajf-rv-total td{font-weight:700}.ajf-rv-balance td{font-weight:700;background:#fafafa}.ajf-rv-words{border:1px solid #222;border-top:0;padding:8px 10px;font-weight:700}.ajf-rv-sign{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:120px;font-size:13px}.ajf-rv-footer{text-align:center;margin-top:26px;font-size:11px;color:#333}
@media print{body{background:white}.toolbar,.side,.topbar,.summary,#buildingCards,.savebar,.section-title button,.panel>button{display:none!important}.panel{box-shadow:none;border:0;margin:0;padding:0}.ajf-rv-print{max-width:none;margin:0;padding:14mm}.ajf-rv-sign{margin-top:45mm}}


/* AJF final branding and backup tools */
.brand-logo{margin:8px 0 18px;text-align:center;}
.brand-logo img{max-width:130px;max-height:70px;object-fit:contain;background:white;border-radius:10px;padding:6px;}
.button{display:inline-block;padding:7px 10px;border-radius:8px;background:#0f766e;color:#fff;text-decoration:none;font-size:12px;}
.receipt-extra-tools{margin-top:12px;gap:8px;display:flex;flex-wrap:wrap;}
@media print{.receipt-extra-tools,.toolbar,aside,.top,.excel-toolbar,.sidebtn,button{display:none!important}.app{display:block}main{margin:0;padding:0}.panel{box-shadow:none;border:none}}

.user-grade-note{margin:8px 0 14px}.role-grade-checks{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.role-grade-checks label{display:inline-flex;align-items:center;gap:5px;border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:5px 8px;font-size:12px}.role-grade-checks label.selected{border-color:#d6a700;background:#fff7d6;font-weight:bold}.role-grade-checks input{accent-color:#198754}


/* AJF FIX: keep Bank/Cash account setup fields clearly editable (not greyed out) */
.form input:not([disabled]):not([readonly]),
.form select:not([disabled]),
.form textarea:not([disabled]),
.form-grid input:not([disabled]):not([readonly]),
.form-grid select:not([disabled]),
.form-grid textarea:not([disabled]){
  background:#ffffff!important;
  color:#111827!important;
  opacity:1!important;
  cursor:text;
}
.form select:not([disabled]),.form-grid select:not([disabled]){cursor:pointer;}
.form input::placeholder,.form textarea::placeholder{color:#6b7280!important;opacity:1;}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:0!important;
  border-color:#2563eb!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.14);
}
.form input[readonly]{background:#f3f4f6!important;color:#374151!important;}
.form input[type="date"]:not([disabled]):not([readonly]),
.form-grid input[type="date"]:not([disabled]):not([readonly]){
  cursor:pointer;
  position:relative;
  z-index:1;
  pointer-events:auto;
}
.form input[type="date"]::-webkit-calendar-picker-indicator,
.form-grid input[type="date"]::-webkit-calendar-picker-indicator{
  cursor:pointer;
  opacity:1;
  pointer-events:auto;
}
.ejari-inline-update{
  display:grid;
  grid-template-columns:minmax(88px,1fr) auto;
  gap:5px;
  align-items:center;
  margin-top:5px;
  max-width:180px;
}
.ejari-inline-update select{
  min-width:0;
  width:100%;
  padding:3px 5px;
}
.ejari-inline-update button{
  padding:3px 7px;
  white-space:nowrap;
}

/* AJF text-only sidebar brand (logo image removed) */
.brand-text-only{
  margin:8px 0 18px;
  text-align:center;
  font-size:32px;
  font-weight:800;
  letter-spacing:3px;
  color:#111827;
  background:none;
  padding:8px 0;
}
.brand-logo img{display:none!important;}
.brand-dashboard-button{
  width:100%;
  border:1px solid rgba(148,163,184,.35);
  border-radius:8px;
  background:#24313c;
  color:#e5edf5;
  padding:12px 8px;
  cursor:pointer;
  line-height:1.15;
}
.brand-dashboard-button span{
  display:block;
  font-size:20px;
  font-weight:800;
  letter-spacing:0;
}
.brand-dashboard-button small{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-weight:700;
  color:#f6b44b;
}
.brand-dashboard-button:hover{background:#2e3e4b;}
.brand-logo.brand-dashboard-button{
  position:relative;
  display:block;
  width:100%;
  height:76px;
  margin:6px 0 18px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent url('/ajf-dashboard-logo.svg') center center / contain no-repeat !important;
  box-shadow:none !important;
  overflow:hidden;
}
.brand-logo.brand-dashboard-button span,
.brand-logo.brand-dashboard-button small{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}
.brand-logo.brand-dashboard-button:hover{
  background:transparent url('/ajf-dashboard-logo.svg') center center / contain no-repeat !important;
  filter:brightness(1.04);
}
.ajf-inline-rewrite{
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:6px;
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid #d7e3f5;
}
.ajf-inline-rewrite input,.ajf-inline-rewrite select{
  width:100%;
  padding:6px;
  border:1px solid #b6c2cf;
  border-radius:4px;
  background:#fff;
}
.ajf-inline-rewrite button{grid-column:auto;}

/* Final PDC management alignment */
.pdc-screen .grid th:last-child,
.pdc-screen .grid td:last-child{
  min-width:520px;
  width:520px;
}
.pdc-screen .grid td{
  vertical-align:middle;
}
.pdc-screen .grid select,
.pdc-screen .grid input{
  min-height:28px;
}
.pdc-screen .grid button{
  min-height:28px;
  padding:5px 9px;
  margin:0;
  white-space:nowrap;
}
.pdc-screen .tenant-pdc-bank-select{
  max-width:125px;
  margin-top:4px;
}
.pdc-screen .ajf-operation-box{
  display:grid;
  grid-template-columns:repeat(4,minmax(95px,1fr));
  gap:6px;
  align-items:center;
  width:100%;
}
.pdc-screen .settle-box{
  padding:7px;
  border:1px solid #d7e3f5;
  border-radius:6px;
  background:#f8fbff;
}
.pdc-screen .settle-box b,
.pdc-screen .settle-box .muted,
.pdc-screen .settle-box .flow-note{
  grid-column:1/-1;
}
.pdc-screen .settle-box select[id^="settleTenantAcc_"],
.pdc-screen .settle-box select[id^="settleOwnerAcc_"]{
  grid-column:1/-1;
  width:100%;
}
.pdc-screen .ajf-inline-rewrite{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1.1fr 1fr .8fr 1fr;
  gap:6px;
  margin-top:2px;
  padding-top:7px;
  border-top:1px solid #d7e3f5;
}
.pdc-screen .ajf-inline-rewrite button{
  grid-column:1/-1;
}
.pdc-screen .row-actions,
.pdc-screen .operations-actions{
  grid-column:1/-1;
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  align-items:center;
}

/* AJF ledger action buttons */
.ajf-contract-actions{white-space:normal; min-width:260px;}
.ajf-contract-actions button{margin:2px; padding:6px 8px; font-size:12px; border-radius:8px;}
.ajf-receipt-btn{background:#fff7ed; border:1px solid #fb923c; color:#9a3412; font-weight:700;}

/* Searchable dropdown inputs */
.ajf-select-search{width:100%;box-sizing:border-box;margin-bottom:6px;border:1px solid #ddd;border-radius:8px;padding:8px;background:#fff;}


/* AJF select2-style searchable dropdowns */
.form-grid label{min-width:0;}
.ajf-combo{position:relative;width:100%;font-size:14px;min-width:0;min-height:36px;}
.ajf-combo.open{z-index:10000;}
.ajf-combo-btn{width:100%;height:36px;background:#fff;border:1px solid #9aa8b5;border-radius:4px;text-align:left;padding:0 34px 0 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#111;}
.ajf-combo-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;}
.ajf-combo-btn b{position:absolute;right:10px;color:#777;font-size:12px;}
.ajf-combo-menu{display:none;position:absolute;left:0;right:0;top:38px;background:#fff;border:1px solid #9aa8b5;box-shadow:0 6px 18px rgba(0,0,0,.18);z-index:9999;max-height:260px;box-sizing:border-box;}
.ajf-combo.open .ajf-combo-menu{display:block;}
.ajf-combo-search{box-sizing:border-box;width:calc(100% - 10px);margin:5px;height:30px;border:1px solid #aaa;padding:4px 8px;outline:none;}
.ajf-combo-list{max-height:215px;overflow-y:auto;}
.ajf-combo-option{padding:8px 10px;cursor:pointer;border-bottom:1px solid #eee;color:#526f9e;background:#fff;}
.ajf-combo-option:hover,.ajf-combo-option.active{background:#4b86e8;color:#fff;}
.ajf-combo-empty{padding:10px;color:#777;background:#fafafa;}
select[data-ajf-combo-ready="1"],
input[data-ajf-text-combo-ready="1"],
input.ajf-select-search{display:none!important;}

/* AJF payment option selector */
.ajf-payment-picker{display:block;width:100%;margin:4px 0 6px}
.ajf-payment-picker-title{font-size:12px;font-weight:700;color:#334155;margin-bottom:6px}
.ajf-payment-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px}
.ajf-pay-option{min-height:48px;border:1px solid #b9c3d6;background:#fff;border-radius:8px;padding:6px 8px;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left;color:#111827}
.ajf-pay-option b{display:grid;place-items:center;min-width:42px;height:28px;border-radius:6px;background:#eef2f7;color:#334155;font-size:11px}
.ajf-pay-option span{font-size:13px;font-weight:700;line-height:1.15}
.ajf-pay-option.active{border-color:#1456a0;background:#eaf3ff;box-shadow:0 0 0 2px rgba(20,86,160,.12)}
.ajf-pay-option.active b{background:#1456a0;color:#fff}
.ajf-pay-option:hover{background:#f8fbff;border-color:#64748b}
.ajf-payment-select-hidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

/* AJF Tenancy Contract Print Template */
.ajf-tenancy-contract-print{background:#fff;color:#1f2937;max-width:980px;margin:0 auto;padding:18px 22px;border:1px solid #b9c0c9;font-family:Arial,Helvetica,sans-serif;box-shadow:0 1px 4px #0001}
.tc-topbar{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;border:1px solid #b8c1cc;padding:8px;margin-bottom:8px}
.tc-title{text-align:center}.tc-title h2{margin:0;font-size:22px;letter-spacing:1px}.tc-ar{font-size:22px;color:#4b647c}.tc-gov,.tc-company{display:flex;align-items:center;gap:8px}.tc-company{justify-content:flex-end;text-align:right}.tc-company img{max-height:45px}.tc-logo-mark{border:2px solid #2b5c88;color:#2b5c88;font-weight:700;border-radius:50%;padding:8px}.tc-date-row{display:flex;gap:16px;align-items:center;border:1px solid #d1d5db;padding:6px 10px;margin-bottom:8px}.tc-date-row .arabic{margin-left:auto}.tc-section{margin-top:8px;border:1px solid #c6ced8}.tc-section-title{background:#34495e;color:#fff;font-weight:700;padding:7px 10px;display:flex;justify-content:space-between}.tc-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:0}.tc-grid>div{display:grid;grid-template-columns:190px 1fr;border-bottom:1px dotted #aab3bd;padding:7px 10px;min-height:28px}.tc-grid label{font-size:12px;color:#4b5563}.tc-grid b{font-size:13px;font-weight:600}.tc-usage{display:flex;gap:26px;padding:8px 10px;border-bottom:1px solid #d1d5db}.tc-check{display:inline-block;width:13px;height:13px;border:1px solid #555;border-radius:50%;margin-right:6px;vertical-align:middle}.tc-check.on{background:#111;box-shadow:inset 0 0 0 3px white}.tc-terms{font-size:12px;line-height:1.45;margin:10px 16px 12px 28px}.tc-signatures{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:24px;font-weight:700}.tc-signatures div{text-align:center;min-height:60px}.ajf-contract-actions button{margin:2px}.ajf-receipt-btn{background:#f8fafc;border:1px solid #94a3b8;border-radius:5px;padding:5px 8px}@media print{.toolbar,.sidebar,.savebar,.section-title button{display:none!important}.ajf-tenancy-contract-print{box-shadow:none;border:0;max-width:100%;padding:0}.panel{border:0!important}}

/* AJF clean tenancy contract: hide top-right company logo/text */
.tc-company-hidden{visibility:hidden;}

/* AJF final receipt voucher print polish */
.ajf-rv-print{background:#fff;color:#111;max-width:900px;margin:0 auto;padding:30px 38px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.25;min-height:1100px;box-sizing:border-box}
.ajf-rv-head{display:grid;grid-template-columns:115px 1fr 115px;align-items:center;margin-bottom:16px}
.ajf-rv-logo{display:block;max-width:78px;max-height:78px;object-fit:contain;justify-self:start}
.ajf-rv-company{text-align:center;font-size:24px;font-weight:700;letter-spacing:4px;text-transform:uppercase}
.ajf-rv-title{text-align:center;font-weight:700;text-transform:uppercase;border-bottom:1px solid #111;padding:7px 0 6px;margin:0 0 18px}
.ajf-rv-info{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:12px}
.ajf-rv-info table{width:100%;border-collapse:collapse}.ajf-rv-info td{padding:5px 4px}.ajf-rv-info td:first-child{width:40%;font-weight:500;color:#333}
.ajf-rv-section{font-size:20px;font-weight:700;margin:12px 0 6px}
.ajf-rv-table{width:100%;border-collapse:collapse}.ajf-rv-table th,.ajf-rv-table td{border:1px solid #111;padding:6px 7px;vertical-align:middle}.ajf-rv-table th{font-weight:700;text-align:center;background:#f4f4f4}.ajf-rv-table .right{text-align:right}.ajf-rv-table .center{text-align:center}.ajf-rv-total td,.ajf-rv-balance td{font-weight:700}
.ajf-rv-words{border:1px solid #111;border-top:0;padding:9px 10px;font-weight:700;text-transform:uppercase}.ajf-rv-sign{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:70px;font-size:14px}.ajf-rv-footer{text-align:center;margin-top:28px;font-size:13px}
@media print{.ajf-rv-print{max-width:none;margin:0;padding:14mm;min-height:auto}.ajf-rv-sign{margin-top:55mm}}

/* Login background */
.login{
  min-height:100vh;
  height:100vh;
  display:grid;
  place-items:end center;
  box-sizing:border-box;
  padding:24px 24px 58px;
  background:
    linear-gradient(90deg, rgba(4,10,18,.18), rgba(4,10,18,.10)),
    #07101a url('/login-background.png?v=building-view-20260509') center/cover no-repeat fixed !important;
}
.loginbox{
  width:min(340px, calc(100vw - 32px));
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  padding:0!important;
  gap:11px;
}
.loginbox input{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.55);
  border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.24);
}
.loginbox button{
  border:0;
  border-radius:8px;
  background:#0b5fd3;
  color:#fff;
  font-weight:700;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
.loginbox p{
  text-align:center;
  margin:0;
}
.loginbox a{
  color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.85);
}
.loginbox b,
.loginbox small{
  color:#fff;
  text-align:center;
  text-shadow:0 1px 4px rgba(0,0,0,.85);
}
@media (max-width:760px){
  .login{
    place-items:end center;
    padding:24px 16px 42px;
    background-size:cover!important;
  }
}

/* AJF compact main workspace: shows more rows/cards without changing browser zoom */
main{
  font-size:13px;
}
.top{
  height:30px;
  padding:0 10px;
}
.toolbar{
  min-height:34px;
  padding:4px 6px;
  gap:4px;
}
.toolbar button,
.form button,
.smallbtn,
.section-title button{
  padding:5px 8px;
  min-height:28px;
}
.panel{
  padding:8px;
}
.section-title{
  margin-bottom:5px;
}
.section-title h3,
.reportbox h3{
  margin-top:4px;
  margin-bottom:7px;
}
.summary,
.summary.mini{
  gap:6px;
  padding:7px;
  margin:4px 0;
}
.summary.mini{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.summary-card{
  padding:7px;
  min-height:58px;
}
.summary-card b{
  font-size:18px;
}
.summary-card span{
  font-size:11px;
}
.reportbox{
  padding:9px;
  margin-bottom:8px;
}
.grid th,
.grid td{
  padding:5px 6px;
  font-size:12px;
}
.tenant-screen-head{
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.tenant-screen-title{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  min-width:340px;
}
.tenant-screen-picker{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:270px;
  padding:0;
  background:transparent;
  border:0;
  border-radius:8px;
}
.tenant-screen-picker span{
  font-weight:700;
  color:#334155;
  white-space:nowrap;
}
.tenant-main-select{
  width:clamp(235px,28vw,420px);
  min-width:235px;
  max-width:420px;
  height:32px;
  border:1px solid #9fb0bf;
  border-radius:6px;
  background:#fff;
  font-size:16px;
}
.tenant-screen-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-left:auto;
}
@media(max-width:800px){
  .tenant-screen-title,
  .tenant-screen-picker,
  .tenant-main-select{
    width:100%;
    min-width:0;
    max-width:none;
  }
  .tenant-screen-actions{
    margin-left:0;
  }
}
.contract-menu-grid{
  gap:8px;
  margin:7px 0;
}
.dashboard-shortcuts{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.dashboard-shortcuts .contract-choice{
  min-height:74px;
  padding:10px;
  border-left-width:5px;
}
.dashboard-shortcuts .contract-choice h3{
  font-size:15px;
  margin-bottom:4px;
}
.dashboard-shortcuts .contract-choice span,
.dashboard-shortcuts .contract-choice button{
  font-size:12px;
}
.form,
.form-grid,
.pro-filterbar,
.filterbar{
  gap:6px;
  padding:8px;
}
.form input,
.form select,
.form textarea,
.form-grid input,
.form-grid select,
.contract-clean textarea,
.pro-filterbar input,
.pro-filterbar select{
  padding:5px 7px;
  min-height:30px;
}

/* AJF compact balance: readable size, less empty beige bottom */
.ajf-screen{
  min-height:auto;
}
main{
  font-size:14px;
}
.top{
  height:32px;
}
.toolbar{
  min-height:38px;
}
.summary-card{
  min-height:68px;
  padding:9px;
}
.summary-card b{
  font-size:20px;
}
.summary-card span{
  font-size:12px;
}
.dashboard-shortcuts .contract-choice{
  min-height:96px;
  padding:12px;
}
.dashboard-shortcuts .contract-choice h3{
  font-size:16px;
}
.grid th,
.grid td{
  font-size:12.5px;
  padding:6px;
}
.reportbox{
  padding:10px;
}

/* AJF final dashboard: compact chart and focused 30-day PDC alerts */
.ajf-dashboard-final .summary.mini{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.ajf-profit-chart{
  background:#fff;
}
.ajf-chart-title{
  align-items:center;
}
.ajf-chart-summary{
  background:#f8fafc;
  border:1px solid #d7e0ea;
  border-radius:6px;
}
.ajf-chart-legend{
  display:flex;
  gap:14px;
  align-items:center;
  font-size:12px;
  color:#334155;
}
.ajf-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.ajf-chart-legend i{
  width:12px;
  height:12px;
  display:inline-block;
  border-radius:3px;
}
.ajf-month-chart{
  display:grid;
  gap:7px;
  margin-top:8px;
}
.ajf-month-row{
  display:grid;
  grid-template-columns:44px 1fr minmax(165px,220px);
  gap:10px;
  align-items:center;
}
.ajf-month-label{
  font-weight:700;
  color:#1f2937;
}
.ajf-month-bars{
  display:grid;
  gap:3px;
}
.ajf-month-bar{
  display:block;
  height:11px;
  min-width:3px;
  border-radius:999px;
}
.ajf-month-income{
  background:#16a34a;
}
.ajf-month-expense{
  background:#dc2626;
}
.ajf-month-values{
  display:grid;
  gap:1px;
  font-size:12px;
  text-align:right;
}
.ajf-month-values span{
  color:#991b1b;
}
@media(max-width:760px){
  .ajf-month-row{
    grid-template-columns:40px 1fr;
  }
  .ajf-month-values{
    grid-column:2;
    text-align:left;
  }
}

/* AJF dashboard financial overview v2 */
.ajf-financial-overview{
  background:#fffdf5;
  overflow:hidden;
}
.ajf-chart-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  font-size:11px;
  color:#334155;
}
.ajf-chart-controls span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-weight:700;
}
.ajf-chart-controls i{
  width:12px;
  height:12px;
  border-radius:3px;
  display:inline-block;
}
.ajf-chart-controls select{
  min-height:26px;
  border:1px solid #cbd5e1;
  border-radius:6px;
  background:#fff;
  padding:3px 6px;
}
.ajf-chart-check{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:700;
  color:#334155;
  min-height:26px;
  padding:2px 6px;
  border:1px solid #dbe3ee;
  border-radius:6px;
  background:#f8fafc;
}
.ajf-chart-check input{
  width:12px;
  height:12px;
  margin:0;
}
.ajf-month-net{
  background:#2563eb;
}
.ajf-fin-chart{
  position:relative;
  display:grid;
  grid-template-columns:repeat(12,minmax(58px,1fr));
  gap:8px;
  min-height:245px;
  padding:16px 8px 4px;
  border-top:1px solid #e2e8f0;
  background:
    linear-gradient(to bottom,#e6d8ad 1px,transparent 1px) 0 0/100% 25%,
    #fffdf5;
}
.ajf-fin-month{
  position:relative;
  min-height:220px;
  display:grid;
  grid-template-rows:1fr auto;
  align-items:end;
}
.ajf-fin-bars{
  height:175px;
  display:flex;
  align-items:end;
  justify-content:center;
  gap:7px;
}
.ajf-fin-bars span{
  width:22px;
  min-height:3px;
  border-radius:4px 4px 0 0;
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.08);
}
.ajf-income-bar{
  background:linear-gradient(180deg,#86efac,#22c55e);
}
.ajf-expense-bar{
  background:linear-gradient(180deg,#fca5a5,#ef4444);
}
.ajf-net-line{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  color:#1d4ed8;
  font-size:11px;
  font-weight:800;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  border-radius:999px;
  padding:1px 5px;
  white-space:nowrap;
}
.ajf-net-line.negative{
  color:#991b1b;
  background:#fef2f2;
  border-color:#fecaca;
}
.ajf-month-select{
  border:0;
  background:transparent;
  color:#334155;
  font-size:11px;
  line-height:1.1;
  padding:4px 0 0;
  min-height:28px;
}
.ajf-month-select.active{
  color:#0f172a;
  font-weight:800;
  text-decoration:underline;
}
.ajf-mtd-overview{
  background:#fff;
}
.ajf-mtd-head{
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(0,auto);
  align-items:start;
  gap:10px;
  margin-bottom:12px;
}
.ajf-mtd-title{
  min-width:0;
}
.ajf-mtd-head h3{
  margin:0;
  color:#17233a;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
  line-height:1.25;
}
.ajf-mtd-header-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
  min-width:0;
}
.ajf-mtd-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  max-width:100%;
}
.ajf-mtd-checks{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
  min-width:0;
}
.ajf-mtd-period{
  min-height:30px;
  border:1px solid #d8e2ef;
  border-radius:7px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:700;
  padding:4px 24px 4px 9px;
  white-space:nowrap;
  width:144px;
  max-width:100%;
}
.ajf-mtd-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(110px,1fr));
  gap:22px;
  width:min(560px,calc(100% - 42px));
  margin:0 0 8px 36px;
}
.ajf-mtd-kpis span{
  display:block;
  margin-bottom:5px;
  color:#667085;
  font-size:10px;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.ajf-mtd-kpis b{
  display:block;
  font-size:14px;
  line-height:1.2;
}
.ajf-mtd-income{
  color:#10b981;
}
.ajf-mtd-expense{
  color:#f97316;
}
.ajf-mtd-net{
  color:#ef4444;
}
.ajf-mtd-net.positive{
  color:#10b981;
}
.ajf-mtd-chart{
  position:relative;
  min-height:224px;
  flex:1;
}
.ajf-mtd-chart svg{
  display:block;
  width:100%;
  height:224px;
  overflow:visible;
}
.ajf-mtd-grid line{
  stroke:#e6eaf0;
  stroke-width:1;
}
.ajf-mtd-grid text,
.ajf-mtd-x text{
  fill:#526175;
  font-size:10px;
  font-weight:700;
}
.ajf-mtd-x text{
  text-anchor:middle;
}
.ajf-mtd-area.income{
  fill:url(#ajfIncomeFill);
}
.ajf-mtd-area.expense{
  fill:url(#ajfExpenseFill);
}
.ajf-mtd-area.net{
  fill:url(#ajfNetFill);
}
.ajf-mtd-line{
  fill:none;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ajf-mtd-line.income{
  stroke:#10b981;
}
.ajf-mtd-line.expense{
  stroke:#f97316;
}
.ajf-mtd-line.net{
  stroke:#ef4444;
}
.ajf-mtd-legend{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:42px;
  margin-top:6px;
  color:#17233a;
  font-size:11px;
  font-weight:800;
}
.ajf-mtd-legend span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.ajf-mtd-legend i{
  width:24px;
  height:3px;
  border-radius:999px;
  display:inline-block;
}
.ajf-mtd-legend i.income{
  background:#10b981;
}
.ajf-mtd-legend i.expense{
  background:#f97316;
}
.ajf-mtd-legend i.net{
  background:#ef4444;
}
.ajf-fin-detail{
  grid-template-columns:1fr 1fr 1.25fr;
  align-items:stretch;
}
.ajf-donut-card{
  background:#fff;
}
.ajf-donut-wrap{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:12px;
  align-items:center;
}
.ajf-donut{
  width:116px;
  height:116px;
  border-radius:50%;
  display:grid;
  place-items:center;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}
.ajf-donut span{
  width:58px;
  height:58px;
  border-radius:50%;
  background:#fff;
  display:block;
  box-shadow:0 0 0 1px rgba(15,23,42,.08);
}
.ajf-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  margin-right:6px;
}
.ajf-donut-total{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:7px 2px 0;
}
.ajf-top-buildings .grid td,
.ajf-donut-card .grid td{
  font-size:12px;
}
.bank-mini-filter{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px 10px;
  font-size:12px;
}
.bank-mini-filter label{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.bank-mini-filter input{
  margin:0;
}
.bank-tx-filters{
  grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(190px,1.2fr) minmax(160px,1fr) max-content max-content minmax(120px,.8fr) minmax(110px,.7fr);
  align-items:end;
}
.bank-tx-filters label.inline-check{
  align-self:end;
  min-height:34px;
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  padding:0 4px 2px;
}
.bank-tx-filters label.inline-check input{
  width:16px;
  height:16px;
  min-height:0;
  margin:0;
  padding:0;
}
.bank-tx-filters button{
  min-height:34px;
}
@media(max-width:980px){
  .bank-tx-filters{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  }
}
@media(max-width:1100px){
  .ajf-fin-chart{
    overflow-x:auto;
    grid-template-columns:repeat(12,72px);
  }
  .ajf-fin-detail{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .ajf-donut-wrap{
    grid-template-columns:1fr;
  }
}

/* AJF language toggle shell: translate chrome only, keep data grids and print layouts stable. */
.ajf-top-actions{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.ajf-current-user{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:260px;
}
.ajf-dashboard-top-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-right:10px;
  white-space:nowrap;
}
.ajf-dashboard-top-actions button{
  min-height:26px;
  padding:4px 10px;
  border:1px solid #c9b477;
  border-radius:6px;
  background:#fff8df;
  font-weight:700;
  cursor:pointer;
}
.ajf-dashboard-top-actions button:hover{
  background:#fff3cd;
}
.ajf-dashboard-clock{
  padding:4px 9px;
  border:1px solid #d7c696;
  border-radius:6px;
  background:#fff8df;
  color:#5f4200;
  font-size:12px;
  font-weight:700;
}
.ajf-lang-toggle{
  border:1px solid #c9b477;
  background:#fff8df;
  border-radius:5px;
  color:#111827;
  cursor:pointer;
  font-weight:700;
  min-height:24px;
  padding:3px 9px;
}
.ajf-lang-toggle:hover{
  background:#fff3cd;
}
body.ajf-lang-ar aside,
body.ajf-lang-ar .toolbar,
body.ajf-lang-ar #content .section-title,
body.ajf-lang-ar #content .panel>h1,
body.ajf-lang-ar #content .panel>h2,
body.ajf-lang-ar #content .panel>h3{
  direction:rtl;
}
body.ajf-lang-ar aside a,
body.ajf-lang-ar aside .module-title,
body.ajf-lang-ar .toolbar button,
body.ajf-lang-ar #content .section-title h1,
body.ajf-lang-ar #content .section-title h2,
body.ajf-lang-ar #content .section-title h3,
body.ajf-lang-ar #content .panel>h1,
body.ajf-lang-ar #content .panel>h2,
body.ajf-lang-ar #content .panel>h3{
  text-align:right;
}
body.ajf-lang-ar .toolbar{
  justify-content:flex-start;
}
body.ajf-lang-ar .search{
  direction:rtl;
  text-align:right;
  margin-left:0;
  margin-right:auto;
}
/* AJF shareholder capital/withdrawal cheque rows */
.form .ajf-account-only{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-width:0;
}
.form .ajf-account-only>span{
  min-height:18px;
  line-height:18px;
}
.form .ajf-cheque-fields{
  grid-template-columns:repeat(2,minmax(180px,260px)) minmax(240px,1fr);
  gap:8px;
  align-items:end;
  background:#f8fafc;
  border:1px solid #d7e0ea;
  border-radius:6px;
  margin:0;
  padding:8px;
}
.form .ajf-cheque-fields label{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0;
  min-width:0;
}
.form .ajf-cheque-fields small{
  align-self:center;
  line-height:1.35;
}
@media(max-width:900px){
  .form .ajf-cheque-fields{
    grid-template-columns:1fr;
  }
}
body.ajf-lang-ar .grid,
body.ajf-lang-ar table,
body.ajf-lang-ar .excel-toolbar,
body.ajf-lang-ar .ajf-rv-print,
body.ajf-lang-ar .ajf-tenancy-contract-print,
body.ajf-lang-ar .tc-page{
  direction:ltr;
}

/* Building agreement print header: keep the logo professional and never full-page. */
.print-area .voucher-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:4px;
  margin:0 0 18px;
}
.print-area .voucher-head img,
.building-agreement-logo{
  display:block;
  width:118px;
  max-width:118px;
  max-height:84px;
  height:auto;
  object-fit:contain;
  margin:0 auto 6px;
}
.print-area .voucher-head h2{
  margin:4px 0 2px;
  font-size:22px;
  letter-spacing:.5px;
}
.print-area .voucher-head p{
  margin:0;
}
@media print{
  .print-area .voucher-head img,
  .building-agreement-logo{
    width:32mm;
    max-width:32mm;
    max-height:24mm;
  }
}

/* Sidebar contrast option B: soft gold hover, blue active stripe. */
aside{
  background:#f3edd9 !important;
  border-right:1px solid #d3bf83 !important;
}
aside h2,
.module-title{
  color:#26323f !important;
}
aside a,
aside button,
.side-link,
.sidebtn{
  background:#4f6378 !important;
  color:#ffffff !important;
  border:1px solid #3e5062 !important;
  border-left:4px solid transparent !important;
  box-shadow:none !important;
}
aside a:hover,
aside button:hover,
.side-link:hover,
.sidebtn:hover,
.side-link.sub:hover{
  background:#fff3cd !important;
  color:#111827 !important;
  border-color:#d6b656 !important;
  border-left-color:#d6b656 !important;
  transform:none !important;
}
aside a.active,
aside button.active,
.side-link.active,
.side-link.active:hover,
.sidebtn.active{
  background:#ffffff !important;
  color:#111827 !important;
  border-color:#cbd5e1 !important;
  border-left-color:#1f5fae !important;
  font-weight:700 !important;
}
.side-link.sub{
  background:#5d7185 !important;
  color:#ffffff !important;
}

/* Warm AJF workspace background. */
body,
main,
.app main{
  background:#f3eddb !important;
}
.toolbar{
  background:#e7dcc4 !important;
}
.top{
  background:#f3eddb !important;
  border-bottom:1px solid #d2bd84 !important;
  color:#111827 !important;
}
.toolbar button{
  background:#f1f3f5 !important;
  color:#111827 !important;
  border-color:#aeb6bf !important;
  box-shadow:none !important;
}
.toolbar button:hover{
  background:#fff3cd !important;
  color:#111827 !important;
  border-color:#d6b656 !important;
}
.toolbar button.active{
  background:linear-gradient(#f1b15b,#d98a2b) !important;
  color:#ffffff !important;
  border-color:#c87521 !important;
}

/* Cleaner tenant master form/list alignment. */
.tenant-screen>h3{
  margin:0 0 12px;
}
.tenant-form{
  grid-template-columns:repeat(5,minmax(170px,1fr)) !important;
  gap:8px 10px !important;
  align-items:end !important;
  background:#fbfbfb !important;
  border-color:#b8c0c8 !important;
  padding:10px !important;
}
.tenant-form label{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  margin:0;
  color:#334155;
  font-size:12px;
  font-weight:700;
}
.tenant-form input,
.tenant-form select,
.tenant-form textarea{
  min-height:34px;
  border-color:#b7bec7 !important;
  background:#ffffff !important;
}
.tenant-form textarea{
  min-height:48px;
  resize:vertical;
}
.tenant-form .tenant-wide{
  grid-column:1 / span 2;
}
.tenant-form .tenant-address{
  grid-column:span 2;
}
.tenant-form .tenant-notes{
  grid-column:span 2;
}
.tenant-form .tenant-actions{
  display:flex;
  align-items:stretch;
  grid-column:auto / span 1;
  min-height:48px;
}
.tenant-form .tenant-actions button{
  width:100%;
  min-height:48px;
}
.tenant-list-panel .grid th,
.tenant-list-panel .grid td{
  vertical-align:middle;
}
@media(max-width:1200px){
  .tenant-form{
    grid-template-columns:repeat(3,minmax(170px,1fr)) !important;
  }
  .tenant-form .tenant-wide,
  .tenant-form .tenant-address,
  .tenant-form .tenant-notes{
    grid-column:span 3;
  }
}
@media(max-width:760px){
  .tenant-form{
    grid-template-columns:1fr !important;
  }
  .tenant-form .tenant-wide,
  .tenant-form .tenant-address,
  .tenant-form .tenant-notes,
  .tenant-form .tenant-actions{
    grid-column:1 !important;
  }
}

/* Shared ERP safety/readability polish. */
.ajf-empty-row td{
  background:#f8fafc !important;
  text-align:center;
}
.ajf-empty-state{
  padding:18px 10px;
  color:#64748b;
  font-weight:700;
  border:1px dashed #cbd5e1;
  background:#ffffff;
  border-radius:6px;
}
.ajf-inline-search{
  display:flex;
  justify-content:flex-end;
  margin:8px 0 10px;
}
.ajf-inline-search input{
  width:min(100%,360px);
  min-height:34px;
  border:1px solid #b7bec7;
  border-radius:7px;
  background:#fff;
  padding:7px 10px;
}
.ajf-updated-meta{
  margin-top:4px;
  line-height:1.35;
}
.badge{
  font-weight:700;
}
.badge.paid,
.badge.cleared,
.badge.cash-paid,
.badge.received,
.badge.reconciled,
.badge.done,
.badge.approved,
.badge.completed,
.badge.settled{
  background:#dcfce7 !important;
  color:#166534 !important;
}
.badge.pending,
.badge.pdc,
.badge.deposited,
.badge.pending-collection,
.badge.payment-plan,
.badge.settlement-pending,
.badge.settlement,
.badge.cash-due,
.badge.due,
.badge.open,
.badge.draft,
.badge.notice-sent{
  background:#ffedd5 !important;
  color:#9a3412 !important;
}
.badge.bounced,
.badge.returned,
.badge.overdue,
.badge.legal,
.badge.legal-risk,
.badge.high-risk,
.badge.blocked,
.badge.cancelled,
.badge.canceled,
.badge.terminated,
.badge.reversed,
.badge.void{
  background:#fee2e2 !important;
  color:#b91c1c !important;
}
.badge.active,
.badge.rented,
.badge.occupied,
.badge.watchlist{
  background:#dbeafe !important;
  color:#1d4ed8 !important;
}
.badge.inactive,
.badge.vacant,
.badge.renewed,
.badge.normal,
.badge.n-a{
  background:#e5e7eb !important;
  color:#374151 !important;
}
.badge.closed{
  background:#111827 !important;
  color:#fff !important;
}

/* Low-risk ERP advanced helpers: global search, smart alerts, previews and duplicate warnings. */
#ajfGlobalSearchBtn,
#ajfAlertBellBtn{
  font-weight:700 !important;
}
#ajfAlertBellBtn span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  margin-left:4px;
  padding:0 6px;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:12px;
}
#ajfAlertBellBtn.has-alerts{
  background:#fff3cd !important;
  border-color:#d6b656 !important;
  color:#7c4a03 !important;
}
.ajf-global-search-box,
.ajf-smart-alerts-box,
.ajf-doc-preview-modal{
  width:min(94vw,980px);
  max-height:90vh;
  overflow:auto;
  background:#ffffff;
}
.ajf-global-search-input{
  width:100%;
  min-height:40px;
  margin:8px 0 10px;
  padding:9px 12px;
  border:1px solid #b7bec7;
  border-radius:7px;
  font-size:16px;
}
.ajf-global-search-results .grid td,
.ajf-smart-alerts-box .grid td{
  vertical-align:middle;
}
.ajf-doc-preview{
  margin-top:10px;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ajf-doc-preview iframe{
  width:100%;
  height:72vh;
  border:0;
  background:#fff;
}
.ajf-doc-preview img{
  display:block;
  max-width:100%;
  max-height:72vh;
  object-fit:contain;
}
.ajf-duplicate-warning{
  grid-column:1 / -1;
  margin:6px 0;
  padding:9px 12px;
  border:1px solid #fdba74;
  border-left:5px solid #f97316;
  border-radius:7px;
  background:#fff7ed;
  color:#9a3412;
  font-weight:700;
}
.ajf-contract-list-tools{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 6px;
}
.ajf-contract-list-tools h3{
  margin:0;
  white-space:nowrap;
}
.ajf-doc-quick-panel{
  width:min(860px,78vw);
  margin-left:auto;
  padding:8px;
  border:1px solid #b7bec7;
  background:#f8fafc;
}
.ajf-doc-quick-title{
  font-weight:700;
  margin-bottom:6px;
}
.ajf-doc-quick-panel label{
  display:inline-block;
  width:260px;
  margin:0 6px 6px 0;
  font-weight:700;
}
.ajf-doc-quick-panel select{
  width:100%;
  min-height:32px;
  margin-top:2px;
}
.ajf-doc-quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.ajf-doc-quick-actions button{
  min-height:30px;
}
.ajf-doc-launcher{
  margin-left:auto;
  white-space:nowrap;
}
.ajf-doc-filter-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:6px 0 10px;
  padding:8px;
  border:1px solid #d7e3f4;
  background:#f8fafc;
}
.ajf-doc-filter-tabs button{
  min-height:30px;
}
@media (max-width:900px){
  .ajf-contract-list-tools{display:block;}
  .ajf-doc-quick-panel{width:auto;margin-top:8px;}
  .ajf-doc-quick-panel label{width:100%;}
}

/* Owner advance modal polish */
.owner-advance-modal{
  width:min(980px,calc(100vw - 32px));
  max-height:calc(100vh - 40px);
  overflow:auto;
  background:#fff;
  border:1px solid #b9c6d4;
  border-radius:8px;
  box-shadow:0 18px 42px rgba(15,23,42,.28);
  position:relative;
}
.owner-advance-modal-close{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  width:28px;
  height:28px;
  border:1px solid #cbd5e1;
  border-radius:6px;
  background:#fff;
  cursor:pointer;
}
.owner-advance-modal-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:18px 48px 14px 18px;
  background:#f8fafc;
  border-bottom:1px solid #dbe3ef;
}
.owner-advance-modal-head-danger{
  background:#fff7ed;
  border-bottom-color:#fed7aa;
}
.owner-advance-modal-head h3{
  margin:3px 0 4px;
  font-size:20px;
}
.owner-advance-modal-head p{
  margin:0;
  color:#475569;
  line-height:1.4;
}
.owner-advance-modal-head>b{
  align-self:flex-start;
  margin-top:4px;
  padding:6px 10px;
  border-radius:999px;
  background:#e8f1ff;
  color:#1d4ed8;
  white-space:nowrap;
}
.owner-advance-eyebrow{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.owner-advance-modal-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:8px;
  padding:12px 14px;
  border-bottom:1px solid #e2e8f0;
  background:#fff;
}
.owner-advance-modal-summary>div{
  min-width:0;
  border:1px solid #e2e8f0;
  border-radius:7px;
  padding:9px 10px;
  background:#fbfdff;
}
.owner-advance-modal-summary span{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:700;
  margin-bottom:4px;
}
.owner-advance-modal-summary b{
  display:block;
  color:#111827;
  overflow-wrap:anywhere;
}
.owner-advance-lock-note{
  margin:12px 14px 0!important;
}
.owner-advance-modal-form{
  border:0!important;
  margin:0!important;
  padding:14px!important;
  grid-template-columns:repeat(3,minmax(180px,1fr))!important;
  align-items:end;
}
.owner-advance-modal-form label{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
  color:#334155;
  font-size:12px;
  font-weight:700;
}
.owner-advance-modal-form input,
.owner-advance-modal-form select,
.owner-advance-modal-form textarea{
  min-height:34px;
  border:1px solid #cbd5e1;
  border-radius:7px;
  padding:7px 9px;
}
.owner-advance-modal-form textarea{
  min-height:82px;
  resize:vertical;
}
.owner-advance-modal-form .wide,
.owner-advance-section-title,
.owner-advance-modal-actions{
  grid-column:1 / -1!important;
}
.owner-advance-section-title{
  margin-top:4px;
  padding-top:4px;
  color:#0f172a;
  font-weight:700;
  border-top:1px solid #e2e8f0;
}
.owner-advance-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:4px;
}
.owner-advance-modal-actions button{
  min-width:140px;
}
.owner-advance-apply-box{
  grid-column:1 / -1;
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#f8fafc;
  padding:12px;
}
.owner-advance-apply-box h4{
  margin:0 0 10px;
}
.owner-advance-apply-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:8px;
  margin-bottom:10px;
}
.owner-advance-apply-summary>div{
  border:1px solid #dbe4ee;
  border-radius:7px;
  background:#fff;
  padding:9px 10px;
}
.owner-advance-apply-summary span{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:700;
}
.owner-advance-apply-summary b{
  display:block;
  margin-top:3px;
  color:#0f172a;
  font-size:16px;
}
@media(max-width:760px){
  .owner-advance-modal-form{
    grid-template-columns:1fr!important;
  }
  .owner-advance-modal-head{
    display:block;
  }
  .owner-advance-modal-actions{
    flex-direction:column-reverse;
  }
  .owner-advance-modal-actions button{
    width:100%;
  }
}

/* Clean Building Options screen */
.building-options-screen{
  padding:12px;
}
.building-options-title{
  align-items:center;
  gap:10px;
}
.building-options-title h3{
  margin:0;
}
.building-options-info{
  display:grid;
  grid-template-columns:1fr 2fr 1fr;
  gap:8px;
  margin:8px 0 10px;
  padding:8px;
  border:1px solid #c8d7e7;
  border-radius:7px;
  background:#f7fbff;
}
.building-options-info>div{
  min-width:0;
  padding:8px 10px;
  border:1px solid #d7e3f0;
  border-radius:6px;
  background:#fff;
}
.building-options-info span,
.building-options-actions .summary-card span{
  display:block;
  color:#475569;
  font-size:12px;
  line-height:1.35;
}
.building-options-info b{
  display:block;
  margin-top:3px;
  color:#111827;
  font-size:14px;
  overflow-wrap:anywhere;
}
.building-options-info small{
  display:block;
  margin-top:3px;
  color:#475569;
  line-height:1.35;
}
.building-options-actions.summary.mini{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:8px;
  padding:8px;
  border:1px solid #c8d7e7;
  border-radius:7px;
  background:#fff;
}
.building-options-actions .summary-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:5px;
  min-height:82px;
  text-align:left;
  border-radius:7px;
  background:#fff;
}
.building-options-actions .summary-card b{
  font-size:16px;
  line-height:1.2;
  white-space:normal;
  overflow-wrap:anywhere;
}
.building-options-actions .summary-card:disabled{
  opacity:.65;
  cursor:not-allowed;
}
@media(max-width:900px){
  .building-options-info{
    grid-template-columns:1fr;
  }
}

/* AJF dashboard refresh: visual layer only, keeps existing calculations/routes. */
.ajf-dashboard-refresh{
  background:#f3eddb;
  border:1px solid #d2bd84;
  border-radius:8px;
  overflow:hidden;
}
.ajf-dashboard-refresh>.section-title{
  display:none;
  align-items:flex-start;
  background:#f3eddb;
  border-bottom:1px solid #d2bd84;
  padding:2px 4px 8px;
}
.ajf-dashboard-refresh>.section-title h3{
  margin:0;
  font-size:20px;
  line-height:1.2;
}
.ajf-dashboard-refresh>.section-title>div:empty{
  display:none;
}
.ajf-dashboard-subline{
  display:none;
  margin:0 0 8px;
  padding:8px 10px;
  border:1px solid #c9b477;
  border-radius:7px;
  background:#fff8df;
  color:#5f4200;
  font-size:13px;
}
.ajf-dashboard-refresh>.summary.mini{
  background:#f3eddb;
  border:0;
  padding:5px 0;
  gap:6px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.ajf-dashboard-refresh .summary-card{
  position:relative;
  min-height:64px;
  padding:9px 10px 8px 44px;
  border:1px solid #d7e0ea;
  border-left-width:5px;
  border-radius:8px;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.ajf-dashboard-refresh .summary-card.kpi-blue{
  border-left-color:#2878c9;
}
.ajf-dashboard-refresh .summary-card.kpi-green{
  border-left-color:#159447;
}
.ajf-dashboard-refresh .summary-card.kpi-yellow{
  border-left-color:#d9a100;
}
.ajf-dashboard-refresh .summary-card.kpi-red{
  border-left-color:#c92828;
}
.ajf-dashboard-refresh .summary-card:hover{
  outline:2px solid #bfdbfe;
  background:#fff;
}
.ajf-dashboard-refresh .summary-card b{
  font-size:18px;
  line-height:1.15;
}
.ajf-dashboard-refresh .summary-card span{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:11px;
}
.ajf-dash-card-icon{
  position:absolute;
  left:10px;
  top:12px;
  width:25px;
  height:25px;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:#fff;
  background:#475569;
  font-style:normal;
  font-size:10px;
  font-weight:800;
}
.ajf-card-icon{
  display:none!important;
}
.kpi-blue .ajf-dash-card-icon{background:#2878c9;}
.kpi-green .ajf-dash-card-icon{background:#159447;}
.kpi-yellow .ajf-dash-card-icon{background:#d9a100;}
.kpi-red .ajf-dash-card-icon{background:#c92828;}
.ajf-dashboard-ops-grid{
  display:grid;
  grid-template-columns:minmax(420px,1.45fr) minmax(300px,.9fr);
  gap:8px;
  margin:8px 0;
}
.ajf-dashboard-ops-grid .reportbox{
  margin:0;
  border-radius:8px;
  border-color:#d7c696;
  background:#fffdf5;
}
.ajf-attention-panel .section-title,
.ajf-quick-panel .section-title{
  margin-bottom:8px;
}
.ajf-attention-panel .section-title{
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  align-items:center;
  gap:8px;
}
.ajf-attention-panel .section-title button{
  width:100%;
  min-height:30px;
}
.ajf-action-list{
  display:grid;
  gap:7px;
}
.ajf-action-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 132px;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:1px solid #e2e8f0;
  border-radius:7px;
  background:#fff;
}
.ajf-action-row b{
  width:24px;
  height:24px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#16a34a;
  color:#fff;
  font-size:12px;
}
.ajf-action-row.warning b{background:#d97706;}
.ajf-action-row.danger b{background:#dc2626;}
.ajf-action-row span{
  font-weight:700;
  color:#0f172a;
}
.ajf-action-row button,
.ajf-quick-actions button{
  min-height:28px;
  border:1px solid #9fb0bf;
  border-radius:6px;
  background:#fff;
  cursor:pointer;
  font-weight:700;
}
.ajf-action-row button{
  width:100%;
  white-space:nowrap;
}
.ajf-action-row button:hover,
.ajf-quick-actions button:hover{
  background:#eff6ff;
}
.ajf-quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.ajf-dashboard-refresh .ajf-financial-overview,
.ajf-dashboard-refresh .ajf-donut-card,
.ajf-dashboard-refresh .ajf-top-buildings{
  border-color:#d7e0ea;
  border-radius:8px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  background:#fffdf5;
}
.ajf-dashboard-refresh .ajf-financial-overview{
  padding-bottom:8px;
}
.ajf-dashboard-refresh .ajf-chart-title{
  margin-bottom:6px;
}
.ajf-dashboard-refresh .ajf-chart-summary{
  padding:4px 0;
}
.ajf-dashboard-refresh .ajf-chart-summary .summary-card{
  min-height:54px;
}
.ajf-dashboard-refresh .ajf-fin-chart{
  min-height:170px;
  padding:10px 8px 2px;
  background:
    linear-gradient(to bottom,#e6d8ad 1px,transparent 1px) 0 0/100% 33.333%,
    #fffdf5;
}
.ajf-dashboard-refresh .ajf-fin-month{
  min-height:150px;
}
.ajf-dashboard-refresh .ajf-fin-bars{
  height:112px;
  gap:6px;
}
.ajf-dashboard-refresh .ajf-fin-bars span{
  width:19px;
}
.ajf-dashboard-refresh .ajf-month-select{
  min-height:24px;
  font-size:10.5px;
}
@media(max-width:980px){
  .ajf-dashboard-ops-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .ajf-action-row{
    grid-template-columns:30px 1fr;
  }
  .ajf-action-row button{
    grid-column:2;
  }
  .ajf-attention-panel .section-title{
    grid-template-columns:1fr;
  }
  .ajf-attention-panel .section-title button{
    width:auto;
    justify-self:start;
  }
  .ajf-quick-actions{
    grid-template-columns:1fr;
  }
}

/* AJF modern dashboard redesign */
body.ajf-modern-dashboard-active{
  background:#f5f7fb;
  color:#111827;
}
body.ajf-modern-dashboard-active .app{
  background:#f5f7fb;
}
body.ajf-modern-dashboard-active main{
  background:#f8f4e8;
}
body.ajf-modern-dashboard-active .top,
body.ajf-modern-dashboard-active .toolbar,
body.ajf-modern-dashboard-active #summary,
body.ajf-modern-dashboard-active #buildingCards{
  display:none!important;
}
body.ajf-modern-dashboard-active #content{
  padding:0;
}
.ajf-modern-dashboard{
  padding:18px 20px 24px;
  max-width:1680px;
  margin:0 auto;
  background:linear-gradient(180deg,#fcf9f1 0%,#f8f2e4 100%);
}
.ajf-modern-header{
  display:grid;
  grid-template-columns:minmax(720px,1020px) 1fr;
  gap:14px;
  align-items:center;
  margin-bottom:16px;
}
.ajf-modern-header-tools button,
.ajf-modern-panel-title button{
  border:1px solid #d9e1ef;
  background:#fff;
  color:#0f172a;
  border-radius:7px;
  min-height:34px;
  padding:7px 10px;
  cursor:pointer;
  font-weight:700;
}
.ajf-modern-search{
  position:relative;
  display:block;
}
.ajf-modern-search-row{
  display:grid;
  grid-template-columns:max-content minmax(300px,1.3fr) minmax(190px,.7fr);
  gap:10px;
  align-items:center;
  min-width:0;
}
.ajf-modern-dashboard-clock{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 11px;
  border:1px solid #d5deec;
  border-radius:8px;
  background:#fffdf8;
  color:#101b34;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.ajf-modern-search input{
  width:100%;
  height:42px;
  border:1px solid #d5deec;
  border-radius:8px;
  padding:0 42px 0 16px;
  background:#fffdf8;
  color:#111827;
}
.ajf-modern-search span{
  position:absolute;
  right:13px;
  top:9px;
  color:#52627a;
  font-weight:700;
}
.ajf-modern-screen-search input{
  height:38px;
}
.ajf-modern-header-tools{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.ajf-modern-header-tools .ajf-modern-alert-button{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ajf-modern-header-tools .ajf-modern-alert-button.has-alerts{
  background:#fff7ed;
  border-color:#fb923c;
  color:#9a3412;
}
.ajf-modern-alert-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1;
}
.ajf-modern-header-tools .ajf-modern-current-user{
  border:1px solid #d9e1ef;
  border-radius:8px;
  min-height:34px;
  padding:8px 12px;
  background:#fffdf8;
  color:#101b34;
  font-weight:700;
  white-space:nowrap;
}
.ajf-modern-alert-strip,
.ajf-modern-bottom-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fffdf8;
  border:1px solid #e0e7f2;
  border-radius:8px;
  box-shadow:0 8px 24px rgba(15,23,42,.05);
  margin-bottom:18px;
  overflow:hidden;
}
.ajf-modern-bottom-strip{
  grid-template-columns:repeat(8,1fr);
  margin-top:18px;
}
.ajf-modern-alert-metric{
  min-height:66px;
  padding:14px 16px;
  display:grid;
  align-content:center;
  gap:5px;
  border-right:1px solid #e8eef7;
}
.ajf-modern-alert-metric:last-child{
  border-right:0;
}
.ajf-modern-alert-metric span{
  color:#53627a;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
}
.ajf-modern-alert-metric b{
  color:#0f172a;
  font-size:20px;
}
.ajf-modern-alert-metric b.good{color:#079455;}
.ajf-modern-alert-metric b.bad{color:#ef4444;}
.ajf-modern-alert-metric b.warn{color:#f59e0b;}
.ajf-modern-alert-metric b.blue{color:#2563eb;}
.ajf-modern-big-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.ajf-modern-big-card,
.ajf-modern-mini-card,
.ajf-modern-action,
.ajf-modern-today-card{
  border:1px solid #e0e7f2;
  border-radius:8px;
  background:#fffdf8;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  cursor:pointer;
}
.ajf-modern-big-card{
  position:relative;
  min-height:104px;
  padding:17px 64px 16px 16px;
  text-align:left;
  overflow:hidden;
}
.ajf-modern-big-card:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,0),rgba(255,255,255,.65));
  pointer-events:none;
}
.ajf-modern-big-card.green{
  background:linear-gradient(135deg,#edfdf5 0%,#fbfffd 100%);
  border-color:#b9ead2;
}
.ajf-modern-big-card.blue{
  background:linear-gradient(135deg,#eef5ff 0%,#fbfdff 100%);
  border-color:#bfd8ff;
}
.ajf-modern-big-card.orange{background:#fff7ed;}
.ajf-modern-big-card.purple{
  background:linear-gradient(135deg,#f5f0ff 0%,#fffdff 100%);
  border-color:#d8c7ff;
}
.ajf-modern-big-card.red{background:#fff5f5;}
.ajf-modern-kicker{
  display:block;
  color:#106a4a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.ajf-modern-big-card.blue .ajf-modern-kicker{color:#1d4ed8;}
.ajf-modern-big-card.orange .ajf-modern-kicker{color:#c2410c;}
.ajf-modern-big-card.purple .ajf-modern-kicker{color:#6d28d9;}
.ajf-modern-big-card.red .ajf-modern-kicker{color:#dc2626;}
.ajf-modern-big-card b{
  display:block;
  margin:10px 0 7px;
  font-size:23px;
  color:#101827;
}
.ajf-modern-big-card small{
  color:#60708a;
  font-size:12px;
}
.ajf-modern-big-card i{
  position:absolute;
  right:16px;
  top:29px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#10b981;
  color:#fff;
  font-style:normal;
  font-weight:800;
  box-shadow:0 10px 18px rgba(16,185,129,.22);
}
.ajf-modern-big-card.green i{background:#10b981;box-shadow:0 10px 18px rgba(16,185,129,.24);}
.ajf-modern-big-card.blue i{background:#2563eb;box-shadow:0 10px 18px rgba(37,99,235,.24);}
.ajf-modern-big-card.orange i{background:#f97316;box-shadow:0 10px 18px rgba(249,115,22,.24);}
.ajf-modern-big-card.purple i{background:#7c3aed;box-shadow:0 10px 18px rgba(124,58,237,.24);}
.ajf-modern-big-card.red i{background:#ef4444;box-shadow:0 10px 18px rgba(239,68,68,.24);}
.ajf-modern-mini-grid{
  display:grid;
  grid-template-columns:repeat(8,minmax(100px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.ajf-modern-mini-card{
  min-height:86px;
  padding:12px 10px;
  display:grid;
  grid-template-columns:38px 1fr;
  grid-template-rows:auto auto auto;
  gap:2px 10px;
  text-align:left;
  align-items:center;
}
.ajf-modern-mini-card i{
  grid-row:1/4;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#eaf2ff;
  color:#2563eb;
  font-style:normal;
  font-weight:800;
}
.ajf-modern-mini-card.green i{background:#e8f8ef;color:#0f9f61;}
.ajf-modern-mini-card.orange i{background:#fff1df;color:#ea580c;}
.ajf-modern-mini-card.red i{background:#feecec;color:#dc2626;}
.ajf-modern-mini-card.purple i{background:#f1e9ff;color:#7c3aed;}
.ajf-modern-mini-card span{
  color:#53627a;
  font-size:10.5px;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
}
.ajf-modern-mini-card b{
  font-size:21px;
  color:#0f172a;
}
.ajf-modern-mini-card small{
  color:#667085;
  font-size:11px;
}
.ajf-modern-work-grid{
  display:grid;
  grid-template-columns:minmax(280px,360px) 1fr;
  gap:14px;
  margin-bottom:16px;
}
.ajf-modern-panel,
.ajf-modern-analytics-card{
  background:#fffdf8;
  border:1px solid #e0e7f2;
  border-radius:8px;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  padding:16px;
}
.ajf-modern-panel-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.ajf-modern-panel-title h3{
  margin:0;
  font-size:18px;
}
.ajf-modern-attn-row{
  width:100%;
  display:grid;
  grid-template-columns:24px 1fr auto;
  align-items:center;
  gap:9px;
  min-height:34px;
  border:0;
  border-bottom:1px solid #edf1f7;
  background:#fffdf8;
  text-align:left;
  cursor:pointer;
  padding:6px 0;
}
.ajf-modern-attn-row i{
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#f59e0b;
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.ajf-modern-attn-row i.danger{background:#ef4444;}
.ajf-modern-attn-row i.warn{background:#f59e0b;}
.ajf-modern-attn-row span{
  color:#111827;
  font-weight:700;
  font-size:12px;
}
.ajf-modern-attn-row b{
  min-width:30px;
  text-align:center;
  border:1px solid #fed7d7;
  color:#dc2626;
  border-radius:999px;
  padding:3px 8px;
  background:#fff7f7;
  font-size:12px;
}
.ajf-modern-attn-row b.warn{
  border-color:#fed7aa;
  color:#ea580c;
  background:#fff7ed;
}
.ajf-modern-attn-empty{
  border:1px dashed #cbd5e1;
  border-radius:8px;
  padding:14px;
  color:#60708a;
  font-weight:700;
  text-align:center;
}
.ajf-modern-wide-action{
  width:100%;
  margin-top:12px;
  min-height:34px;
  border:1px solid #e0e7f2;
  border-radius:7px;
  background:#fafbff;
  color:#2836b8;
  font-weight:800;
  cursor:pointer;
}
.ajf-modern-action-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(95px,1fr));
  gap:12px;
}
.ajf-modern-actions{
  display:flex;
  flex-direction:column;
}
.ajf-modern-action{
  min-height:122px;
  padding:16px 10px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:11px;
  font-weight:800;
  color:#111827;
}
.ajf-modern-action i{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#eef4ff;
  color:#2563eb;
  font-style:normal;
  font-weight:900;
  font-size:22px;
}
.ajf-modern-today-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(190px,1fr));
  gap:10px;
  margin-top:12px;
  max-width:560px;
}
.ajf-modern-today-card{
  min-height:72px;
  padding:12px 14px;
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto auto;
  gap:2px 10px;
  align-items:center;
  text-align:left;
}
.ajf-modern-today-card i{
  grid-row:1/4;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#e8f8ef;
  color:#079455;
  font-style:normal;
  font-size:12px;
  font-weight:900;
}
.ajf-modern-today-card span{
  color:#344563;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  text-transform:uppercase;
}
.ajf-modern-today-card b{
  color:#0f172a;
  font-size:20px;
  line-height:1.1;
}
.ajf-modern-today-card small{
  color:#667085;
  font-size:11px;
}
.ajf-modern-today-card.green b{color:#079455;}
.ajf-modern-today-card.orange i{background:#fff1df;color:#ea580c;}
.ajf-modern-today-card.orange b{color:#ea580c;}
.ajf-modern-action-filter-row{
  margin-top:auto;
  padding-top:14px;
  display:flex;
  justify-content:flex-end;
}
.ajf-modern-action-filters{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.ajf-modern-action-filter-row .ajf-chart-check{
  background:#fffdf8;
}
.ajf-modern-analytics-grid{
  display:grid;
  grid-template-columns:minmax(520px,1.85fr) repeat(3,minmax(240px,1fr));
  gap:14px;
  align-items:stretch;
}
.ajf-modern-analytics-card{
  min-width:0;
  overflow:hidden;
  padding:0;
  min-height:326px;
  display:flex;
}
.ajf-modern-analytics-card .reportbox{
  border:0;
  margin:0;
  box-shadow:none;
  background:#fffdf8;
  padding:16px;
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
}
.ajf-modern-analytics-card .section-title{
  margin-bottom:10px;
}
.ajf-modern-analytics-card.cash .ajf-chart-title{
  display:grid;
  grid-template-columns:minmax(112px,auto) minmax(0,1fr);
  align-items:start;
  gap:10px;
}
.ajf-modern-analytics-card.cash .ajf-chart-controls{
  justify-content:flex-end;
  text-align:right;
}
.ajf-modern-analytics-card.cash .ajf-export-menu{
  display:none!important;
}
.ajf-modern-analytics-card h3{
  font-size:17px;
  margin:0 0 12px;
}
.ajf-modern-analytics-card .ajf-mtd-head h3{
  margin:0;
  color:#17233a;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.ajf-modern-analytics-card .ajf-mtd-chart{
  min-height:224px;
}
.ajf-modern-analytics-card .ajf-mtd-chart svg{
  height:224px;
}
.ajf-modern-analytics-card .ajf-chart-controls label,
.ajf-modern-analytics-card .ajf-chart-controls span{
  font-size:11px;
}
.ajf-modern-analytics-card .ajf-chart-summary{
  display:none;
}
.ajf-modern-analytics-card .ajf-fin-chart{
  min-height:220px;
  flex:1;
}
.ajf-modern-analytics-card .ajf-donut-card .ajf-donut-wrap{
  grid-template-columns:118px minmax(0,1fr);
  align-items:center;
  gap:12px;
  flex:1;
}
.ajf-modern-analytics-card .ajf-donut-card .ajf-donut{
  width:118px;
  height:118px;
}
.ajf-modern-analytics-card .ajf-donut-card .ajf-donut span{
  width:52px;
  height:52px;
}
.ajf-modern-analytics-card .ajf-donut-card .ajf-donut-wrap > div:last-child{
  min-width:0;
}
.ajf-modern-analytics-card .ajf-donut-card .grid{
  width:100%;
  table-layout:fixed;
}
.ajf-modern-analytics-card .grid th{
  background:#f8fafc;
  color:#334155;
  position:static;
}
.ajf-modern-analytics-card .grid th,
.ajf-modern-analytics-card .grid td{
  border:0;
  border-bottom:1px solid #eef2f7;
  font-size:11px;
  padding:5px 4px;
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
}
.ajf-modern-analytics-card .ajf-donut-card .grid th:nth-child(1),
.ajf-modern-analytics-card .ajf-donut-card .grid td:nth-child(1){
  width:48%;
}
.ajf-modern-analytics-card .ajf-donut-card .grid th:nth-child(2),
.ajf-modern-analytics-card .ajf-donut-card .grid td:nth-child(2){
  width:34%;
}
.ajf-modern-analytics-card .ajf-donut-card .grid th:nth-child(3),
.ajf-modern-analytics-card .ajf-donut-card .grid td:nth-child(3){
  width:18%;
}
.ajf-modern-analytics-card .ajf-donut-total{
  font-size:12px;
  gap:6px;
  padding-top:8px;
}
.ajf-modern-analytics-card .ajf-dot{
  margin-right:4px;
}
.ajf-modern-analytics-card .ajf-top-buildings .grid th:nth-child(3),
.ajf-modern-analytics-card .ajf-top-buildings .grid td:nth-child(3),
.ajf-modern-analytics-card .ajf-top-buildings .grid th:nth-child(5),
.ajf-modern-analytics-card .ajf-top-buildings .grid td:nth-child(5){
  display:none;
}
.ajf-top-building-title{
  display:block;
  margin-bottom:14px;
}
.ajf-top-building-title h3{
  margin:0;
}
.ajf-top-building-title > span{
  border:1px solid #e0e7f2;
  border-radius:7px;
  padding:6px 9px;
  color:#475569;
  background:#fff;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.ajf-building-bars{
  display:grid;
  gap:14px;
  padding:10px 0 4px;
}
.ajf-building-bar-row{
  display:grid;
  grid-template-columns:minmax(64px,1fr) minmax(52px,1.2fr) minmax(68px,max-content);
  align-items:center;
  gap:8px;
  width:100%;
  border:0;
  background:transparent;
  padding:1px 0;
  color:#0f172a;
  text-align:left;
  cursor:pointer;
}
.ajf-building-bar-row:hover .ajf-building-bar-track{
  background:#eef4fb;
}
.ajf-building-bar-name{
  color:#243044;
  font-size:12px;
  font-weight:700;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ajf-building-bar-track{
  position:relative;
  height:15px;
  background:#f8fafc;
  border-radius:2px;
  overflow:hidden;
  min-width:0;
}
.ajf-building-bar-track i{
  display:block;
  height:100%;
  border-radius:3px;
  background:#22c55e;
}
.ajf-building-bar-track i.negative{
  background:#ef4444;
}
.ajf-building-bar-row b{
  color:#0f172a;
  font-size:11px;
  line-height:1;
  text-align:right;
  white-space:nowrap;
  min-width:68px;
}
.ajf-building-bar-row b.positive{
  color:#0f766e;
}
.ajf-building-bar-row b.negative{
  color:#dc2626;
}

/* Modern dashboard: keep the original sidebar completely unchanged. */
body.ajf-modern-dashboard-active aside{
  width:235px !important;
  padding:10px 8px !important;
  background:#f3edd9 !important;
  border-right:1px solid #d3bf83 !important;
  color:#26323f !important;
  box-shadow:none !important;
}
body.ajf-modern-dashboard-active aside > *{
  display:block !important;
}
body.ajf-modern-dashboard-active aside > .submenu{
  display:none !important;
}
body.ajf-modern-dashboard-active aside > .submenu.open{
  display:block !important;
}
@media(max-width:1300px){
  body.ajf-modern-dashboard-active aside{width:235px !important;}
  .ajf-modern-header{grid-template-columns:minmax(420px,1fr) auto;}
  .ajf-modern-search-row{grid-template-columns:1fr 1fr;}
  .ajf-modern-dashboard-clock{grid-column:1/-1;justify-content:flex-start;}
  .ajf-modern-big-grid{grid-template-columns:repeat(2,1fr);}
  .ajf-modern-mini-grid{grid-template-columns:repeat(4,1fr);}
  .ajf-modern-analytics-grid{grid-template-columns:1fr 1fr;}
  .ajf-modern-action-grid{grid-template-columns:repeat(4,1fr);}
  .ajf-modern-bottom-strip{grid-template-columns:repeat(4,1fr);}
}
@media(max-width:900px){
  body.ajf-modern-dashboard-active .app{display:flex;height:100vh;}
  body.ajf-modern-dashboard-active aside{width:190px !important;max-height:none;}
  .ajf-modern-header{grid-template-columns:1fr;}
  .ajf-modern-search-row{grid-template-columns:1fr;}
  .ajf-modern-dashboard-clock{grid-column:auto;}
  .ajf-modern-header-tools{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap;}
  .ajf-modern-alert-strip,
  .ajf-modern-bottom-strip,
  .ajf-modern-big-grid,
  .ajf-modern-mini-grid,
  .ajf-modern-work-grid,
  .ajf-modern-analytics-grid{
    grid-template-columns:1fr;
  }
  .ajf-modern-action-grid{grid-template-columns:repeat(2,1fr);}
  .ajf-modern-today-grid{grid-template-columns:1fr;max-width:none;}
}

/* Two-page A4 tenancy contract print */
.ajf-a4-contract{
  background:#e9edf2;
  color:#243244;
  max-width:none;
  margin:0 auto;
  padding:12px 0;
  border:0;
  box-shadow:none;
  font-family:Arial,Helvetica,sans-serif;
}
.tc-a4-page{
  position:relative;
  width:210mm;
  height:297mm;
  margin:0 auto 12px;
  padding:6mm 7mm;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #d1d8e0;
  overflow:hidden;
  page-break-after:always;
  break-after:page;
}
.tc-a4-page:last-child{
  page-break-after:auto;
  break-after:auto;
}
.tc-a4-watermark{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:76px;
  font-weight:900;
  letter-spacing:12px;
  color:rgba(147,48,72,.055);
  pointer-events:none;
  z-index:0;
}
.tc-a4-page > *:not(.tc-a4-watermark){
  position:relative;
  z-index:1;
}
.tc-a4-head{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  min-height:13mm;
  border-bottom:1px solid #1f2f3f;
  margin-bottom:3mm;
  padding:0 1mm 1.8mm;
  color:#263849;
}
.tc-a4-gov{
  position:relative;
  color:#a62020;
  text-transform:uppercase;
  font-size:7px;
  line-height:1.15;
  padding-left:1mm;
  padding-top:6mm;
}
.tc-a4-gov:before{
  content:"Dubai";
  position:absolute;
  left:0;
  top:-1mm;
  color:#b91c1c;
  font-family:Georgia,serif;
  font-size:17px;
  font-style:italic;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:none;
}
.tc-a4-gov b{
  display:block;
  font-size:7.5px;
  letter-spacing:.04em;
}
.tc-a4-ld{
  position:relative;
  text-align:right;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  padding-right:16mm;
  padding-top:1mm;
}
.tc-a4-ld span{
  display:block;
  font-size:10.5px;
}
.tc-a4-ld:after{
  content:"";
  position:absolute;
  right:1mm;
  top:50%;
  width:12mm;
  height:12mm;
  transform:translateY(-50%);
  border:1px solid #7a8b97;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 65%, #16a34a 0 9%, transparent 10%),
    linear-gradient(90deg, transparent 45%, #16a34a 46% 54%, transparent 55%),
    linear-gradient(25deg, transparent 45%, #16a34a 46% 54%, transparent 55%),
    linear-gradient(-25deg, transparent 45%, #16a34a 46% 54%, transparent 55%),
    #fff;
}
.tc-a4-title{
  display:grid;
  grid-template-columns:1fr 1.4fr 1fr;
  align-items:center;
  border:1px solid #738092;
  min-height:17mm;
  margin-bottom:5mm;
  padding:2mm 4mm;
}
.tc-a4-title > div{
  font-size:12px;
  color:#263849;
}
.tc-a4-title > div span{
  display:inline-block;
  min-width:36mm;
  margin:0 4px;
  border-bottom:1px dashed #9ca3af;
  font-size:12px;
}
.tc-a4-title h2{
  margin:0;
  text-align:center;
  color:#263849;
  font-size:22px;
  line-height:1.05;
  letter-spacing:1px;
}
.tc-a4-title h2 b{
  font-size:18px;
  letter-spacing:.04em;
}
.tc-a4-section{
  margin:0 0 4mm;
}
.tc-a4-section h4{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0 0 2mm;
  padding:1.8mm 4mm;
  background:#38536e;
  color:#fff;
  font-size:13px;
  line-height:1.1;
}
.tc-a4-line{
  display:grid;
  grid-template-columns:29mm minmax(0,1fr) 29mm;
  align-items:center;
  gap:2mm;
  min-height:6.5mm;
  border-bottom:1px dashed #aeb7c1;
  padding:0 2mm .8mm;
}
.tc-a4-label,
.tc-a4-ar{
  color:#263849;
  font-size:9px;
  white-space:nowrap;
}
.tc-a4-ar{
  text-align:right;
  direction:rtl;
}
.tc-a4-line b{
  min-width:0;
  color:#111827;
  font-size:11.4px;
  line-height:1.12;
  font-weight:750;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.tc-a4-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 5mm;
}
.tc-a4-two .tc-a4-line{
  grid-template-columns:34mm minmax(0,1fr) 18mm;
}
.tc-a4-two .tc-a4-label{
  white-space:normal;
  line-height:1.05;
}
.tc-a4-usage{
  display:grid;
  grid-template-columns:27mm repeat(3,max-content) 1fr;
  align-items:center;
  gap:4mm;
  min-height:7mm;
  padding:0 2mm .8mm;
  border-bottom:1px dashed #aeb7c1;
  font-size:9.5px;
}
.tc-a4-usage span:last-child{
  text-align:right;
}
.tc-a4-usage i{
  display:inline-block;
  width:10px;
  height:10px;
  border:1px solid #526273;
  border-radius:50%;
  margin-right:4px;
  vertical-align:-1px;
}
.tc-a4-usage i.on{
  background:#111827;
  box-shadow:inset 0 0 0 2px #fff;
}
.tc-a4-terms{
  margin:0;
  padding-left:5mm;
  list-style-position:outside;
}
.tc-a4-terms li{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7mm;
  margin:0 0 2mm;
  font-size:9.7px;
  line-height:1.25;
  color:#273849;
}
.tc-a4-terms li::marker{
  font-weight:800;
}
.tc-a4-terms p{
  margin:0;
}
.tc-a4-terms p[dir="rtl"]{
  text-align:right;
}
.tc-a4-terms-a li{
  font-size:9.5px;
  margin-bottom:1.5mm;
}
.tc-a4-terms-b{
  padding-top:2mm;
}
.tc-a4-terms-b li{
  font-size:9.3px;
  margin-bottom:2.7mm;
}
.tc-a4-rights{
  margin:0;
  padding:1mm 0 0;
  list-style:none;
}
.tc-a4-rights li{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8mm;
  margin-bottom:2mm;
  font-size:10px;
  line-height:1.25;
}
.tc-a4-rights li:before{
  content:"";
  position:absolute;
}
.tc-a4-rights span:first-child:before{
  content:"●";
  margin-right:3mm;
  color:#38536e;
}
.tc-a4-attachments{
  padding:1mm 3mm 0;
  font-size:10px;
}
.tc-a4-attachments p{
  margin:0 0 2mm;
}
.tc-a4-additional{
  margin:0;
  padding:0;
  list-style:none;
}
.tc-a4-additional li{
  display:grid;
  grid-template-columns:7mm 1fr 7mm;
  align-items:center;
  gap:2mm;
  border-bottom:1px dashed #c9d0d8;
  min-height:7mm;
  font-size:8.5px;
  line-height:1.2;
}
.tc-a4-additional li > span{
  display:grid;
  place-items:center;
  width:6mm;
  height:6mm;
  border:1px solid #ccd5df;
  border-radius:50%;
  color:#6b7280;
  font-weight:800;
}
.tc-a4-additional p,
.tc-a4-note{
  margin:0;
}
.tc-a4-note{
  display:flex;
  justify-content:space-between;
  gap:5mm;
  padding-top:1.5mm;
  font-size:9px;
  line-height:1.25;
}
.tc-a4-signatures{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14mm;
  padding-top:1mm;
}
.tc-a4-signatures div{
  height:21mm;
  border:1px solid #8b98a7;
  display:grid;
  grid-template-columns:max-content 1fr max-content max-content;
  align-items:end;
  gap:4mm;
  padding:0 3mm 3mm;
  box-sizing:border-box;
  font-size:11px;
}
.tc-a4-signatures b{
  font-size:13px;
  font-weight:700;
}
.tc-a4-footer{
  position:absolute!important;
  left:7mm;
  right:7mm;
  bottom:3.5mm;
  border:1px solid #9ba7b5;
  padding:1.5mm 2mm;
  text-align:center;
  color:#263849;
  font-size:7.8px;
  line-height:1.35;
}
.tc-a4-footer div{
  white-space:normal;
}
.tc-a4-page-two .tc-a4-head{
  min-height:13mm;
}
.tc-a4-page-two .tc-a4-section{
  margin-bottom:3.5mm;
}
@media print{
  @page{
    size:A4;
    margin:0;
  }
  .ajf-a4-contract{
    background:#fff!important;
    padding:0!important;
    margin:0!important;
  }
  .tc-a4-page{
    width:210mm!important;
    height:297mm!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
  }
}

.ajf-historical-mode-panel{
  border:1px solid #cbd5e1;
  background:#f8fafc;
}
.ajf-historical-mode-panel.is-on{
  border-color:#f59e0b;
  background:#fff7ed;
}
.ajf-historical-mode-panel .section-title{
  margin-bottom:8px;
}
.ajf-historical-mode-panel p{
  margin:8px 0 12px;
  color:#334155;
  line-height:1.45;
}

/* AJF layout stability: keep scrollbars, filters, and dropdowns from resizing pages. */
html{
  scrollbar-gutter:stable;
}
html,
body,
.app{
  width:100%;
  max-width:100%;
}
.app{
  overflow:hidden;
}
aside{
  flex:0 0 210px;
  scrollbar-gutter:stable;
}
@media(max-width:1000px){
  aside{
    flex-basis:160px;
  }
}
main,
.app main{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  overflow-x:auto;
  overflow-y:scroll;
  scrollbar-gutter:stable;
}
#content,
.panel,
.reportbox,
.ajf-screen{
  min-width:0;
  max-width:100%;
}
.summary,
.summary.mini,
.form,
.form-grid,
.filterbar,
.pro-filterbar,
.contract-filterbar,
.contract-filters,
.bank-tx-filters{
  min-width:0;
  max-width:100%;
}
.summary-card,
.form > label,
.form-grid > label,
.filterbar > label,
.pro-filterbar > label,
.contract-filterbar > label,
.contract-filters > label{
  min-width:0;
}
.filterbar input,
.filterbar select,
.pro-filterbar input,
.pro-filterbar select,
.form input,
.form select,
.form textarea,
.form-grid input,
.form-grid select,
.form-grid textarea{
  min-width:0;
  max-width:100%;
}
.grid,
.advanced-grid-table{
  max-width:100%;
}
.advanced-grid-wrap,
.excel-scroll,
.table-wrap,
.reportbox{
  scrollbar-gutter:stable;
}
.ajf-combo,
.ajf-combo-btn,
.ajf-combo-menu{
  min-width:0;
  max-width:100%;
}
.ajf-combo-menu{
  contain:layout paint;
}

/* Cheque History: clean header/filter layout and keep status badges readable. */
.cheque-history-report .cheque-history-title{
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.cheque-history-report .cheque-history-title h3{
  margin:0;
  white-space:nowrap;
}
.cheque-history-report .ajf-page-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.cheque-history-report .cheque-history-filters{
  grid-template-columns:repeat(6,minmax(150px,1fr));
  align-items:end;
}
.cheque-history-report .cheque-history-filters label,
.cheque-history-report .cheque-history-filters button{
  min-width:0;
}
.cheque-history-report .cheque-history-filters button{
  height:34px;
  align-self:end;
}
.cheque-history-report .summary.mini{
  grid-template-columns:repeat(4,minmax(180px,1fr));
}
.cheque-history-report .grid{
  min-width:1280px;
}
.cheque-history-report .grid th:nth-child(9),
.cheque-history-report .grid td:nth-child(9){
  width:112px;
  min-width:112px;
  text-align:center;
  white-space:nowrap;
}
.cheque-history-report .cheque-status-badge{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:58px;
  max-width:none;
  padding:4px 10px;
  line-height:1.2;
  white-space:nowrap;
  overflow:visible;
}
.problem-cheque-report .problem-cheque-title{
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.problem-cheque-report .problem-cheque-title h3{
  margin:0;
  white-space:nowrap;
}
.problem-cheque-report .ajf-page-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.problem-cheque-report .problem-cheque-filters{
  grid-template-columns:
    minmax(118px,1fr)
    minmax(118px,1fr)
    minmax(118px,1fr)
    minmax(130px,1.05fr)
    minmax(130px,1.05fr)
    minmax(128px,1.05fr)
    minmax(128px,1.05fr)
    minmax(128px,1.05fr)
    minmax(300px,1.6fr);
  align-items:end;
}
.problem-cheque-report .problem-cheque-filters label,
.problem-cheque-report .problem-cheque-filters button,
.problem-cheque-report .problem-cheque-filter-actions{
  min-width:0;
}
.problem-cheque-report .problem-cheque-filter-actions{
  display:grid;
  grid-template-columns:minmax(185px,1fr) minmax(108px,.62fr);
  gap:6px;
  align-self:end;
  justify-self:stretch;
}
.problem-cheque-report .problem-cheque-filters button{
  height:34px;
  align-self:end;
  width:100%;
}
.problem-cheque-report .summary.mini{
  grid-template-columns:repeat(4,minmax(180px,1fr));
}
@media(max-width:1200px){
  .cheque-history-report .cheque-history-filters{
    grid-template-columns:repeat(3,minmax(150px,1fr));
  }
  .problem-cheque-report .problem-cheque-filters{
    grid-template-columns:repeat(4,minmax(140px,1fr));
  }
  .problem-cheque-report .problem-cheque-filter-actions{
    grid-column:span 2;
  }
}
@media(max-width:760px){
  .cheque-history-report .cheque-history-filters,
  .problem-cheque-report .problem-cheque-filters,
  .problem-cheque-report .summary.mini,
  .cheque-history-report .summary.mini{
    grid-template-columns:1fr;
  }
  .problem-cheque-report .ajf-page-actions,
  .cheque-history-report .ajf-page-actions{
    width:100%;
    justify-content:flex-start;
    margin-left:0;
  }
  .problem-cheque-report .problem-cheque-filter-actions{
    grid-column:auto;
    grid-template-columns:1fr;
  }
}

.outgoing-cheque-filters{
  grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(230px,1fr) minmax(140px,170px) minmax(110px,140px) minmax(110px,140px);
  align-items:end;
}
.outgoing-cheque-filters button{
  min-height:34px;
}
.payment-voucher-filters{
  grid-template-columns:minmax(145px,170px) minmax(145px,170px) minmax(190px,1fr) minmax(150px,180px) minmax(130px,160px) minmax(100px,130px) minmax(100px,130px);
  align-items:end;
}
.payment-voucher-filters button{
  min-height:34px;
}
.tenant-receipt-filters{
  grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(170px,220px) minmax(110px,140px) minmax(110px,140px);
  align-items:end;
}
.tenant-receipt-filters button{
  min-height:34px;
}
@media(max-width:900px){
  .outgoing-cheque-filters,
  .payment-voucher-filters,
  .tenant-receipt-filters{
    grid-template-columns:1fr 1fr;
  }
}

.owner-name-cell{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:220px;
}
.profile-name-link{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  padding:4px 6px;
  border-radius:6px;
  cursor:pointer;
}
.profile-name-link:hover{
  background:#f4f8ff;
  box-shadow:inset 0 0 0 1px #b7d3ef;
}
.profile-name-link:focus-visible{
  outline:2px solid #2878c9;
  outline-offset:2px;
}
.profile-name-text{
  min-width:0;
  display:grid;
  gap:2px;
}
.profile-name-text b{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  line-height:1.15;
}
.tenant-profile-link{
  min-width:180px;
}
.owner-avatar{
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  color:#1f5f9c;
  background:linear-gradient(180deg,#eef7ff,#d9ecff);
  border:1px solid #9fc4e7;
  box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.owner-avatar svg,
.owner-profile-btn svg{
  width:17px;
  height:17px;
  fill:currentColor;
}
.owner-action-group{
  display:grid;
  grid-template-columns:minmax(96px,1fr) minmax(70px,.75fr);
  gap:5px;
  align-items:center;
  min-width:180px;
}
.owner-action-btn{
  min-height:32px;
  border:1px solid #b7c4d0;
  border-radius:7px;
  background:#fff;
  color:#172033;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.owner-action-btn:hover{
  background:#f4f8ff;
  border-color:#7fa8d5;
}
.owner-profile-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:#fff;
  border-color:#1f5f9c;
  background:linear-gradient(180deg,#2f80c8,#1f5f9c);
  box-shadow:0 2px 6px rgba(31,95,156,.22);
}
.owner-profile-btn:hover{
  color:#fff;
  background:linear-gradient(180deg,#3b8fd7,#2369ad);
  border-color:#184d82;
}
.owner-profile-summary{
  grid-template-columns:minmax(280px,1.25fr) repeat(5,minmax(170px,1fr));
  align-items:stretch;
}
.owner-profile-card{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  overflow:hidden;
}
.owner-profile-card .owner-avatar{
  width:40px;
  height:40px;
  flex-basis:40px;
}
.owner-profile-card .owner-avatar svg{
  width:20px;
  height:20px;
}
.owner-profile-card-text{
  min-width:0;
  display:grid;
  gap:2px;
}
.owner-profile-card-text b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
  line-height:1.15;
}
.owner-profile-card-text span{
  display:block;
}
@media(max-width:1320px){
  .owner-profile-summary{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  }
  .owner-profile-card{
    grid-column:1/-1;
  }
}
.owner-delete-btn{
  border-color:#e2b5b5;
  color:#9f1d1d;
  background:#fff7f7;
}
.owner-delete-btn:hover{
  background:#ffecec;
  border-color:#d97c7c;
}
.owner-money{
  font-weight:800;
  white-space:nowrap;
}
.owner-building-list{
  display:grid;
  gap:4px;
  min-width:150px;
}
.owner-status-stack{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  min-width:110px;
}
.owner-doc-cell{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 6px;
  align-items:center;
  min-width:110px;
}
.owner-doc-cell b{
  font-size:18px;
}
.owner-doc-cell span{
  color:#516276;
  font-size:12px;
}
.owner-doc-cell button{
  grid-column:1/-1;
  min-height:28px;
  border-radius:6px;
}
@media(max-width:900px){
  .owner-action-group{
    grid-template-columns:1fr;
    min-width:130px;
  }
}
.ajf-building-list-wrap{
  overflow:auto;
}
.ajf-building-list-wrap .grid th,
.ajf-building-list-wrap .grid td{
  vertical-align:top;
}
.ajf-building-list-row td{
  background:#fff;
}
.ajf-building-main-cell{
  min-width:240px;
}
.ajf-building-title{
  color:#174f8a;
  font-weight:800;
  line-height:1.25;
  margin-bottom:3px;
}
.ajf-building-payable-mini{
  margin-top:8px;
  display:grid;
  gap:3px;
  color:#45566a;
  font-size:12px;
  line-height:1.25;
}
.ajf-building-payable-mini b{
  color:#0f4fa8;
}
.ajf-building-owner-cell{
  min-width:155px;
  font-weight:700;
  line-height:1.35;
}
.ajf-building-lease-cell{
  min-width:210px;
  line-height:1.45;
}
.ajf-building-cell-sep{
  border-top:1px solid #d7dee8;
  margin:8px 0 6px;
}
.ajf-building-money{
  font-weight:800;
  white-space:nowrap;
}
.ajf-building-money.blue{
  color:#0f5fe8;
}
.ajf-building-money.ok{
  color:#04933b;
}
.ajf-building-money.warn{
  color:#ff5b00;
}
.ajf-building-location-cell{
  min-width:150px;
  line-height:1.35;
}
.ajf-building-actions{
  display:grid;
  gap:6px;
  min-width:120px;
}
.ajf-building-actions button{
  min-height:30px;
  border-radius:5px;
}
.ajf-building-actions .danger-lite{
  border-color:#ef9a9a;
  color:#b91c1c;
  background:#fff7f7;
}
.ajf-building-actions .danger-lite:hover{
  background:#ffecec;
}
.ajf-building-total-row td{
  background:#f4f7fb;
}
.ajf-property-setup-split{
  display:grid;
  grid-template-columns:minmax(640px,2fr) minmax(360px,1fr);
  gap:12px;
  align-items:start;
}
.ajf-property-setup-split .reportbox{
  min-width:0;
}
.ajf-property-setup-split .reportbox h3{
  margin-top:0;
}
.ajf-property-unit-list-wrap{
  overflow:auto;
}
.ajf-property-unit-list-wrap .grid th,
.ajf-property-unit-list-wrap .grid td{
  vertical-align:top;
}
@media(max-width:1200px){
  .ajf-property-setup-split{
    grid-template-columns:1fr;
  }
}

/* AJF canonical status colors:
   active = blue, renewed = gray, paid/cleared = green, pending = orange,
   payment plan/settlement = yellow-orange, bounced/cancelled/terminated = red,
   closed = black. */
:root{
  --ajf-green-bg:#dcfce7;
  --ajf-green-fg:#166534;
  --ajf-orange-bg:#ffedd5;
  --ajf-orange-fg:#9a3412;
  --ajf-red-bg:#fee2e2;
  --ajf-red-fg:#b91c1c;
  --ajf-blue-bg:#dbeafe;
  --ajf-blue-fg:#1d4ed8;
  --ajf-neutral-bg:#e5e7eb;
  --ajf-neutral-fg:#374151;
  --ajf-black-bg:#111827;
  --ajf-black-fg:#fff;
}
.badge.occupied,
.badge.rented,
.badge.paid,
.badge.cleared,
.badge.cash-paid,
.badge.received,
.badge.reconciled,
.badge.done,
.badge.approved,
.badge.completed,
.badge.settled{
  background:var(--ajf-green-bg) !important;
  color:var(--ajf-green-fg) !important;
}
.badge.pending,
.badge.pdc,
.badge.pending-pdc,
.badge.open-pdc,
.badge.deposited,
.badge.issued,
.badge.pending-collection,
.badge.pending-payment,
.badge.payment-plan,
.badge.settlement-pending,
.badge.settlement,
.badge.cash-due,
.badge.due,
.badge.open,
.badge.draft,
.badge.notice-sent,
.badge.vacant,
.badge.upcoming,
.badge.expiring,
.badge.renewal-due,
.badge.reserved,
.badge.booked,
.badge.rewritten,
.badge.replaced{
  background:var(--ajf-orange-bg) !important;
  color:var(--ajf-orange-fg) !important;
}
.badge.bounced,
.badge.bounced-rewritten,
.badge.returned,
.badge.overdue,
.badge.expired,
.badge.legal-risk,
.badge.high-risk,
.badge.blocked,
.badge.cancelled,
.badge.canceled,
.badge.terminated,
.badge.reversed,
.badge.void,
.badge.delete,
.badge.deleted{
  background:var(--ajf-red-bg) !important;
  color:var(--ajf-red-fg) !important;
}
.badge.active,
.badge.info,
.badge.information,
.badge.report,
.badge.reports,
.badge.link,
.badge.links,
.badge.document,
.badge.documents,
.badge.view,
.badge.details{
  background:var(--ajf-blue-bg) !important;
  color:var(--ajf-blue-fg) !important;
}
.badge.inactive,
.badge.renewed,
.badge.normal,
.badge.n-a{
  background:var(--ajf-neutral-bg) !important;
  color:var(--ajf-neutral-fg) !important;
}
.badge.closed{
  background:var(--ajf-black-bg) !important;
  color:var(--ajf-black-fg) !important;
}
button.danger,
button.danger-lite,
.owner-delete-btn,
button[onclick^="del("]{
  border-color:#ef9a9a !important;
  color:var(--ajf-red-fg) !important;
  background:#fff7f7 !important;
}
button.danger:hover,
button.danger-lite:hover,
.owner-delete-btn:hover,
button[onclick^="del("]:hover{
  background:#ffecec !important;
  border-color:#ef4444 !important;
}

/* AJF final interaction cursors: buttons/menus click, fields edit. */
button,
[role="button"],
[onclick],
summary,
.side-link,
.sidebtn,
aside a,
aside button,
.toolbar button,
.section-title button,
.filterbar button,
.pro-filterbar button,
.contract-filterbar button,
.contract-filters button,
.bank-tx-filters button,
.ajf-combo-btn,
.ajf-combo-option,
.summary-card[onclick],
.contract-choice{
  cursor:pointer !important;
  user-select:none;
}
input,
textarea,
[contenteditable="true"]{
  cursor:text !important;
  user-select:text;
}
select,
input[type="date"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="color"],
input::-webkit-calendar-picker-indicator{
  cursor:pointer !important;
}
button *,
[role="button"] *,
[onclick] *,
.side-link *,
.sidebtn *,
aside a *,
aside button *{
  cursor:inherit !important;
}

/* AJF final read-only UI polish: display cards/charts should not look editable when clicked. */
.summary-card,
.card,
.contract-choice,
.reportbox,
.notice,
.badge,
.grid th,
.section-title h1,
.section-title h2,
.section-title h3,
.owner-profile-card,
.owner-profile-card *,
.ajf-financial-overview,
.ajf-financial-overview *:not(input):not(textarea):not([contenteditable="true"]),
.ajf-dashboard-final,
.ajf-dashboard-final *:not(input):not(textarea):not([contenteditable="true"]),
.ajf-dashboard-refresh,
.ajf-dashboard-refresh *:not(input):not(textarea):not([contenteditable="true"]),
.ajf-modern-dashboard,
.ajf-modern-dashboard *:not(input):not(textarea):not([contenteditable="true"]){
  caret-color:transparent;
}
.summary-card:not([onclick]),
.card:not([onclick]),
.reportbox:not([onclick]),
.notice,
.badge,
.grid th,
.section-title h1,
.section-title h2,
.section-title h3,
.ajf-mtd-kpis,
.ajf-mtd-kpis *,
.ajf-mtd-chart,
.ajf-mtd-chart *,
.ajf-mtd-legend,
.ajf-mtd-legend *,
.ajf-fin-chart,
.ajf-fin-chart *,
.ajf-chart-summary,
.ajf-chart-summary *,
.ajf-modern-alert-metric,
.ajf-modern-alert-metric *,
.ajf-modern-analytics-card,
.ajf-modern-analytics-card *:not(select):not(input):not(textarea):not(button):not([contenteditable="true"]),
.owner-profile-card,
.owner-profile-card *{
  cursor:default !important;
  user-select:none;
}
.ajf-financial-overview select,
.ajf-dashboard-final select,
.ajf-dashboard-refresh select,
.ajf-modern-dashboard select{
  cursor:pointer !important;
  user-select:none;
  caret-color:transparent;
}
.ajf-financial-overview select:focus,
.ajf-dashboard-final select:focus,
.ajf-dashboard-refresh select:focus,
.ajf-modern-dashboard select:focus{
  outline:0 !important;
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.14) !important;
}
.ajf-financial-overview input,
.ajf-financial-overview textarea,
.ajf-dashboard-final input,
.ajf-dashboard-final textarea,
.ajf-dashboard-refresh input,
.ajf-dashboard-refresh textarea,
.ajf-modern-dashboard input,
.ajf-modern-dashboard textarea,
.advanced-grid-table.advanced-editing [contenteditable="true"]{
  caret-color:auto;
  cursor:text !important;
  user-select:text;
}
button,
button *,
[role="button"],
[role="button"] *,
[onclick],
[onclick] *,
.summary-card[onclick],
.summary-card[onclick] *,
.contract-choice,
.contract-choice *{
  cursor:pointer !important;
}

/* Dashboard cards must keep their internal layout after generic button styles. */
.ajf-modern-dashboard .ajf-modern-big-card{
  position:relative !important;
}
.ajf-modern-dashboard .ajf-modern-big-card > .ajf-modern-kicker,
.ajf-modern-dashboard .ajf-modern-big-card > b,
.ajf-modern-dashboard .ajf-modern-big-card > small{
  display:block !important;
  position:relative !important;
  z-index:2 !important;
}
.ajf-modern-dashboard .ajf-modern-big-card > i{
  position:absolute !important;
  right:16px !important;
  top:29px !important;
  z-index:2 !important;
}
.ajf-modern-dashboard .ajf-modern-mini-card,
.ajf-modern-dashboard .ajf-modern-today-card{
  display:grid !important;
  min-width:0 !important;
}
.ajf-modern-dashboard .ajf-modern-mini-card > i,
.ajf-modern-dashboard .ajf-modern-today-card > i{
  position:static !important;
}
.ajf-modern-dashboard .ajf-modern-big-card > .ajf-modern-kicker,
.ajf-modern-dashboard .ajf-modern-big-card > b,
.ajf-modern-dashboard .ajf-modern-big-card > small,
.ajf-modern-dashboard .ajf-modern-mini-card > span,
.ajf-modern-dashboard .ajf-modern-mini-card > b,
.ajf-modern-dashboard .ajf-modern-mini-card > small,
.ajf-modern-dashboard .ajf-modern-today-card > span,
.ajf-modern-dashboard .ajf-modern-today-card > b,
.ajf-modern-dashboard .ajf-modern-today-card > small,
.ajf-modern-dashboard .ajf-modern-attn-row > span,
.ajf-modern-dashboard .ajf-modern-attn-row > b{
  min-width:0 !important;
  max-width:100% !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}

/* AJF absolute global interaction polish: no black edit-looking focus on display UI. */
*:not(input):not(textarea):not(select):not([contenteditable="true"]){
  caret-color:transparent;
}
body,
.app,
main,
.panel,
.reportbox,
.notice,
.summary,
.summary-card:not([onclick]),
.grid td:not([contenteditable="true"]),
.grid th,
.badge,
.muted,
.section-title,
.section-title h1,
.section-title h2,
.section-title h3,
.ajf-chart-summary,
.ajf-mtd-kpis,
.ajf-mtd-chart,
.ajf-mtd-legend{
  cursor:default;
}
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]):not([type="date"]),
textarea,
[contenteditable="true"]{
  cursor:text !important;
  caret-color:auto;
  user-select:text;
}
select,
input[type="date"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="color"],
button,
[role="button"],
[onclick],
.side-link,
.sidebtn,
aside a,
aside button,
.toolbar button,
.section-title button,
.filterbar button,
.pro-filterbar button,
.contract-filterbar button,
.contract-filters button,
.bank-tx-filters button,
.summary-card[onclick],
.contract-choice{
  cursor:pointer !important;
}
input:focus,
select:focus,
textarea:focus{
  outline:0 !important;
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.14) !important;
}
button:focus,
[role="button"]:focus,
[onclick]:focus,
.summary-card[onclick]:focus,
.contract-choice:focus{
  outline:0 !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.12) !important;
}
button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
[onclick]:focus:not(:focus-visible),
.summary-card[onclick]:focus:not(:focus-visible),
.contract-choice:focus:not(:focus-visible){
  box-shadow:none !important;
}
.advanced-grid-table.advanced-editing td[contenteditable="true"]{
  outline:1px solid #60a5fa !important;
  background:#f8fbff !important;
  caret-color:auto;
  cursor:text !important;
  user-select:text;
}
.ajf-pdc-problem-modal .modalbox{
  border-radius:6px;
}
.ajf-pdc-problem-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:8px;
  margin:12px 0;
}
.ajf-pdc-problem-summary div{
  border:1px solid #cbd5e1;
  background:#fff;
  padding:8px 10px;
  border-radius:4px;
}
.ajf-pdc-problem-summary span{
  display:block;
  color:#475569;
  font-size:12px;
}
.ajf-pdc-problem-summary b{
  display:block;
  margin-top:3px;
  color:#111827;
  word-break:break-word;
}
@media (max-width:700px){
  .ajf-pdc-problem-summary{
    grid-template-columns:1fr;
  }
}

/* Final dashboard KPI cards: keep status icons from covering amount text. */
.ajf-dashboard-refresh .summary-card,
.ajf-dashboard-final .summary-card{
  position:relative;
  padding-left:58px !important;
  min-width:0;
  overflow:hidden;
}
.ajf-dashboard-refresh .summary-card .ajf-dash-card-icon,
.ajf-dashboard-final .summary-card .ajf-dash-card-icon{
  left:14px;
  top:50%;
  transform:translateY(-50%);
  flex:0 0 25px;
  z-index:0;
}
.ajf-dashboard-refresh .summary-card b,
.ajf-dashboard-refresh .summary-card span,
.ajf-dashboard-final .summary-card b,
.ajf-dashboard-final .summary-card span{
  display:block;
  min-width:0;
  max-width:100%;
  position:relative;
  z-index:1;
  white-space:normal !important;
  overflow-wrap:anywhere;
}

.ajf-dashboard-refresh-pulse{
  animation:ajfDashboardRefreshPulse .45s ease-out;
}
@keyframes ajfDashboardRefreshPulse{
  0%{filter:brightness(1);}
  50%{filter:brightness(1.08);}
  100%{filter:brightness(1);}
}
