/* approvals app styles (use the tokens from admin.css: --panel, --line, --ink, --muted, --brand, --accent, --ok, --warn, --danger, --info + their -soft variants; logical properties for RTL) */
.apr-page { --apr: #8e44ad; }
.apr-cico { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; flex: 0 0 auto; color: var(--c, var(--apr)); background: color-mix(in srgb, var(--c, var(--apr)) 15%, var(--panel)); }
.apr-sub { display: flex; align-items: center; gap: 10px; min-width: 0; }
.apr-sub .apr-cico { width: 30px; height: 30px; border-radius: 9px; }
.apr-stack { font-variant-numeric: tabular-nums; font-weight: 700; }

/* category tiles (one tap = new request) */
.apr-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-top: 10px; }
.apr-tile { display: grid; gap: 12px; align-content: start; padding: 16px; background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--c, var(--apr)); border-radius: var(--r); box-shadow: var(--shadow); color: inherit; min-width: 0; transition: transform .15s, border-color .15s; }
.apr-tile:hover { transform: translateY(-2px); border-color: var(--c, var(--apr)); }
.apr-tile-txt { display: grid; gap: 4px; line-height: 1.35; }
.apr-tile-txt small { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.apr-tile-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.apr-tile-go { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 4px; font-weight: 700; font-size: 13px; color: color-mix(in srgb, var(--c, var(--apr)) 62%, var(--ink)); }
.apr-chip-warn { background: var(--warn-soft); color: var(--warn-ink); border-color: transparent; }
.apr-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

/* review / my lists */
.apr-list { list-style: none; margin: 0; padding: 0; display: grid; }
.apr-list > li { border-top: 1px solid var(--line-2); }
.apr-list > li:first-child { border-top: 0; }
.apr-rev { display: flex; align-items: center; gap: 12px; padding: 10px 0; flex-wrap: wrap; }
.apr-rev-main { display: flex; align-items: center; gap: 12px; flex: 1 1 220px; min-width: 0; color: inherit; padding: 8px 0; }
.apr-rev-main:hover b { color: var(--accent-d); }
.apr-rev-txt { display: grid; flex: 1; min-width: 0; line-height: 1.3; }
.apr-rev-txt b, .apr-rev-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apr-rev-act { display: flex; gap: 8px; }
.btn.btn-sm { min-height: 34px; }

/* request page */
.apr-intro { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.apr-form { margin-bottom: 14px; }
.apr-lines { display: grid; gap: 8px; }
.apr-line { display: grid; grid-template-columns: minmax(0, 1fr) 110px auto; gap: 8px; align-items: center; }
.apr-appr { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; counter-reset: ap; }
.apr-ap { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: start; }
.apr-ap-txt { display: grid; gap: 2px; min-width: 0; }
.apr-ap-comment { font-style: italic; overflow-wrap: anywhere; }
.apr-appr.plain { gap: 8px; }
.apr-user { display: inline-flex; align-items: center; gap: 8px; font-weight: 650; min-width: 0; }
.apr-cfg-ap { display: grid; gap: 8px; }
.apr-cfg-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; }

@media (max-width: 900px) { .apr-two { grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .apr-tiles { grid-template-columns: 1fr; }
  .apr-line { grid-template-columns: minmax(0, 1fr) 84px auto; }
  .apr-rev-act .btn { min-height: 44px; }
  .apr-cfg-row { grid-template-columns: 1fr auto; }
  .apr-cfg-row .exp-check { grid-column: 1 / -1; }
}

/* Approvals inbox (inb-*): what waits for my decision, from every app */
.inb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.inb-chips:empty { display: none; }
.inb-chip { appearance: none; display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 4px 8px 4px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--ink); font: inherit; font-weight: 650; font-size: 13.5px; cursor: pointer; }
:root[dir="rtl"] .inb-chip { padding: 4px 14px 4px 8px; }
.inb-chip b { min-width: 24px; padding: 1px 8px; border-radius: 999px; background: var(--panel-3); font-size: 12px; text-align: center; font-variant-numeric: tabular-nums; }
.inb-chip:hover { border-color: var(--muted); }
.inb-chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-d); }
.inb-chip.on b { background: var(--accent-solid); color: #fff; }
.inb-sec { margin-bottom: 14px; }
.inb-sec-h { display: flex; align-items: center; gap: 8px; }
.inb-sec-h .ico { color: var(--apr); }
.inb-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 0; }
.inb-ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: var(--apr); background: color-mix(in srgb, var(--apr) 14%, var(--panel)); }
.inb-main { display: grid; gap: 3px; min-width: 0; line-height: 1.35; }
.inb-title { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.inb-title a { font-weight: 750; color: inherit; overflow-wrap: anywhere; }
.inb-title a:hover { color: var(--accent-d); }
.inb-detail { overflow-wrap: anywhere; }
.inb-meta { overflow-wrap: anywhere; }
.inb-wait { white-space: nowrap; }
.inb-src { display: inline-flex; align-items: center; gap: 5px; width: fit-content; max-width: 100%; font-size: 12.5px; color: var(--accent-d); }
a.inb-src:hover { text-decoration: underline; }
.inb-act { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.apr-source-row { margin-bottom: 10px; }
@media (max-width: 720px) {
  .inb-row { grid-template-columns: 36px minmax(0, 1fr); }
  .inb-act { grid-column: 1 / -1; justify-content: stretch; }
  .inb-act .btn { flex: 1 1 0; justify-content: center; min-height: 44px; }
  .inb-chip { min-height: 44px; }
}

/* company approval settings card + the category form: approval limit, amount levels */
.apr-set { margin-bottom: 14px; }
.apr-set-row { display: flex; align-items: flex-start; gap: 14px; }
.apr-set-txt { display: grid; gap: 4px; min-width: 0; }
.apr-set-txt p { margin: 0; }
.apr-hist-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; }
.apr-bands { display: grid; gap: 10px; }
.apr-bands-help { margin: 0; }
.apr-band { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel-2); }
.apr-band-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.apr-band-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 10px; }
.apr-band-f { display: grid; gap: 4px; min-width: 0; }
.apr-band-who { display: grid; gap: 4px; }
.apr-band input[type="number"], .apr-band input[type="text"] { width: 100%; min-height: 40px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel); color: var(--ink); }
.apr-bands > .btn { justify-self: start; }
@media (max-width: 720px) {
  .apr-band-grid { grid-template-columns: 1fr; }
  .apr-band input[type="number"], .apr-band input[type="text"], .apr-band .multi-add { min-height: 44px; }
  .apr-bands > .btn, .apr-band .icon-btn { min-height: 44px; }
}

