:root {
    --ap-surface: var(--trv-panel, #fff);
    --ap-surface-soft: var(--trv-panel-soft, #f5fafe);
    --ap-muted: var(--trv-muted, #64748b);
    --ap-text: var(--trv-text, #374151);
    --ap-ink: var(--trv-ink, #1f2937);
    --ap-border: var(--trv-line, #e6edf6);
    --ap-border-strong: var(--trv-line-strong, #dbe7f2);
    --ap-soft: var(--trv-bg, #f8fafc);
    --ap-accent: var(--trv-primary-strong, #0b9ff4);
    --ap-accent-soft: var(--trv-primary-wash, #eff9ff);
    --ap-danger-soft: color-mix(in srgb, var(--trv-danger, #dc2626) 12%, transparent);
    --ap-warning-soft: color-mix(in srgb, #f59e0b 14%, transparent);
    --ap-success-soft: color-mix(in srgb, var(--trv-success, #15803d) 12%, transparent);
    --ap-shadow: var(--trv-shadow-sm, 0 6px 20px rgba(15,23,42,.045));
}
.admin-platform-page { max-width:1920px; margin-inline:auto; color:var(--ap-text); }
.ap-page-header { display:flex; gap:1rem; align-items:flex-start; justify-content:space-between; margin-block-end:1.25rem; padding:1.25rem 1.35rem; border:1px solid var(--ap-border); border-radius:var(--trv-radius-lg,22px); background:radial-gradient(circle at top right,color-mix(in srgb,var(--ap-accent) 13%,transparent),transparent 38%),linear-gradient(135deg,var(--ap-surface),var(--ap-surface-soft)); box-shadow:var(--ap-shadow); }
.ap-page-header h1 { font-size:clamp(1.35rem,2vw,1.75rem); margin:0; letter-spacing:-.025em; color:var(--ap-ink); }
.ap-page-header p { color:var(--ap-muted); margin:.4rem 0 0; max-width:72rem; line-height:1.65; }
.ap-page-actions { display:flex; flex-wrap:wrap; gap:.55rem; justify-content:flex-end; }
.ap-section-nav { display:flex; gap:.35rem; overflow-x:auto; padding:.35rem; margin-block-end:1rem; border:1px solid var(--ap-border); border-radius:14px; background:var(--ap-surface); scrollbar-width:thin; }
.ap-section-nav a { flex:0 0 auto; padding:.62rem .85rem; border-radius:10px; color:var(--ap-muted); font-size:.82rem; font-weight:750; white-space:nowrap; }
.ap-section-nav a:hover { color:var(--ap-accent); background:var(--ap-accent-soft); }
.ap-section-nav a.active { color:#fff; background:linear-gradient(135deg,var(--trv-primary,#59bdf7),var(--ap-accent)); box-shadow:0 8px 20px color-mix(in srgb,var(--ap-accent) 24%,transparent); }
.ap-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:1rem; margin-block-end:1rem; }
.ap-kpi { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:14px; padding:1rem; min-height:116px; box-shadow:var(--ap-shadow); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
a.ap-kpi:hover,.ap-kpi[role="link"]:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--ap-accent) 45%,var(--ap-border)); box-shadow:0 14px 32px color-mix(in srgb,var(--ap-accent) 12%,transparent); }
.ap-kpi-label { color:var(--ap-muted); font-size:.75rem; font-weight:750; text-transform:uppercase; letter-spacing:.045em; }
.ap-kpi-value { color:var(--ap-ink); font-size:clamp(1.35rem,2.3vw,1.8rem); font-weight:800; margin-top:.4rem; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.ap-kpi-meta { color:var(--ap-muted); font-size:.78rem; margin-top:.35rem; line-height:1.45; }
.ap-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1rem; }
.ap-col-12{grid-column:span 12}.ap-col-9{grid-column:span 9}.ap-col-8{grid-column:span 8}.ap-col-7{grid-column:span 7}.ap-col-6{grid-column:span 6}.ap-col-5{grid-column:span 5}.ap-col-4{grid-column:span 4}.ap-col-3{grid-column:span 3}
.ap-card { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:14px; box-shadow:var(--ap-shadow); overflow:hidden; }
.ap-card-header { padding:1rem 1.1rem; border-bottom:1px solid var(--ap-border); display:flex; gap:.75rem; justify-content:space-between; align-items:center; background:var(--ap-surface); }
.ap-card-header h2,.ap-card-header h3 { color:var(--ap-ink); font-size:1rem; margin:0; }
.ap-card-body { padding:1rem 1.1rem; }
.ap-summary-link { display:block; color:var(--ap-text); transition:.18s ease; min-height:190px; }
.ap-summary-link:hover { color:var(--ap-text); transform:translateY(-3px); border-color:color-mix(in srgb,var(--ap-accent) 45%,var(--ap-border)) !important; box-shadow:0 16px 36px color-mix(in srgb,var(--ap-accent) 12%,transparent) !important; }
.ap-summary-link h2 { margin:.85rem 0 .4rem; font-size:1.05rem; color:var(--ap-ink); }
.ap-summary-link p { color:var(--ap-muted); min-height:3em; line-height:1.55; }
.ap-summary-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; color:var(--ap-accent); background:var(--ap-accent-soft); }
.ap-summary-icon svg { width:20px; height:20px; }
.ap-filter { background:linear-gradient(135deg,var(--ap-surface-soft),var(--ap-surface)); border:1px solid var(--ap-border); border-radius:14px; padding:1rem; margin-bottom:1rem; }
.ap-filter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:.75rem; align-items:end; }
.ap-filter-grid-wide { grid-template-columns:repeat(6,minmax(135px,1fr)); }
.ap-filter-span-2 { grid-column:span 2; }
.ap-filter label,.ap-form label { display:block; color:var(--ap-text); font-weight:700; font-size:.79rem; margin-bottom:.35rem; }
.ap-table-wrap { overflow:auto; max-width:100%; scrollbar-width:thin; }
.ap-table { width:100%; border-collapse:separate; border-spacing:0; min-width:760px; color:var(--ap-text); }
.ap-table caption { text-align:start; color:var(--ap-muted); padding:.8rem 1rem; caption-side:top; }
.ap-table th { position:sticky; top:0; z-index:1; background:var(--ap-surface-soft); color:var(--ap-muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.035em; white-space:nowrap; }
.ap-table th,.ap-table td { padding:.75rem .9rem; border-bottom:1px solid var(--ap-border); vertical-align:top; }
.ap-table tbody tr { transition:background .14s ease; }
.ap-table tbody tr:hover { background:var(--ap-accent-soft); }
.ap-table tbody tr:last-child td { border-bottom:0; }
.ap-badge { display:inline-flex; align-items:center; gap:.25rem; padding:.27rem .58rem; border-radius:999px; font-size:.72rem; font-weight:750; background:var(--ap-surface-soft); color:var(--ap-text); border:1px solid var(--ap-border); }
.ap-badge-success{background:var(--ap-success-soft);color:var(--trv-success,#15803d)}.ap-badge-warning{background:var(--ap-warning-soft);color:#b36b00}.ap-badge-danger{background:var(--ap-danger-soft);color:var(--trv-danger,#dc2626)}.ap-badge-info{background:var(--ap-accent-soft);color:var(--ap-accent)}
.ap-entity-link { font-weight:750; color:var(--ap-accent); }
.ap-muted { color:var(--ap-muted); }
.ap-value-list { display:grid; grid-template-columns:minmax(140px,.8fr) minmax(0,1.6fr); margin:0; }
.ap-value-list dt,.ap-value-list dd { padding:.58rem 0; border-bottom:1px solid var(--ap-border); margin:0; overflow-wrap:anywhere; }
.ap-value-list dt { color:var(--ap-muted); font-weight:700; }
.ap-metric-list { display:grid; gap:.15rem; }
.ap-metric-list>div { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.72rem .2rem; border-bottom:1px solid var(--ap-border); }
.ap-metric-list>div:last-child { border-bottom:0; }
.ap-metric-list strong { color:var(--ap-ink); font-variant-numeric:tabular-nums; }
.ap-timeline { list-style:none; margin:0; padding:0; }
.ap-timeline li { position:relative; padding-inline-start:1.4rem; padding-bottom:1rem; }
.ap-timeline li::before { content:""; position:absolute; inset-inline-start:.2rem; top:.35rem; width:.55rem; height:.55rem; border-radius:50%; background:var(--ap-accent); }
.ap-timeline li::after { content:""; position:absolute; inset-inline-start:.45rem; top:.95rem; bottom:0; width:1px; background:var(--ap-border); }
.ap-timeline li:last-child::after { display:none; }
.ap-empty { text-align:center; color:var(--ap-muted); padding:2.25rem 1rem; }
.ap-alert-strip { border-inline-start:4px solid var(--ap-accent); background:var(--ap-accent-soft); padding:.75rem 1rem; border-radius:8px; }
.ap-alert-strip.danger { border-color:var(--trv-danger,#dc2626); background:var(--ap-danger-soft); }
.ap-tabs { display:flex; gap:.4rem; overflow:auto; border-bottom:1px solid var(--ap-border); margin-bottom:1rem; }
.ap-tabs a { padding:.7rem .85rem; white-space:nowrap; color:var(--ap-muted); border-bottom:2px solid transparent; }
.ap-tabs a.active { color:var(--ap-accent); border-color:currentColor; font-weight:750; }
.ap-two-pane { display:grid; grid-template-columns:minmax(280px,.7fr) minmax(0,1.8fr); gap:1rem; }
.ap-code { background:#0b1220; color:#e5edf7; border:1px solid #26364c; border-radius:10px; padding:.85rem; overflow:auto; max-height:360px; white-space:pre-wrap; overflow-wrap:anywhere; }
.ap-progress { height:.58rem; background:var(--ap-border); border-radius:999px; overflow:hidden; min-width:90px; }
.ap-progress>span { display:block; height:100%; background:linear-gradient(90deg,var(--trv-primary,#59bdf7),var(--ap-accent)); }
.ap-sticky-actions { position:sticky; bottom:.75rem; z-index:8; background:color-mix(in srgb,var(--ap-surface) 94%,transparent); backdrop-filter:blur(8px); border:1px solid var(--ap-border); border-radius:12px; padding:.7rem; box-shadow:var(--trv-shadow,0 18px 50px rgba(15,23,42,.075)); }
.ap-export-form { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; margin:-.35rem 0 1rem; }
.ap-export-form .btn-link { padding-inline:.35rem; }
.ap-action-list { display:flex; flex-wrap:wrap; gap:.45rem; }
.ap-quality-cell { min-width:140px; }
.ap-provider-chip { display:inline-flex; padding:.22rem .48rem; border:1px solid var(--ap-border); border-radius:999px; font-size:.7rem; margin:.1rem; background:var(--ap-surface-soft); }
.ap-aging-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:.65rem; }
.ap-aging-grid>div { padding:.8rem; border:1px solid var(--ap-border); border-radius:11px; background:var(--ap-surface-soft); }
.ap-aging-grid strong { display:block; font-size:1.05rem; color:var(--ap-ink); margin-top:.25rem; }
@media (max-width:1399px){.ap-filter-grid-wide{grid-template-columns:repeat(4,minmax(145px,1fr))}}
@media (max-width:1199px){.ap-col-9,.ap-col-8,.ap-col-7,.ap-col-6,.ap-col-5,.ap-col-4,.ap-col-3{grid-column:span 12}.ap-two-pane{grid-template-columns:1fr}.ap-filter-grid-wide{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media (max-width:767px){.ap-page-header{display:block;padding:1rem}.ap-page-actions{justify-content:flex-start;margin-top:.75rem}.ap-value-list{grid-template-columns:1fr}.ap-value-list dt{border-bottom:0;padding-bottom:.1rem}.ap-value-list dd{padding-top:.1rem}.ap-filter-grid-wide{grid-template-columns:1fr}.ap-filter-span-2{grid-column:span 1}.ap-export-form{justify-content:stretch}.ap-export-form .btn{flex:1 1 auto}.ap-section-nav{margin-inline:-4px}.ap-card-header{align-items:flex-start;flex-direction:column}}
[dir="rtl"] .ap-kpi-label,.ap-table th { letter-spacing:0; }
[data-bs-theme="dark"] .ap-code,[data-layout-mode="dark"] .ap-code { background:#080f1b; border-color:#33445c; }


/* Supplier payable workspace: full-width, high-volume and responsive by design. */
.ap-payables-workspace .ap-filter-grid-wide { grid-template-columns:repeat(6,minmax(145px,1fr)); }
.ap-aging-currency-list { display:grid; gap:1rem; }
.ap-aging-currency-card { display:grid; grid-template-columns:minmax(130px,.35fr) minmax(0,2.65fr); gap:1rem; align-items:center; padding:1rem; border:1px solid var(--ap-border); border-radius:12px; background:var(--ap-surface-soft); }
.ap-aging-currency-heading { display:grid; gap:.25rem; }
.ap-aging-currency-heading strong { color:var(--ap-ink); font-size:1.15rem; }
.ap-aging-currency-heading span { color:var(--ap-muted); font-size:.78rem; }
.ap-payables-table { min-width:1020px; table-layout:auto; }
.ap-payables-table th:first-child,
.ap-payables-table td:first-child { min-width:155px; }
.ap-payables-table th:nth-child(2),
.ap-payables-table td:nth-child(2) { min-width:170px; }
.ap-payables-table th:nth-child(3),
.ap-payables-table td:nth-child(3) { min-width:145px; }
.ap-payables-table th:last-child,
.ap-payables-table td:last-child { width:1%; white-space:nowrap; }
.ap-payable-reference { font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; overflow-wrap:anywhere; }
.ap-money-cell { white-space:nowrap; font-variant-numeric:tabular-nums; }
.ap-money-cell strong { color:var(--ap-ink); font-size:.95rem; }
.ap-money-cell span { color:var(--ap-muted); margin-inline-start:.25rem; }
.ap-pagination-footer { display:flex; justify-content:flex-end; }
.ap-payable-detail-page .ap-kpi-value { font-size:clamp(1.12rem,2vw,1.65rem); }

@media (max-width:1399px) {
    .ap-payables-workspace .ap-filter-grid-wide { grid-template-columns:repeat(4,minmax(145px,1fr)); }
}
@media (max-width:1199px) {
    .ap-payables-workspace .ap-filter-grid-wide { grid-template-columns:repeat(3,minmax(145px,1fr)); }
    .ap-aging-currency-card { grid-template-columns:1fr; }
}
@media (max-width:767px) {
    .ap-payables-workspace .ap-filter-grid-wide { grid-template-columns:1fr; }
    .ap-aging-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ap-pagination-footer { justify-content:center; }

    .ap-responsive-records { min-width:0; }
    .ap-responsive-records caption { padding-inline:1rem; }
    .ap-responsive-records thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
    .ap-responsive-records,
    .ap-responsive-records tbody,
    .ap-responsive-records tr,
    .ap-responsive-records td { display:block; width:100%; }
    .ap-responsive-records tbody { padding:.75rem; }
    .ap-responsive-records tr { margin-bottom:.75rem; padding:.4rem .85rem; border:1px solid var(--ap-border); border-radius:12px; background:var(--ap-surface); box-shadow:var(--ap-shadow); }
    .ap-responsive-records tr:last-child { margin-bottom:0; }
    .ap-responsive-records td { display:grid; grid-template-columns:minmax(105px,.75fr) minmax(0,1.25fr); gap:.75rem; align-items:start; padding:.65rem 0; border-bottom:1px solid var(--ap-border)!important; text-align:start!important; white-space:normal!important; }
    .ap-responsive-records td:last-child { border-bottom:0!important; }
    .ap-responsive-records td::before { content:attr(data-label); color:var(--ap-muted); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
    [dir="rtl"] .ap-responsive-records td::before { letter-spacing:0; }
    .ap-responsive-records td[colspan] { display:block; }
    .ap-responsive-records td[colspan]::before { content:none; }
}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
