/* Page-specific styles extracted from promotion.html for browser caching. */
body.page-promotion{overflow-x:hidden}
  .promo-page-shell{display:grid;gap:18px;width:min(1120px,100%);max-width:1120px;padding-inline:clamp(12px,3vw,22px);padding-bottom:calc(var(--bottom-nav-height,72px) + 22px)}
  .promo-page-shell *{box-sizing:border-box;min-width:0}
  .promo-page-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.72fr);gap:18px;align-items:stretch}
  .promo-page-hero-main{position:relative;overflow:hidden;padding:22px;border:1px solid #dde7f3;background:linear-gradient(135deg,#fff 0%,#fbfcff 44%,#f6f1ff 100%);box-shadow:0 18px 42px rgba(15,23,42,.06)}
  .promo-page-hero-main::before{content:"";position:absolute;top:-120px;left:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(103,58,183,.13),rgba(103,58,183,0));pointer-events:none}
  .promo-page-hero-main::after{content:"";position:absolute;left:18px;bottom:-110px;width:260px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(102,61,144,.14),rgba(102,61,144,0));pointer-events:none}
  .promo-page-header{position:relative;z-index:1;margin-bottom:14px}
  .promo-page-copy{position:relative;z-index:1;display:grid;gap:10px;margin-bottom:18px}
  .promo-page-kicker{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:7px 14px;border-radius:999px;background:#EDE7F6;color:#7E57C2;font-size:12px;font-weight:800}
  .promo-page-subtitle{margin:0;max-width:66ch;color:#52606d;line-height:1.95;font-size:14px}
  .promo-page-highlights{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
  .promo-page-highlight{padding:14px;border-radius:18px;border:1px solid rgba(215,226,238,.9);background:rgba(255,255,255,.84);backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
  .promo-page-highlight strong{display:block;margin-bottom:4px;color:#213547;font-size:14px}
  .promo-page-highlight span{display:block;color:#64748b;font-size:12px;line-height:1.8}
  .promo-tabs-row{position:relative;z-index:1;margin:0;padding:8px;border-radius:18px;background:rgba(255,255,255,.78);border:1px solid rgba(219,228,238,.92);width:max-content;max-width:100%}

  .promo-quick-card{display:flex;flex-direction:column;gap:12px;justify-content:center;padding:22px;border:1px solid #D1C4E9;background:linear-gradient(180deg,#ffffff 0%,#F5F0FB 62%,#f9fcff 100%);box-shadow:0 18px 40px rgba(15,23,42,.06)}
  .promo-quick-card-kicker{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:6px 12px;border-radius:999px;background:#8E6AD8;color:#fff;font-size:11px;font-weight:800}
  .promo-quick-card h2{margin:0;color:#7353C8;font-size:28px;line-height:1.35}
  .promo-quick-card p{margin:0;color:#6E5A99;line-height:1.9;font-size:14px}
  .promo-quick-card-points{display:flex;flex-wrap:wrap;gap:8px}
  .promo-quick-card-points span{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid #D1C4E9;color:#7E57C2;font-size:12px;font-weight:700}
  .promo-quick-card-btn{width:100%;justify-content:center;min-height:48px}

  .promo-page-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid #e3eaf4;background:linear-gradient(135deg,#fff 0%,#f9fbff 100%)}
  .promo-page-summary-copy h3{margin:0 0 8px;font-size:20px;color:#213547}
  .promo-page-summary-copy p{margin:0;color:#64748b;line-height:1.85;font-size:13px}
  .promo-page-summary-note{display:grid;gap:4px;min-width:280px;padding:12px 14px;border-radius:16px;background:#f8f5ff;border:1px solid #e5daf7;color:#5b2f91}
  .promo-page-summary-note strong{font-size:13px}
  .promo-page-summary-note span{font-size:12px;line-height:1.8}

  .promo-requests-panel{padding:20px}
  .promo-requests-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
  .promo-requests-panel-head h3{margin:0 0 6px;font-size:21px;color:#213547}
  .promo-requests-panel-head p{margin:0;color:#64748b;line-height:1.8;font-size:13px;max-width:64ch}
  .promo-requests-new-link{min-height:42px;white-space:nowrap}
  .promo-loading-state{min-height:160px;align-items:center;justify-content:center}

  .promo-modal{position:fixed;inset:0;z-index:1500}
  .promo-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}
  .promo-modal-card{position:relative;z-index:1;max-width:560px;margin:8vh auto 0;background:#fff;border-radius:22px;padding:18px;box-shadow:0 20px 40px rgba(15,23,42,.18)}
  .promo-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
  .promo-modal-head h3{margin:0;color:#3f2470}
  .promo-modal-close{border:0;background:#f4effd;color:#663d90;width:36px;height:36px;border-radius:999px;font-size:24px;line-height:1;cursor:pointer}
  .promo-modal-body{max-height:60vh;overflow:auto}
  .promo-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;flex-wrap:wrap}
  .promo-modal-section{margin-bottom:14px}
  .promo-modal-item{padding:10px 12px;border-radius:14px;background:#f7f3ff;margin-bottom:8px}
  .promo-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f1f0f6}
  .promo-line:last-child{border-bottom:0}
  .promo-line span:first-child{color:#6b7280}

  .promo-success-card{max-width:420px;text-align:center;padding:28px 24px}
  .success-code-badge{display:inline-block;border:2px solid #7E57C2;color:#7E57C2;border-radius:8px;padding:8px 24px;font-weight:700;font-size:15px;margin:0 0 18px}
  .success-message-box{border:2px solid #7E57C2;border-radius:8px;padding:16px;margin:0 0 18px}
  .success-message-box strong{display:block;font-size:17px;margin:0 0 4px}
  .success-message-box p{margin:0;color:#6b7280}

  .promo-requests-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
  .promo-overview-chip{padding:14px 16px;border-radius:18px;border:1px solid #e1e8f4;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);box-shadow:0 10px 24px rgba(15,23,42,.04)}
  .promo-overview-chip span{display:block;color:#64748b;font-size:12px;margin-bottom:6px}
  .promo-overview-chip strong{display:block;color:#213547;font-size:26px;line-height:1.2}
  .promo-overview-chip.is-primary{background:linear-gradient(180deg,#ffffff 0%,#f4f9ff 100%)}
  .promo-overview-chip.is-success{background:linear-gradient(180deg,#ffffff 0%,#F5F0FB 100%)}
  .promo-overview-chip.is-warning{background:linear-gradient(180deg,#ffffff 0%,#fff9ef 100%)}
  .promo-overview-chip.is-accent{background:linear-gradient(180deg,#ffffff 0%,#faf6ff 100%)}

  .promo-requests-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
  .promo-requests-head h3{margin:0;font-size:16px;color:#663d90;font-weight:700}
  .promo-requests-head .dot{width:10px;height:10px;background:#663d90;border-radius:50%}
  .promo-requests-table-wrap{overflow-x:auto;margin:0;max-width:100%;-webkit-overflow-scrolling:touch}
  .promo-requests-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
  .promo-requests-table thead th{position:sticky;top:0;background:#f5f7ff;color:#5b6280;padding:14px 14px;text-align:right;white-space:nowrap;font-weight:800;border-bottom:1px solid #dde5f1}
  .promo-requests-table thead th:first-child{border-top-right-radius:16px}
  .promo-requests-table thead th:last-child{border-top-left-radius:16px}
  .promo-requests-table tbody td{padding:16px 14px;border-bottom:1px solid #edf1f6;vertical-align:middle;white-space:nowrap;background:#fff}
  .promo-requests-table tbody tr:last-child td{border-bottom:0}
  .promo-requests-table tbody tr:hover td{background:#fafcff;cursor:pointer}
  .promo-request-code{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;background:#f5efff;color:#663d90;font-weight:800;border:1px solid #e4d5fb}
  .promo-request-type{display:-webkit-box;max-width:360px;white-space:normal;line-height:1.8;color:#243b53;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .promo-request-date{color:#52606d;font-weight:700}
  .promo-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid transparent}
  .promo-status-pill.status-new,.promo-status-pill.status-awaiting-review,.promo-status-pill.status-in-review{background:#eef4ff;border-color:#d4dff7;color:#3056a5}
  .promo-status-pill.status-quoted,.promo-status-pill.status-pending-payment{background:#fff7ed;border-color:#fed7aa;color:#b45309}
  .promo-status-pill.status-active,.promo-status-pill.status-in-progress{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
  .promo-status-pill.status-completed{background:#ecfeff;border-color:#bae6fd;color:#1FB5A8}
  .promo-status-pill.status-rejected,.promo-status-pill.status-cancelled,.promo-status-pill.status-expired{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
  .promo-inline-state{padding:16px 18px;border-radius:16px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:13px;line-height:1.8}
  .promo-inline-state-error{background:#fff5f5;border-color:#fecaca;color:#b91c1c}

  .promo-empty-state{display:grid;place-items:center;text-align:center;gap:12px;min-height:240px;padding:28px 18px;border:1px dashed #d9e2ec;background:linear-gradient(180deg,#fff 0%,#fbfcff 100%);border-radius:22px}
  .promo-empty-state p{margin:0;color:#213547;font-size:18px;font-weight:800}
  .promo-empty-state small{display:block;max-width:460px;color:#64748b;line-height:1.9;font-size:13px}
  .promo-empty-visual{position:relative;width:90px;height:68px}
  .promo-empty-visual span{position:absolute;display:block;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f2ecff 100%);border:1px solid #e5daf7;box-shadow:0 14px 30px rgba(102,61,144,.08)}
  .promo-empty-visual span:nth-child(1){inset:12px 0 0 22px}
  .promo-empty-visual span:nth-child(2){width:58px;height:42px;top:0;right:8px}
  .promo-empty-visual span:nth-child(3){width:58px;height:42px;bottom:0;left:0}

  @media (max-width:1024px){
    .promo-page-hero{grid-template-columns:1fr}
    .promo-page-highlights{grid-template-columns:1fr}
    .promo-page-summary{flex-direction:column}
    .promo-page-summary-note{min-width:0;width:100%}
    .promo-requests-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
    .promo-requests-panel-head{flex-direction:column;align-items:stretch}
    .promo-requests-new-link{width:100%;justify-content:center}
  }

  @media (max-width:640px){
    .promo-page-shell{width:100%;max-width:100%;padding:12px;gap:12px}
    .promo-page-hero{gap:12px}
    .promo-page-hero-main,.promo-quick-card,.promo-requests-panel{padding:16px}
    .promo-page-hero-main,.promo-quick-card,.promo-page-summary,.promo-requests-panel{border-radius:16px;margin-bottom:0}
    .promo-page-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
    .promo-page-header h1{font-size:20px;line-height:1.35;white-space:normal}
    .promo-page-copy{gap:8px;margin-bottom:12px}
    .promo-page-kicker{width:100%;justify-content:center;border-radius:12px;text-align:center;white-space:normal}
    .promo-page-subtitle{font-size:13px;line-height:1.8;max-width:none}
    .promo-page-highlights{display:none}
    .promo-tabs-row{width:100%}
    .promo-tabs-row .tab{flex:1}
    .promo-page-highlights,.promo-requests-overview{grid-template-columns:1fr}
    .promo-page-summary{padding:16px}
    .promo-page-summary-copy h3{font-size:18px}
    .promo-page-summary-copy p{font-size:12.5px}
    .promo-page-summary-note{border-radius:12px;padding:10px 12px}
    .promo-quick-card h2{font-size:22px}
    .promo-quick-card-points{display:grid;grid-template-columns:1fr;gap:8px}
    .promo-quick-card-points span{width:100%;justify-content:center;border-radius:12px;white-space:normal;text-align:center}
    .promo-requests-panel-head{gap:10px;margin-bottom:12px}
    .promo-requests-panel-head h3{font-size:18px}
    .promo-requests-panel-head p{font-size:12.5px;line-height:1.75}
    .promo-requests-overview{gap:8px;margin-bottom:12px}
    .promo-overview-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px}
    .promo-overview-chip span{margin:0}
    .promo-overview-chip strong{font-size:22px}
    .promo-requests-head{margin-bottom:8px}
    .promo-requests-table-wrap{overflow:visible;border-radius:0}
    .promo-requests-table{display:block;min-width:0!important;width:100%;border-spacing:0}
    .promo-requests-table thead{display:none}
    .promo-requests-table tbody{display:grid;gap:10px;width:100%}
    .promo-requests-table tbody tr{display:grid;gap:9px;width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.045)}
    .promo-requests-table tbody tr:hover td{background:transparent}
    .promo-requests-table tbody td{display:grid;grid-template-columns:minmax(88px,.72fr) minmax(0,1fr);align-items:start;gap:10px;width:100%;padding:0!important;border:0!important;background:transparent!important;white-space:normal!important}
    .promo-requests-table tbody td::before{content:attr(data-label);color:#64748b;font-size:11px;font-weight:800;line-height:1.6}
    .promo-request-code,.promo-status-pill{width:fit-content;max-width:100%;min-height:30px;padding-inline:10px;white-space:normal;text-align:center;line-height:1.45}
    .promo-request-date{white-space:normal;overflow-wrap:anywhere}
    .promo-request-type{max-width:none}
    .promo-modal-card{margin:0;height:100%;max-width:none;border-radius:0;padding:16px}
    .promo-modal-body{max-height:calc(100vh - 170px)}
  }

  @media (max-width:420px){
    .promo-page-shell{padding-inline:10px}
    .promo-page-summary{padding:14px}
    .promo-page-hero-main,.promo-quick-card,.promo-requests-panel{padding:14px}
    .promo-tabs-row{display:flex;overflow-x:auto;gap:8px}
    .promo-tabs-row .tab{flex:1 1 0;min-width:0;white-space:normal}
    .promo-requests-table tbody td{grid-template-columns:1fr;gap:2px}
    .promo-quick-card-btn,.promo-requests-new-link,.promo-modal-actions .btn{width:100%}
    .promo-modal-card{width:min(calc(100vw - 16px),560px);max-height:calc(100dvh - 16px);display:flex;flex-direction:column}
    .promo-modal-body{flex:1 1 auto}
  }

  @media (max-width:360px){
    .promo-line{display:grid;gap:4px}
    .promo-page-hero-main,.promo-quick-card,.promo-requests-panel{padding:14px}
  }

  /* ── Dark mode ── */
  [data-theme="dark"] .promo-page-hero-main{
    background:linear-gradient(135deg,#1a1025 0%,#1e1530 44%,#221840 100%);
    border-color:rgba(255,255,255,0.08)
  }
  @media (prefers-color-scheme:dark){
    :not([data-theme]) .promo-page-hero-main{background:linear-gradient(135deg,#1a1025 0%,#1e1530 44%,#221840 100%);border-color:rgba(255,255,255,0.08)}
    :not([data-theme]) .promo-quick-card{background:linear-gradient(180deg,#1e1828 0%,#1a1530 100%);border-color:rgba(209,196,233,0.18)}
    :not([data-theme]) .promo-requests-panel{background:#1a1025;border-color:rgba(255,255,255,0.08)}
  }
  [data-theme="dark"] .promo-quick-card{background:linear-gradient(180deg,#1e1828 0%,#1a1530 100%);border-color:rgba(209,196,233,0.18)}
  [data-theme="dark"] .promo-quick-card h2{color:#d4b8ff}
  [data-theme="dark"] .promo-quick-card p{color:#a89cbf}
  [data-theme="dark"] .promo-quick-card-points span{background:#2a1f40;border-color:rgba(209,196,233,0.25);color:#c9a8ff}
  [data-theme="dark"] .promo-page-kicker{background:#2a1f40;color:#c9a8ff}
  [data-theme="dark"] .promo-page-subtitle{color:#a0aab8}
  [data-theme="dark"] .promo-page-highlight{background:rgba(30,24,40,0.84);border-color:rgba(255,255,255,0.08)}
  [data-theme="dark"] .promo-page-highlight strong{color:#e2d9f3}
  [data-theme="dark"] .promo-page-highlight span{color:#8a95a8}
  [data-theme="dark"] .promo-page-summary{background:linear-gradient(135deg,#1a1025 0%,#1c1535 100%);border-color:rgba(255,255,255,0.08)}
  [data-theme="dark"] .promo-page-summary-copy h3{color:#e2d9f3}
  [data-theme="dark"] .promo-page-summary-copy p{color:#8a95a8}
  [data-theme="dark"] .promo-page-summary-note{background:#1e1535;border-color:rgba(139,92,246,0.25);color:#c4a8ff}
  [data-theme="dark"] .promo-requests-panel{background:#1a1025;border-color:rgba(255,255,255,0.08)}
  [data-theme="dark"] .promo-empty-state{color:#8a95a8}
  [data-theme="dark"] .promo-request-row{border-color:rgba(255,255,255,0.06);background:#1e1828}
  [data-theme="dark"] .promo-request-row:hover{background:#231d35}
  [data-theme="dark"] .promo-tabs-row{background:rgba(30,24,40,0.78);border-color:rgba(255,255,255,0.1)}
