/* ============================================================================
   mh-approvals.css  -  the General Approval Center (/admin/approvals).
   Admin-only unified pending-approvals list. Reuses the global shell (.cl-wrap /
   .cl-side / .cl-body), the .hs-btn buttons and the .cs-reason deny textarea; only
   the row card + type chip are bespoke here. Pine #4E7C72. Light + dark. Plain
   hyphens only.
   ============================================================================ */

/* empty / loading */
.mh-app .apv-empty { text-align: center; padding: 60px 20px; color: #768683; }
.mh-app .apv-empty-ic { width: 54px; height: 54px; margin: 0 auto 14px; color: var(--mh-green, #4E7C72); opacity: .55; }
.mh-app .apv-empty-ic svg { width: 100%; height: 100%; }
.mh-app .apv-empty p { margin: 0; font-size: 15px; }

/* list + rows */
.mh-app .apv-list { display: flex; flex-direction: column; gap: 12px; max-width: 940px; }
.mh-app .apv-row {
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
    background: #fff; border: 1px solid #e7ecea; border-radius: 16px; padding: 16px 20px;
    box-shadow: 0 2px 10px rgba(46,59,56,.05);
}
.mh-app .apv-main { min-width: 0; flex: 1; }
.mh-app .apv-toprow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 7px; }
.mh-app .apv-type {
    display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 800; letter-spacing: .06em;
    text-transform: uppercase; padding: 3px 10px; border-radius: 999px;
}
.mh-app .apv-type--status  { background: rgba(110,140,160,.16); color: #41576B; }
.mh-app .apv-type--subsidy { background: rgba(78,124,114,.14); color: #3D655D; }
.mh-app .apv-entity { font-size: 14.5px; font-weight: 800; color: #28332f; text-decoration: none; letter-spacing: -.2px; }
.mh-app a.apv-entity:hover { color: var(--mh-green, #4E7C72); text-decoration: underline; }
.mh-app .apv-when { margin-left: auto; font-size: 12px; color: #97a3a0; white-space: nowrap; }
.mh-app .apv-summary { font-size: 13.5px; font-weight: 600; color: #33403c; line-height: 1.45; }
.mh-app .apv-meta { font-size: 12px; color: #8a9794; margin-top: 4px; }

/* actions */
.mh-app .apv-act { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; min-width: 168px; }
.mh-app .apv-btns { display: flex; gap: 8px; }
.mh-app .apv-reason { width: 240px; max-width: calc(46 * var(--mh-vw)); }
.mh-app .hs-btn.apv-deny { color: #B0463C; border-color: #e7c9c4; }
.mh-app .hs-btn.apv-deny:hover { background: #fdf0ee; }

/* ---- DARK ---- */
body.dark .mh-app .apv-row { background: #1d2421; border-color: #2e3a37; box-shadow: none; }
body.dark .mh-app .apv-entity, body.dark .mh-app .apv-summary { color: #eef2f1; }
body.dark .mh-app .apv-type--status  { background: rgba(110,140,160,.2); color: #aebfce; }
body.dark .mh-app .apv-type--subsidy { background: rgba(78,124,114,.22); color: #9fc7bd; }
body.dark .mh-app .hs-btn.apv-deny { color: #e7948b; border-color: #5a302b; }
body.dark .mh-app .hs-btn.apv-deny:hover { background: #2a1c1a; }

/* ---- toolbar spacing (reuses the global .cl-head controls) ---- */
.mh-app .cl-wrap .cl-body .toolbar.cl-head { margin-bottom: 18px; }

/* ---- status badge (RequestStatus has no lkp ColorHex; tones fixed here) ---- */
.mh-app .apv-badge { display: inline-flex; align-items: center; font-size: 10px; font-weight: 800; letter-spacing: .06em;
    text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.mh-app .apv-badge--pending  { background: rgba(216,155,61,.16); color: #9a6c18; }
.mh-app .apv-badge--approved { background: rgba(78,124,114,.15); color: #3D655D; }
.mh-app .apv-badge--denied   { background: rgba(176,70,60,.15); color: #9c3a31; }
.mh-app .apv-badge--muted    { background: rgba(138,139,131,.16); color: #5d6663; }
body.dark .mh-app .apv-badge--pending  { color: #e7c79a; }
body.dark .mh-app .apv-badge--approved { color: #9fc7bd; }
body.dark .mh-app .apv-badge--denied   { color: #e7948b; }
body.dark .mh-app .apv-badge--muted    { color: #aeb9b5; }

/* ---- decided outcome (no actions) ---- */
.mh-app .apv-decided { font-size: 12.5px; color: #67746f; text-align: right; max-width: 280px; line-height: 1.4; }
body.dark .mh-app .apv-decided { color: #9aa6a2; }

/* ---- CARD grid ---- */
/* .apv-grid columns/gap come from the CARD-GRID LAW in mh-theme.css (single source
   of truth: 3 cols desktop -> 2 -> 1, never 4+, identical across engines). */
.mh-app .apv-card { display: flex; flex-direction: column; gap: 9px; background: #fff; border: 1px solid #e7ecea;
    border-radius: 16px; padding: 16px 18px; box-shadow: 0 2px 10px rgba(46,59,56,.05); }
.mh-app .apv-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mh-app .apv-card-ent .apv-entity { font-size: 15.5px; }
.mh-app .apv-card .apv-summary { font-size: 14px; }
.mh-app .apv-card-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 2px; }
.mh-app .apv-card-foot .apv-when { margin-left: 0; }
.mh-app .apv-card-act { display: flex; justify-content: flex-end; padding-top: 4px; border-top: 1px dashed #eef1f0; margin-top: auto; }
.mh-app .apv-card-act .apv-decided { padding-top: 8px; }
body.dark .mh-app .apv-card { background: #1d2421; border-color: #2e3a37; box-shadow: none; }
body.dark .mh-app .apv-card-act { border-color: #2e3a37; }
