/**
 * jea.issues.css — Property Issues & Resolution Workflow
 * All CSS for #__jea_property_issues display, admin sub-form, resolution panels,
 * cost tracking, proof panels, and frontend resolution modal.
 *
 * @package     com_jea
 * @since       5.3.0
 */

/* ── Issues Tab — Admin Property Edit Form ───────────────────────────────── */
.jea-issues-header             { display: flex; align-items: center;
                                  justify-content: space-between; flex-wrap: wrap;
                                  gap: .5rem; margin-bottom: .75rem; }
.jea-th-date                   { min-width: 120px; }
.jea-issues-desc               { font-size: .88em; color: #6b7280; margin-bottom: .75rem; }
.jea-issues-empty              { text-align: center; padding: 2rem;
                                  color: #9ca3af; font-size: .9rem; }

/* Issue table rows */
.jea-property-issue-row        { border-bottom: 1px solid #e5e7eb; }
.jea-property-issue-row.jea-issue-current td   { background: #fff; }
.jea-property-issue-row.jea-issue-claimed td   { background: #fefce8; }
.jea-property-issue-row.jea-issue-verified td  { background: #f0fdf4; opacity: .75; }
.jea-property-issue-row.jea-issue-unknown td   { background: #f9fafb; }

/* Status badges on issue rows */
.jea-issue-status-badge        { display: inline-flex; align-items: center;
                                  gap: .25rem; font-size: .7rem;
                                  padding: .2em .5em; border-radius: .25rem;
                                  font-weight: 600; white-space: nowrap; }
.jea-issue-status-badge--current  { background: #fee2e2; color: #991b1b; }
.jea-issue-status-badge--claimed  { background: #fef9c3; color: #854d0e; }
.jea-issue-status-badge--verified { background: #dcfce7; color: #166534; }
.jea-issue-status-badge--unknown  { background: #f3f4f6; color: #4b5563; }

/* Issue row action buttons */
.jea-issue-row-actions         { display: flex; gap: 4px; align-items: center;
                                  flex-wrap: nowrap; }

/* ── Resolution Panel (per issue, collapsible) ───────────────────────────── */
.jea-resolution-cell           { padding: 0 !important; }
.jea-resolution-panel          { border-top: 2px solid #86efac;
                                  background: #f0fdf4; }
.jea-resolution-panel-header   { display: flex; align-items: center;
                                  justify-content: space-between;
                                  padding: .5rem .75rem;
                                  border-bottom: 1px solid #bbf7d0; }
.jea-resolution-panel-title    { font-weight: 600; font-size: .8rem;
                                  color: #166534; letter-spacing: .03em; }
.jea-resolution-list           { padding: .5rem .75rem; }
.jea-resolution-item           { border: 1px solid #bbf7d0; border-radius: .375rem;
                                  background: #fff; padding: .5rem .75rem;
                                  margin-bottom: .5rem; font-size: .82rem; }
.jea-resolution-item-header    { display: flex; align-items: center;
                                  gap: .5rem; flex-wrap: wrap;
                                  margin-bottom: .25rem; }
.jea-resolution-item-date      { font-weight: 600; color: #374151; }
.jea-resolution-item-resolver  { color: #6b7280; }
.jea-resolution-verified-badge { font-size: .65rem; }
.jea-resolution-unverified-badge { font-size: .65rem; }
.jea-resolution-costs          { display: flex; gap: 1rem; flex-wrap: wrap;
                                  font-size: .8rem; color: #4b5563;
                                  margin-top: .2rem; }
.jea-resolution-cost-item      { display: flex; align-items: center; gap: .25rem; }
.jea-resolution-cost-label     { font-weight: 500; }
.jea-resolution-cost-value     { font-family: monospace; color: #1f2937; }
.jea-resolution-net-tenant     { color: #dc2626; font-weight: 600; }

/* ── Add/Edit Resolution Form ────────────────────────────────────────────── */
.jea-add-resolution-form       { border-top: 1px dashed #86efac;
                                  padding: .75rem; background: #f8fffe; }
.jea-res-form-heading          { font-weight: 600; font-size: .82rem;
                                  color: #166534; margin-bottom: .6rem; }
.jea-res-form-label            { font-size: .75rem; font-weight: 500;
                                  color: #374151; margin-bottom: .15rem; }
.jea-res-form-hint             { font-size: .72em; color: #9ca3af; font-weight: 400; }
.jea-res-form-section          { border-top: 1px solid #d1fae5;
                                  padding-top: .5rem; margin-top: .5rem; }
.jea-res-form-section-title    { font-size: .75rem; font-weight: 600;
                                  color: #065f46; text-transform: uppercase;
                                  letter-spacing: .05em; margin-bottom: .4rem; }
.jea-res-cost-row              { display: flex; gap: .5rem; flex-wrap: wrap;
                                  align-items: flex-end; }
.jea-res-cost-field            { flex: 1 1 140px; min-width: 120px; }
.jea-capital-improvement-row   { display: flex; align-items: center; gap: .5rem;
                                  margin-top: .25rem; }
.jea-res-proof-upload          { display: flex; flex-direction: column; gap: .3rem; }
.jea-res-verified-check        { display: flex; align-items: center; gap: .4rem;
                                  margin-top: .5rem; }

/* ── "Add New Issue Type" inline form ───────────────────────────────────── */
.jea-new-issue-type-form       { background: #eff6ff; border: 1px dashed #93c5fd;
                                  border-radius: .375rem; padding: .6rem .75rem;
                                  margin-top: .4rem; }
.jea-new-issue-type-form-title { font-size: .78rem; font-weight: 600;
                                  color: #1d4ed8; margin-bottom: .4rem; }

/* ── Amenity removed row (moved from inline style in edit.php) ───────────── */
tr.jea-amenity-removed td                   { opacity: .55; }
tr.jea-amenity-removed td strong::after     { content: ' (removed)';
                                              color: #dc3545; font-size: .75em;
                                              font-weight: 400; }

/* ── Frontend: Issues Tab on Property Detail Page ───────────────────────── */
.jea-prop-issues-list          { display: flex; flex-direction: column; gap: .75rem; }
.jea-prop-issue-card           { border: 1px solid #e5e7eb; border-radius: .5rem;
                                  background: #fff; overflow: hidden; }
.jea-prop-issue-card--current  { border-left: 4px solid #ef4444; }
.jea-prop-issue-card--claimed  { border-left: 4px solid #f59e0b; }
.jea-prop-issue-card--verified { border-left: 4px solid #22c55e; }
.jea-prop-issue-card--unknown  { border-left: 4px solid #9ca3af; }
.jea-prop-issue-card-header    { display: flex; align-items: flex-start;
                                  justify-content: space-between;
                                  gap: .5rem; padding: .75rem 1rem .5rem; }
.jea-prop-issue-card-title     { font-weight: 600; font-size: .95rem;
                                  color: #111827; }
.jea-prop-issue-card-cat       { font-size: .78rem; color: #6b7280;
                                  margin-top: .1rem; }
.jea-prop-issue-card-meta      { display: flex; flex-wrap: wrap; gap: .75rem;
                                  padding: 0 1rem .5rem;
                                  font-size: .8rem; color: #4b5563; }
.jea-prop-issue-card-meta-item { display: flex; align-items: center; gap: .25rem; }
.jea-prop-issue-card-notes     { padding: .25rem 1rem .5rem;
                                  font-size: .82rem; color: #374151; }
.jea-prop-issue-card-footer    { display: flex; align-items: center;
                                  justify-content: space-between; flex-wrap: wrap;
                                  gap: .5rem; padding: .5rem 1rem;
                                  background: #f9fafb;
                                  border-top: 1px solid #f3f4f6; }
.jea-prop-issue-resolutions-summary { font-size: .78rem; color: #6b7280; }
.jea-prop-issue-resolutions-summary strong { color: #374151; }

/* Verified resolution history (accordion on card) */
.jea-prop-resolution-history   { padding: .5rem 1rem .75rem; border-top: 1px solid #f3f4f6; }
.jea-prop-resolution-history-title { font-size: .78rem; font-weight: 600;
                                      color: #374151; margin-bottom: .4rem; }
.jea-prop-resolution-entry     { display: flex; gap: .75rem; align-items: flex-start;
                                  padding: .4rem 0;
                                  border-bottom: 1px dashed #e5e7eb; }
.jea-prop-resolution-entry:last-child { border-bottom: none; }
.jea-prop-resolution-dot       { width: 8px; height: 8px; border-radius: 50%;
                                  margin-top: .35rem; flex-shrink: 0; }
.jea-prop-resolution-dot--verified   { background: #22c55e; }
.jea-prop-resolution-dot--unverified { background: #f59e0b; }
.jea-prop-resolution-entry-body { flex: 1; font-size: .8rem; color: #374151; }
.jea-prop-resolution-entry-date { font-weight: 600; margin-right: .4rem; }
.jea-prop-resolution-entry-by  { color: #6b7280; }
.jea-prop-resolution-entry-costs { font-size: .75rem; color: #4b5563;
                                    margin-top: .15rem; }
.jea-prop-resolution-proof-links { margin-top: .2rem; }
.jea-prop-resolution-proof-link  { font-size: .75rem; }

/* ── Frontend: Report Resolution Modal ──────────────────────────────────── */
.jea-resolve-modal-body        { padding: 1rem 1.25rem; }
.jea-resolve-modal-issue-name  { font-weight: 600; font-size: 1rem;
                                  color: #111827; margin-bottom: .1rem; }
.jea-resolve-modal-issue-cat   { font-size: .82rem; color: #6b7280;
                                  margin-bottom: .75rem; }
.jea-resolve-form-label        { font-size: .8rem; font-weight: 500;
                                  color: #374151; margin-bottom: .15rem; }
.jea-resolve-form-hint         { font-size: .72em; color: #9ca3af; }
.jea-resolve-form-section      { margin-top: 1rem; padding-top: .75rem;
                                  border-top: 1px solid #e5e7eb; }
.jea-resolve-form-section-title { font-size: .78rem; font-weight: 700;
                                   text-transform: uppercase; letter-spacing: .06em;
                                   color: #374151; margin-bottom: .5rem; }
.jea-resolve-cost-row          { display: flex; gap: .5rem; flex-wrap: wrap; }
.jea-resolve-cost-field        { flex: 1 1 130px; min-width: 110px; }
.jea-resolve-proof-grid        { display: grid;
                                  grid-template-columns: 1fr 1fr;
                                  gap: .5rem; }
@media (max-width: 576px) {
    .jea-resolve-proof-grid    { grid-template-columns: 1fr; }
    .jea-resolve-cost-row      { flex-direction: column; }
}
.jea-resolve-submit-note       { font-size: .78rem; color: #6b7280;
                                  margin-top: .5rem; }
.jea-resolve-submit-note strong { color: #374151; }
.jea-resolve-submit-note-icon  { }
.jea-resolve-modal-footer      { }

/* ── Pending verification notice (frontend display) ─────────────────────── */
.jea-pending-verification      { display: inline-flex; align-items: center;
                                  gap: .3rem; font-size: .75rem;
                                  color: #92400e; background: #fef3c7;
                                  border: 1px solid #fde68a;
                                  padding: .2em .5em; border-radius: .25rem; }
.jea-capital-improvement-flag  { display: inline-flex; align-items: center;
                                  gap: .3rem; font-size: .75rem;
                                  color: #1d4ed8; background: #dbeafe;
                                  border: 1px solid #bfdbfe;
                                  padding: .2em .5em; border-radius: .25rem; }
.jea-tenant-funded-flag        { display: inline-flex; align-items: center;
                                  gap: .3rem; font-size: .75rem;
                                  color: #dc2626; background: #fee2e2;
                                  border: 1px solid #fecaca;
                                  padding: .2em .5em; border-radius: .25rem; }

/* ── Semantic layout hooks — admin table ─────────────────────────────────── */
.jea-table-wrap                { }
.jea-table-wrap--issues        { }
.jea-table--issues             { }
.jea-thead--issues             { }
.jea-thead-row                 { }
.jea-tbody--issues             { }
.jea-th                        { }
.jea-th--issue-type            { }
.jea-th--notes                 { }
.jea-th--actions               { }
.jea-th-severity               { min-width: 110px; }
.jea-th-status                 { min-width: 120px; }
.jea-th-score                  { min-width: 80px; }
.jea-no-resolutions-yet        { font-size: .8rem; color: #9ca3af; padding: .25rem .5rem; }

/* ── Semantic input hooks — admin property issues table ──────────────────── */
.jea-select--issue-type        { }
.jea-select--severity          { }
.jea-input--score-override     { }
.jea-input--onset-date         { }
.jea-input--reported-date      { }
.jea-input--issue-notes        { }
.jea-input--new-issue-name     { }
.jea-select--new-issue-category { }

/* ── Semantic button hooks — admin issues table ──────────────────────────── */
.jea-btn                       { }
.jea-btn-icon                  { }
.jea-btn--add-issue            { }
.jea-btn--resolution-toggle    { }
.jea-btn--add-resolution       { }
.jea-btn--remove-issue         { }
.jea-btn--cancel-resolution    { }
.jea-btn--manage-issues        { }

/* ── Semantic badge hooks ────────────────────────────────────────────────── */
.jea-badge                     { }
.jea-badge--verified           { }
.jea-badge--unverified         { }
.jea-badge--resolution-count   { }
.jea-badge--active-count       { }
.jea-badge--resolved-count     { }
.jea-badge--response-rate      { }

/* ── Semantic resolution item hooks ─────────────────────────────────────── */
.jea-resolution-item-description { font-size: .85rem; color: #6b7280; margin-bottom: .25rem; }
.jea-resolution-verifier       { font-size: .8rem; color: #6b7280; margin-top: .25rem; }
.jea-resolution-verifier-label { }
.jea-resolution-verifier-name  { font-weight: 600; }
.jea-resolution-verifier-date  { }
.jea-resolution-proof-list     { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .35rem; }
.jea-resolution-proof-link     { display: inline-flex; align-items: center; gap: .25rem;
                                  font-size: .78rem; }
.jea-resolution-proof-icon     { }
.jea-resolution-proof-type     { }
.jea-resolution-proof-date     { color: #9ca3af; }
.jea-resolution-cost-value--labor      { }
.jea-resolution-cost-value--materials  { }
.jea-resolution-cost-value--total      { font-weight: 600; }
.jea-resolution-cost-value--reimbursement { }
.jea-resolution-cost-value--annual     { }
.jea-resolution-cost-item--total       { }
.jea-resolution-cost-item--reimbursement { }
.jea-resolution-cost-item--net-tenant  { }
.jea-resolution-cost-item--annual-value { }

/* ── Semantic resolution form hooks ─────────────────────────────────────── */
.jea-res-form-row              { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
.jea-res-form-row--primary     { }
.jea-res-form-row--resolver    { }
.jea-res-form-row--permission  { }
.jea-res-form-row--reimbursement { }
.jea-res-form-row--proof       { }
.jea-res-form-col              { flex: 1 1 130px; min-width: 110px; }
.jea-res-form-col--date        { flex: 0 0 140px; }
.jea-res-form-col--type        { flex: 0 0 160px; }
.jea-res-form-col--description { flex: 1 1 200px; }
.jea-res-form-col--reported-by { flex: 1 1 130px; }
.jea-res-form-col--resolved-by { flex: 1 1 160px; }
.jea-res-form-col--resolver-name { flex: 1 1 150px; }
.jea-res-form-col--resolver-license { flex: 1 1 130px; }
.jea-res-form-col--permission-type { flex: 0 0 160px; }
.jea-res-form-col--permission-url { flex: 1 1 200px; }
.jea-res-form-col--reimb-amount { flex: 0 0 140px; }
.jea-res-form-col--reimb-date   { flex: 0 0 140px; }
.jea-res-form-col--expense-notes { flex: 1 1 200px; }
.jea-res-form-col--proof-date   { flex: 0 0 140px; }
.jea-res-form-col--proof-type   { flex: 0 0 130px; }
.jea-res-form-col--proof-url    { flex: 1 1 200px; }
.jea-res-form-col--proof-notes  { flex: 1 1 150px; }
.jea-res-section--resolver     { }
.jea-res-section--costs        { }
.jea-res-section--proof        { }
.jea-res-section--actions      { }
.jea-res-form-actions          { display: flex; align-items: center;
                                  justify-content: space-between; flex-wrap: wrap;
                                  gap: .5rem; }
.jea-useful-life-wrap          { display: flex; align-items: center; gap: .4rem;
                                  margin-top: .4rem; }
.jea-useful-life-wrap .jea-input--useful-life { width: 80px; display: inline-block; }

/* select/input semantic hooks — resolution form */
.jea-select--resolution-type   { }
.jea-select--reported-by       { }
.jea-select--resolved-by       { }
.jea-select--permission-type   { }
.jea-select--cost-confidence    { }
.jea-select--expense-bearer     { }
.jea-select--proof-type         { }
.jea-input--resolved-date       { }
.jea-input--resolution-description { }
.jea-input--resolver-name       { }
.jea-input--resolver-license    { }
.jea-input--permission-url      { }
.jea-input--labor-cost          { }
.jea-input--materials-cost      { }
.jea-input--reimb-amount        { }
.jea-input--reimb-date          { }
.jea-input--expense-notes       { }
.jea-input--useful-life         { }
.jea-input--proof-date          { }
.jea-input--proof-url           { }
.jea-input--proof-notes         { }
.jea-input-group                { }
.jea-input-group--labor         { }
.jea-input-group--materials     { }
.jea-input-group--reimbursement { }
.jea-input-group-currency       { }

/* check/checkbox semantic hooks */
.jea-check                      { }
.jea-check--capital-improvement { }
.jea-check--verified            { }
.jea-check-input                { }
.jea-check-input--verified      { }
.jea-check-label                { }
.jea-res-verified-check         { }

/* res-label hooks */
.jea-res-label--resolved-date   { }
.jea-res-label--resolution-type { }
.jea-res-label--description     { }
.jea-res-label--reported-by     { }
.jea-res-label--resolved-by     { }
.jea-res-label--resolver-name   { }
.jea-res-label--resolver-license { }
.jea-res-label--permission-type { }
.jea-res-label--permission-url  { }
.jea-res-label--labor           { }
.jea-res-label--materials       { }
.jea-res-label--confidence      { }
.jea-res-label--bearer          { }
.jea-res-label--reimb-amount    { }
.jea-res-label--reimb-date      { }
.jea-res-label--expense-notes   { }
.jea-res-label--useful-life     { }
.jea-res-label--proof-date      { }
.jea-res-label--proof-type      { }
.jea-res-label--proof-url       { }
.jea-res-label--proof-notes     { }

/* ── Tenancy readonly issues table hooks ─────────────────────────────────── */
.jea-table-wrap--tenancy-issues   { }
.jea-table--tenancy-issues-summary { }
.jea-thead--tenancy-issues        { }
.jea-issues-count-bar             { display: flex; gap: .75rem; flex-wrap: wrap;
                                     margin-bottom: .75rem; }
.jea-badge--active-count          { }
.jea-badge--resolved-count        { }
.jea-btn--manage-issues           { }

/* ── Frontend issues snapshot bar ────────────────────────────────────────── */
.jea-issues-snapshot-bar          { display: flex; gap: .75rem; flex-wrap: wrap;
                                     margin-bottom: 1rem; padding: .5rem .75rem;
                                     background: var(--bs-light, #f8f9fa); border-radius: .375rem; }
.jea-issues-snapshot-item         { display: inline-flex; align-items: center; gap: .35rem; }
.jea-issues-snapshot-item--active  { }
.jea-issues-snapshot-item--resolved { }
.jea-issues-snapshot-item--response-rate { }

/* ── Frontend issue card meta hooks ─────────────────────────────────────── */
.jea-prop-issue-card-meta-item--severity { }
.jea-prop-issue-card-meta-item--onset    { }
.jea-prop-issue-card-meta-item--reported { }
.jea-prop-issue-meta-icon                { }
.jea-prop-issue-severity-label           { }
.jea-prop-issue-date-label               { color: #6b7280; font-size: .82rem; }
.jea-prop-issue-date-value               { }

/* ── Frontend issue card footer hooks ───────────────────────────────────── */
.jea-prop-issue-footer-icon              { }
.jea-prop-issue-footer-icon--verified    { color: var(--bs-success, #198754); }
.jea-prop-issue-footer-icon--claimed     { color: var(--bs-warning, #ffc107); }
.jea-prop-issue-footer-icon--current     { color: var(--bs-danger, #dc3545); }
.jea-prop-issue-footer-label             { }
.jea-btn--report-resolution              { }

/* ── Frontend resolution entry hooks ────────────────────────────────────── */
.jea-prop-resolution-entry-description  { font-size: .85rem; color: #6b7280;
                                            margin: .2rem 0; }
.jea-prop-resolution-cost-label         { font-size: .8rem; color: #6b7280; margin-right: .2rem; }
.jea-prop-resolution-cost-value         { font-size: .85rem; font-weight: 600; }

/* ── Frontend resolve modal form hooks ──────────────────────────────────── */
.jea-resolve-form                        { }
.jea-resolve-form-row                    { display: flex; gap: .5rem; flex-wrap: wrap;
                                            margin-bottom: .5rem; }
.jea-resolve-form-row--primary           { }
.jea-resolve-form-row--resolver          { }
.jea-resolve-form-col                    { flex: 1 1 130px; min-width: 110px; }
.jea-resolve-form-col--date              { flex: 0 0 150px; }
.jea-resolve-form-col--type              { flex: 0 0 160px; }
.jea-resolve-form-col--description       { flex: 1 1 200px; }
.jea-resolve-form-col--resolved-by       { flex: 1 1 160px; }
.jea-resolve-form-col--resolver-name     { flex: 1 1 150px; }
.jea-resolve-form-col--permission        { flex: 1 1 150px; }
.jea-resolve-section--resolver           { }
.jea-resolve-section--costs              { }
.jea-resolve-section--proof              { }
.jea-resolve-cost-field--labor           { }
.jea-resolve-cost-field--materials       { }
.jea-resolve-cost-field--bearer          { }
.jea-resolve-cost-field--confidence      { }
.jea-resolve-proof-field                 { }
.jea-resolve-proof-field--url            { }
.jea-resolve-proof-field--type           { }
.jea-resolve-proof-field--date           { }
.jea-resolve-proof-field--notes          { }
.jea-check--resolve-capital-improvement  { }
.jea-check-input--resolve-cap-imp        { }
.jea-input-group--resolve-labor          { }
.jea-input-group--resolve-materials      { }
.jea-input--resolve-date                 { }
.jea-input--resolve-description          { }
.jea-input--resolve-resolver-name        { }
.jea-input--resolve-labor                { }
.jea-input--resolve-materials            { }
.jea-input--resolve-proof-url            { }
.jea-input--resolve-proof-date           { }
.jea-input--resolve-proof-notes          { }
.jea-select--resolve-type                { }
.jea-select--resolved-by                 { }
.jea-select--resolve-permission          { }
.jea-select--resolve-bearer              { }
.jea-select--resolve-confidence          { }
.jea-select--resolve-proof-type          { }
.jea-resolve-label--date                 { }
.jea-resolve-label--type                 { }
.jea-resolve-label--description          { }
.jea-resolve-label--resolved-by          { }
.jea-resolve-label--resolver-name        { }
.jea-resolve-label--permission           { }
.jea-resolve-label--labor                { }
.jea-resolve-label--materials            { }
.jea-resolve-label--bearer               { }
.jea-resolve-label--confidence           { }
.jea-resolve-label--proof-url            { }
.jea-resolve-label--proof-type           { }
.jea-resolve-label--proof-date           { }
.jea-resolve-label--proof-notes          { }
.jea-btn--resolve-cancel                 { }
.jea-btn--resolve-submit                 { }