/* request page: approvers grouped by amount level, limit and levels explained before submitting */
.apr-lvl { display: grid; gap: 1px; padding-top: 4px; border-top: 1px dashed var(--line); }
.apr-lvl:first-child { border-top: 0; padding-top: 0; }
.apr-limit-note { margin: 10px 0 0; }
.apr-bands-note { margin: 6px 0 0; padding-inline-start: 18px; display: grid; gap: 2px; }

/* Change history (cfh-*): a timeline of who changed the approval set-up */
.cfh-bar { margin-bottom: 12px; }
.cfh-list { list-style: none; margin: 0; padding: 0; display: grid; }
.cfh-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line-2); }
.cfh-item:first-child { border-top: 0; padding-top: 4px; }
.cfh-dot { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--info-soft); color: var(--info-ink); }
.cfh-body { display: grid; gap: 4px; min-width: 0; }
.cfh-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.cfh-rec { overflow-wrap: anywhere; }
.cfh-changes { display: grid; gap: 6px; margin-top: 6px; }
.cfh-change { display: grid; grid-template-columns: minmax(130px, 210px) minmax(0, 1fr); gap: 4px 12px; align-items: baseline; padding: 8px 10px; border-radius: var(--r-sm); background: var(--panel-2); font-size: 13.5px; }
.cfh-vals { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.cfh-from { color: var(--muted); text-decoration: line-through; overflow-wrap: anywhere; }
.cfh-to { font-weight: 650; overflow-wrap: anywhere; }
.cfh-arrow { color: var(--muted); flex: 0 0 auto; }
.cfh-foot { display: flex; justify-content: center; padding-top: 10px; }
.cfh-empty { padding: 24px; text-align: center; }
.cfh-sum { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .cfh-change { grid-template-columns: 1fr; }
  .cfh-foot .btn, .cfh-bar select { min-height: 44px; }
  .cfh-foot .btn { width: 100%; justify-content: center; }
}

/* ------------------------------------------------------------ documents that wait for a second person (stock count, scrap order, journal entry) */
.apr-wait { align-items: flex-start; margin-block-end: 12px; }
.apr-wait > div { display: grid; gap: 4px; }
.apr-gate-intro { margin: 0 0 8px; }
