.approval-page {
  width: min(100%, 1700px);
  padding: 20px 24px 48px;
}

.approval-heading { margin-bottom: 14px; }
.approval-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  color: var(--ink-500);
  font-size: .68rem;
  font-weight: 700;
}
.approval-breadcrumb a:hover { color: var(--emerald-700); }
.approval-breadcrumb i { font-size: .56rem; }
.approval-breadcrumb span { color: var(--emerald-700); }
.approval-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.approval-title-copy { min-width: 0; }
.approval-title-copy h1 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin: 0;
  color: var(--navy-900);
  font-size: clamp(1.15rem, 1.6vw, 1.52rem);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.25;
}
.approval-title-copy h1 span {
  color: var(--ink-700);
  font-family: "IBM Plex Sans Arabic", sans-serif;
  font-size: .9em;
  letter-spacing: 0;
}
.approval-lockline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 13px;
  margin-top: 8px;
  color: var(--ink-500);
  font-size: .65rem;
  font-weight: 700;
}
.approval-lockline > span:not(.meta-chip):not(.status-chip) { display: inline-flex; align-items: center; gap: 5px; }
.approval-lockline .status-chip { margin-left: 2px; }
.approval-people { display: flex; align-items: center; gap: 22px; flex: 0 0 auto; }
.approval-person { display: flex; align-items: center; gap: 8px; }
.approval-person img {
  width: 34px;
  height: 34px;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--line);
}
.approval-person span { display: grid; line-height: 1.18; }
.approval-person small { color: var(--ink-500); font-size: .58rem; }
.approval-person strong { margin-top: 3px; color: var(--ink-700); font-size: .65rem; white-space: nowrap; }

.journey-surface {
  margin-bottom: 12px;
  border-radius: 10px;
  overflow: hidden;
}
.journey-rail {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.journey-rail li {
  min-width: 0;
  border-right: 1px solid var(--line);
}
.journey-rail li:last-child { border-right: 0; }
.journey-rail button {
  width: 100%;
  min-height: 94px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 13px 10px;
  color: var(--ink-700);
  background: #fff;
  border: 0;
  text-align: left;
}
.journey-rail button:hover { background: #f8fbfa; }
.journey-state {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  color: var(--ink-500);
  background: #fff;
  border: 1px solid #c9d5de;
  border-radius: 50%;
  font-size: .65rem;
}
.journey-rail button > span:last-child { min-width: 0; display: grid; }
.journey-rail strong { overflow: hidden; color: var(--navy-900); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.journey-rail small { margin-top: 3px; color: var(--ink-500); font-family: "IBM Plex Sans Arabic", sans-serif; font-size: .55rem; }
.journey-rail em, .journey-rail time { overflow: hidden; margin-top: 5px; color: var(--ink-500); font-size: .51rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.journey-rail time { margin-top: 2px; }
.journey-rail .complete .journey-state { color: #fff; background: var(--emerald-600); border-color: var(--emerald-600); }
.journey-rail .current { position: relative; z-index: 1; margin: -1px; border: 1px solid var(--emerald-600); border-radius: 8px; overflow: hidden; }
.journey-rail .current button { min-height: 96px; background: #e9f6f1; }
.journey-rail .current .journey-state { color: #fff; background: var(--emerald-600); border-color: var(--emerald-600); }
.journey-rail .current em, .journey-rail .current time { color: var(--emerald-700); font-weight: 700; }
.journey-rail .upcoming { background: #fbfcfd; }
.journey-rail .upcoming button { color: var(--ink-300); background: #fbfcfd; }
.journey-rail .upcoming strong { color: var(--ink-500); }
.journey-mobile-toggle { display: none; }

.approval-workspace {
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(450px, 1.42fr) minmax(330px, 1fr);
  grid-template-areas: "left proof decision";
  gap: 12px;
  align-items: start;
}
.approval-left-column { grid-area: left; min-width: 0; display: grid; gap: 10px; }
.approval-proof { grid-area: proof; min-width: 0; overflow: hidden; }
.decision-panel { grid-area: decision; min-width: 0; overflow: hidden; }
.gate-panel, .history-panel { min-width: 0; overflow: hidden; }
.gate-panel .surface-header, .history-panel .surface-header, .decision-panel .surface-header { padding: 12px 13px; }
.gate-count {
  color: var(--emerald-700);
  font-size: .57rem;
  font-weight: 800;
  white-space: nowrap;
}
.gate-columns {
  display: grid;
  grid-template-columns: 1fr 64px 70px;
  gap: 6px;
  padding: 8px 10px 7px 39px;
  color: var(--ink-500);
  background: #f8fafb;
  border-bottom: 1px solid var(--line);
  font-size: .5rem;
  font-weight: 700;
}
.gate-columns span:nth-child(2), .gate-columns span:nth-child(3) { text-align: right; }
.gate-list { margin: 0; padding: 0; list-style: none; }
.gate-list > li {
  display: grid;
  grid-template-columns: 20px minmax(72px, 1fr) 64px 70px;
  align-items: center;
  gap: 6px;
  min-height: 50px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--line);
}
.gate-list > li:last-child { border-bottom: 0; }
.gate-list > li > i { color: var(--ink-500); font-size: .78rem; }
.gate-name, .gate-owner, .gate-result { min-width: 0; }
.gate-name { display: grid; }
.gate-name strong { overflow: hidden; color: var(--ink-700); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.gate-name small { margin-top: 2px; color: var(--ink-500); font-family: "IBM Plex Sans Arabic", sans-serif; font-size: .49rem; }
.gate-owner { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.gate-owner img { width: 22px; height: 22px; object-fit: cover; border-radius: 50%; }
.gate-owner small { overflow: hidden; color: var(--ink-700); font-size: .47rem; text-overflow: ellipsis; white-space: nowrap; }
.gate-result { display: grid; justify-items: end; text-align: right; }
.gate-result strong { display: inline-flex; align-items: center; gap: 3px; color: var(--emerald-700); font-size: .49rem; }
.gate-result time { margin-top: 3px; color: var(--ink-500); font-size: .46rem; }
.gate-list .review { background: #fffdf8; }
.gate-list .review .gate-result strong { color: #b87613; }
.gate-review-button {
  grid-column: 1 / -1;
  min-height: 29px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 -3px -2px;
  padding: 5px 8px;
  color: #9a6618;
  background: #fff4df;
  border: 0;
  border-radius: 6px;
  font-size: .49rem;
  font-weight: 700;
}
.gate-review-button span { color: var(--emerald-700); }
.gate-review-detail {
  grid-column: 1 / -1;
  margin: 3px -2px 0;
  padding: 9px;
  background: #fff;
  border: 1px solid #ead2aa;
  border-radius: 7px;
}
.gate-review-detail > div { display: flex; align-items: center; gap: 7px; }
.gate-review-detail > div > i { color: var(--emerald-700); }
.gate-review-detail span { display: grid; }
.gate-review-detail strong { color: var(--ink-700); font-size: .54rem; }
.gate-review-detail small { margin-top: 2px; color: var(--ink-500); font-size: .47rem; }
.gate-review-detail p { margin: 8px 0; color: var(--ink-500); font-size: .49rem; line-height: 1.55; }
.gate-review-detail .btn-app { width: 100%; min-height: 32px; padding: 5px 8px; font-size: .53rem; box-shadow: none; }

.stage-history { margin: 0; padding: 6px 10px 10px; list-style: none; }
.stage-history li {
  display: grid;
  grid-template-columns: 14px minmax(70px, 1fr) 42px 74px;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  color: var(--ink-500);
  font-size: .47rem;
}
.stage-history i { color: var(--emerald-600); font-size: .58rem; }
.stage-history strong { color: var(--ink-700); font-size: .52rem; }
.stage-history time, .stage-history span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stage-history .current { margin-top: 2px; padding: 5px 6px; color: var(--emerald-700); background: #eef8f4; border-radius: 6px; }
.stage-history .current i, .stage-history .current strong { color: var(--emerald-700); }

.proof-toolbar {
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
}
.proof-toolbar label { width: 112px; }
.proof-toolbar .app-select { min-height: 34px; padding: 6px 9px; font-size: .6rem; }
.proof-toolbar .btn-app { min-height: 34px; padding: 6px 10px; font-size: .6rem; box-shadow: none; }
.proof-lock { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; color: var(--emerald-700); font-size: .52rem; font-weight: 700; }
.story-proof { padding: 15px 16px 0; }
.story-section { margin: 0 0 5px; color: var(--ink-500); font-size: .55rem; font-weight: 700; }
.story-section i { font-size: .55rem; }
.story-proof > h2 { margin: 0; color: var(--navy-900); font-size: clamp(1.14rem, 1.45vw, 1.42rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.22; }
.story-deck { margin: 4px 0 10px; color: var(--ink-700); font-size: .72rem; line-height: 1.5; }
.story-proof figure { position: relative; margin: 0; overflow: hidden; border-radius: 9px; }
.story-proof figure img { width: 100%; aspect-ratio: 2.48 / 1; object-fit: cover; object-position: center 58%; }
.story-proof figcaption {
  position: absolute;
  inset: auto 7px 7px;
  width: max-content;
  max-width: calc(100% - 14px);
  padding: 4px 7px;
  color: #fff;
  background: rgba(8, 28, 51, .78);
  border-radius: 5px;
  font-size: .48rem;
}
.proof-copy { padding: 11px 0 2px; color: var(--ink-700); font-family: Georgia, "Times New Roman", serif; font-size: .72rem; line-height: 1.62; }
.proof-copy p { margin: 0 0 9px; }
.proof-copy a { color: var(--emerald-700); border-bottom: 1px solid currentColor; }
.proof-copy del { display: none; color: #a63e3e; background: #fde8e8; text-decoration-thickness: 1px; }
.proof-copy ins { color: inherit; text-decoration: none; }
.approval-page.compare-visible .proof-copy del { display: inline; margin-right: 3px; padding: 0 2px; }
.approval-page.compare-visible .proof-copy ins { padding: 0 2px; color: var(--emerald-700); background: #e1f4ed; border-bottom: 1px solid #79bda9; }
.arabic-proof { padding: 11px 0 13px; border-top: 1px solid var(--line); font-family: "IBM Plex Sans Arabic", sans-serif; }
.arabic-proof h3 { margin: 0 0 7px; color: var(--navy-900); font-size: .91rem; font-weight: 700; }
.arabic-proof p { margin: 0 0 7px; color: var(--ink-700); font-size: .67rem; line-height: 1.75; }
.reviewer-comments { margin: 0 -16px; border-top: 1px solid var(--line); }
.reviewer-comments-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px 7px; }
.reviewer-comments-head h3 { margin: 0; color: var(--navy-900); font-size: .66rem; font-weight: 800; }
.reviewer-comments-head span { color: var(--emerald-700); font-size: .5rem; font-weight: 700; }
.reviewer-comments article { display: grid; grid-template-columns: 26px 1fr 15px; gap: 7px; padding: 8px 14px; border-top: 1px solid #edf1f4; }
.reviewer-comments article > img { width: 26px; height: 26px; object-fit: cover; border-radius: 50%; }
.reviewer-comments article header { display: flex; align-items: center; gap: 6px; }
.reviewer-comments article strong { color: var(--ink-700); font-size: .52rem; }
.reviewer-comments article time { color: var(--ink-500); font-size: .46rem; }
.reviewer-comments article p { margin: 3px 0 0; color: var(--ink-500); font-size: .51rem; line-height: 1.45; }
.reviewer-comments article > i { color: var(--emerald-600); font-size: .65rem; }

.decision-state { display: inline-flex; align-items: center; gap: 4px; color: #a86d10; font-size: .55rem; font-weight: 800; }
.decision-body { padding: 0 12px 12px; }
.decision-list { margin: 0; }
.decision-list > div { display: grid; grid-template-columns: 114px 1fr; gap: 9px; padding: 11px 2px; border-bottom: 1px solid var(--line); }
.decision-list dt { color: var(--ink-700); font-size: .55rem; font-weight: 700; }
.decision-list dt small { display: block; margin-top: 2px; color: var(--ink-500); font-family: "IBM Plex Sans Arabic", sans-serif; font-size: .49rem; font-weight: 400; }
.decision-list dd { min-width: 0; margin: 0; color: var(--ink-700); font-size: .56rem; line-height: 1.5; }
.reviewed-by dd { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 7px; }
.reviewed-by dd > img { width: 30px; height: 30px; object-fit: cover; border-radius: 50%; }
.reviewed-by dd > span { display: grid; }
.reviewed-by dd strong { color: var(--navy-900); font-size: .57rem; }
.reviewed-by dd small { color: var(--ink-500); font-size: .48rem; }
.reviewed-by time { color: var(--ink-500); font-size: .47rem; }
.destination-list, .schedule-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 15px; }
.destination-list span, .schedule-row span { display: inline-flex; align-items: center; gap: 5px; }
.destination-list i, .schedule-row i { color: var(--navy-800); font-size: .7rem; }
.content-warning dt { color: #aa6e14; }
.content-warning dt > i { margin-right: 4px; color: var(--warning); }
.content-warning dd > span { display: block; margin-top: 5px; color: var(--ink-500); font-family: "IBM Plex Sans Arabic", sans-serif; line-height: 1.7; }
.activity-trail { padding: 11px 2px; border-bottom: 1px solid var(--line); }
.activity-trail h3 { display: flex; justify-content: space-between; margin: 0 0 7px; color: var(--navy-900); font-size: .61rem; font-weight: 800; }
.activity-trail h3 span { color: var(--ink-500); font-family: "IBM Plex Sans Arabic", sans-serif; font-size: .5rem; font-weight: 400; }
.activity-trail ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.activity-trail li { display: grid; grid-template-columns: 18px minmax(0, 1fr) 34px; align-items: center; gap: 5px; color: var(--ink-500); font-size: .48rem; }
.activity-trail li > i { width: 17px; height: 17px; display: grid; place-items: center; color: var(--emerald-700); background: #edf8f4; border-radius: 50%; font-size: .52rem; }
.activity-trail li strong { color: var(--ink-700); font-weight: 700; }
.activity-trail time { text-align: right; }
.decision-blocker { display: flex; align-items: center; gap: 8px; margin: 11px 0 9px; padding: 9px; color: #9d6819; background: #fff5e5; border: 1px solid #f0d5a5; border-radius: 7px; }
.decision-blocker > i { font-size: 1rem; }
.decision-blocker span { display: grid; }
.decision-blocker strong { font-size: .56rem; }
.decision-blocker small { margin-top: 2px; color: #9a702f; font-size: .49rem; }
.decision-actions { display: grid; gap: 7px; padding-top: 2px; }
.decision-actions .btn-app { width: 100%; min-height: 43px; box-shadow: none; }
.decision-actions .btn-app span { font-family: "IBM Plex Sans Arabic", sans-serif; }
.decision-actions .btn-app[disabled] { color: #7c918a; background: #dfeae6; border-color: #cbded7; cursor: not-allowed; opacity: 1; }
.return-form { display: grid; gap: 10px; margin-top: 9px; padding: 11px; background: #f8fafb; border: 1px solid var(--line); border-radius: 8px; }
.return-form .app-select { min-height: 36px; font-size: .58rem; }
.return-form .app-textarea { min-height: 84px; font-size: .58rem; }
.return-form > div { display: flex; justify-content: flex-end; gap: 7px; }
.return-form .btn-app { min-height: 35px; box-shadow: none; }
.decision-success, .decision-returned { display: grid; grid-template-columns: 28px 1fr; gap: 8px; margin-top: 11px; padding: 11px; border-radius: 8px; }
.decision-success { color: var(--emerald-700); background: #eaf7f2; border: 1px solid #b9dfd2; }
.decision-returned { color: #9f6711; background: #fff4df; border: 1px solid #efd2a0; }
.decision-success > i, .decision-returned > i { font-size: 1.2rem; }
.decision-success strong, .decision-returned strong { font-size: .62rem; }
.decision-success p, .decision-returned p { margin: 3px 0 9px; color: var(--ink-700); font-size: .52rem; line-height: 1.5; }
.decision-success .btn-app, .decision-returned .btn-app { grid-column: 1 / -1; width: 100%; box-shadow: none; }
.mobile-approval-actions { display: none; }

.approval-confirm-summary { display: grid; grid-template-columns: 36px 1fr; gap: 10px; padding: 13px; color: var(--emerald-700); background: #ebf8f3; border: 1px solid #bfe1d5; border-radius: 9px; }
.approval-confirm-summary > i { font-size: 1.45rem; }
.approval-confirm-summary strong { font-size: .76rem; }
.approval-confirm-summary p { margin: 4px 0 0; color: var(--ink-700); font-size: .65rem; line-height: 1.55; }
.approval-confirm-details { margin: 13px 0; }
.approval-confirm-details div { display: grid; grid-template-columns: 100px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.approval-confirm-details dt { color: var(--ink-500); font-size: .6rem; }
.approval-confirm-details dd { margin: 0; color: var(--ink-700); font-size: .64rem; font-weight: 700; }
.approval-certification { display: grid; grid-template-columns: 18px 1fr; gap: 8px; padding: 11px; background: #f8fafb; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-700); font-size: .62rem; line-height: 1.55; cursor: pointer; }
.approval-certification input { width: 16px; height: 16px; margin-top: 1px; accent-color: var(--emerald-600); }

.approval-page[data-state="approved"] .journey-rail [data-current-stage] { margin: 0; border: 0; border-right: 1px solid var(--line); border-radius: 0; }
.approval-page[data-state="approved"] .journey-rail [data-current-stage] button { min-height: 94px; background: #fff; }
.approval-page[data-state="approved"] .journey-rail [data-current-stage] .journey-state,
.approval-page[data-state="approved"] .journey-rail [data-publish-stage] .journey-state { color: #fff; background: var(--emerald-600); border-color: var(--emerald-600); }
.approval-page[data-state="approved"] .journey-rail [data-publish-stage] { position: relative; z-index: 1; margin: -1px; border: 1px solid var(--emerald-600); border-radius: 8px; overflow: hidden; }
.approval-page[data-state="approved"] .journey-rail [data-publish-stage] button { min-height: 96px; background: #e9f6f1; }
.approval-page[data-state="returned"] .journey-rail [data-current-stage] { border-color: var(--warning); }
.approval-page[data-state="returned"] .journey-rail [data-current-stage] button { background: #fff6e8; }
.approval-page[data-state="returned"] .journey-rail [data-current-stage] .journey-state { background: var(--warning); border-color: var(--warning); }

@media (max-width: 1340px) {
  .approval-workspace {
    grid-template-columns: minmax(260px, .72fr) minmax(450px, 1.28fr);
    grid-template-areas:
      "left proof"
      "decision decision";
  }
  .decision-body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 0 18px; }
  .decision-list { grid-row: 1 / span 4; }
  .decision-actions, .return-form, .decision-success, .decision-returned { grid-column: 2; }
  .approval-people { gap: 13px; }
}

@media (max-width: 1020px) {
  .approval-title-row { align-items: flex-start; }
  .approval-people { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; }
  .approval-person:nth-child(2) { grid-column: 1; }
  .approval-people .icon-only { grid-row: 1; grid-column: 2; }
  .journey-rail strong { font-size: .58rem; }
  .journey-rail button { grid-template-columns: 20px 1fr; gap: 5px; padding: 11px 7px; }
  .journey-state { width: 19px; height: 19px; }
  .approval-workspace { grid-template-columns: 1fr; grid-template-areas: "proof" "left" "decision"; }
  .approval-left-column { grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); }
  .decision-body { grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); }
}

@media (max-width: 820px) {
  .approval-page { padding: 16px 14px 158px; }
  .approval-heading { margin-bottom: 11px; }
  .approval-breadcrumb { margin-bottom: 8px; }
  .approval-title-row { display: block; }
  .approval-title-copy h1 { display: grid; gap: 4px; font-size: 1.18rem; }
  .approval-title-copy h1 span { font-size: .88rem; }
  .approval-people { display: flex; margin-top: 12px; }
  .approval-person img { width: 30px; height: 30px; }
  .approval-people .icon-only { margin-left: auto; }
  .journey-surface { overflow: visible; }
  .journey-mobile-toggle {
    width: 100%;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    color: var(--navy-900);
    background: #e9f6f1;
    border: 1px solid var(--emerald-600);
    border-radius: 10px;
    text-align: left;
  }
  .journey-mobile-toggle > span { display: grid; }
  .journey-mobile-toggle strong { font-size: .72rem; }
  .journey-mobile-toggle small { margin-top: 3px; color: var(--emerald-700); font-size: .57rem; }
  .journey-mobile-toggle i { transition: transform .18s ease; }
  .journey-surface.expanded .journey-mobile-toggle i { transform: rotate(180deg); }
  .journey-rail { display: none; grid-template-columns: 1fr; margin-top: 7px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
  .journey-surface.expanded .journey-rail { display: grid; }
  .journey-rail li { border-right: 0; border-bottom: 1px solid var(--line); }
  .journey-rail li:last-child { border-bottom: 0; }
  .journey-rail button { min-height: 63px; grid-template-columns: 24px 1fr; padding: 9px 11px; }
  .journey-rail button > span:last-child { grid-template-columns: 1fr auto; align-items: center; gap: 1px 7px; }
  .journey-rail strong { font-size: .65rem; }
  .journey-rail small { grid-row: 2; }
  .journey-rail em { grid-row: 1; grid-column: 2; }
  .journey-rail time { grid-row: 2; grid-column: 2; }
  .journey-rail .current, .approval-page[data-state="approved"] .journey-rail [data-publish-stage] { margin: 0; border-width: 0 0 1px; border-radius: 0; }
  .journey-rail .current button, .approval-page[data-state="approved"] .journey-rail [data-publish-stage] button { min-height: 63px; }
  .approval-left-column { display: grid; grid-template-columns: 1fr; }
  .decision-body { display: block; }
  .approval-proof { order: 1; }
  .story-proof { padding: 13px 12px 0; }
  .story-proof figure img { aspect-ratio: 16 / 8.2; }
  .reviewer-comments { margin: 0 -12px; }
  .gate-list > li { grid-template-columns: 20px minmax(80px, 1fr) 68px 72px; }
  .mobile-approval-actions {
    position: fixed;
    z-index: 1010;
    right: 10px;
    bottom: 84px;
    left: 10px;
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 7px;
    padding: 7px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 13px;
    box-shadow: var(--shadow-md);
  }
  .mobile-approval-actions .btn-app { width: 100%; min-height: 44px; box-shadow: none; }
  .approval-page[data-state="approved"] .mobile-approval-actions,
  .approval-page[data-state="returned"] .mobile-approval-actions { display: none; }
  .approval-modal-card { align-self: end; max-height: calc(100vh - 20px); border-radius: 16px 16px 10px 10px; }
}

@media (max-width: 520px) {
  .approval-page { padding-inline: 11px; }
  .approval-person:nth-child(2) { display: none; }
  .approval-lockline { gap: 7px; }
  .proof-toolbar { flex-wrap: wrap; }
  .proof-toolbar label { width: 104px; }
  .proof-lock { width: 100%; margin-left: 0; }
  .story-proof > h2 { font-size: 1.15rem; }
  .story-deck { font-size: .67rem; }
  .proof-copy { font-size: .7rem; }
  .arabic-proof h3 { font-size: .85rem; }
  .arabic-proof p { font-size: .64rem; }
  .gate-columns { display: none; }
  .gate-list > li { grid-template-columns: 20px minmax(0, 1fr) 80px; gap: 7px; }
  .gate-owner { display: none; }
  .gate-result { grid-column: 3; }
  .gate-review-button, .gate-review-detail { grid-column: 1 / -1; }
  .stage-history li { grid-template-columns: 14px minmax(70px, 1fr) 42px 78px; }
  .decision-list > div { grid-template-columns: 98px 1fr; }
  .reviewed-by dd { grid-template-columns: 28px 1fr; }
  .reviewed-by time { grid-column: 2; }
  .modal-foot { display: grid; grid-template-columns: .7fr 1.3fr; }
  .modal-foot .btn-app { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .journey-mobile-toggle i { transition: none; }
}
