/**
 * TradeForge — Service Action Panel Styles
 * Waste Connections operational dashboard component
 */

/* ── Panel section ── */
.sap-section{position:relative}
.sap-section::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,rgba(140,106,62,.4),rgba(251,191,36,.65),rgba(140,106,62,.4))}

.sap-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.sap-header-left h2{margin:0 0 4px;font-size:20px;color:#fff;font-weight:700;display:flex;align-items:center;gap:10px;letter-spacing:-.01em}
.sap-header-left h2 svg{width:20px;height:20px;color:#fbbf24}
.sap-header-left p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}

/* ── Stat counters ── */
.sap-stats{display:flex;gap:10px;flex-wrap:wrap}
.sap-stat{padding:8px 16px;background:rgba(46,49,54,.8);border:1px solid rgba(181,183,185,.1);border-radius:10px;text-align:center;min-width:80px}
.sap-stat-value{font-size:22px;font-weight:800;color:#fff;line-height:1}
.sap-stat-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:3px}

/* ── Request cards ── */
.sap-list{display:flex;flex-direction:column;gap:14px}
.sap-loading,.sap-empty{padding:32px;text-align:center;color:var(--muted);font-size:14px}

.sap-card{background:linear-gradient(180deg,rgba(46,49,54,.96),rgba(40,42,46,.88));border:1px solid rgba(181,183,185,.1);border-radius:12px;padding:20px;transition:border-color .2s;position:relative;overflow:hidden}
.sap-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;border-radius:4px 0 0 4px}
.sap-card--submitted::before{background:#4ade80}
.sap-card--reviewed::before{background:#fbbf24}
.sap-card--scheduled::before{background:var(--bronze)}
.sap-card--swap-required::before{background:#fbbf24}
.sap-card--completed::before{background:#6abf69}
.sap-card:hover{border-color:rgba(140,106,62,.4)}

/* ── Card header ── */
.sap-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.sap-card-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sap-card-title h4{margin:0;font-size:16px;color:#fff;font-weight:700}
.sap-card-id{font-size:11px;color:var(--muted);font-family:monospace;letter-spacing:.02em}

/* ── Urgency badges ── */
.sap-urgency{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em}
.sap-urgency.urgent{background:rgba(248,113,113,.12);color:#f87171;border:1px solid rgba(248,113,113,.25)}
.sap-urgency.high{background:rgba(251,191,36,.1);color:#fbbf24;border:1px solid rgba(251,191,36,.2)}

/* ── Status badges ── */
.sap-status-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em}
.sap-status-badge--submitted{background:rgba(74,222,128,.12);color:#4ade80;border:1px solid rgba(74,222,128,.22)}
.sap-status-badge--reviewed{background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.22)}
.sap-status-badge--scheduled{background:rgba(140,106,62,.14);color:var(--bronze);border:1px solid rgba(140,106,62,.3)}
.sap-status-badge--swap-required{background:rgba(251,191,36,.1);color:#fbbf24;border:1px solid rgba(251,191,36,.2)}
.sap-status-badge--completed{background:rgba(106,191,105,.12);color:#6abf69;border:1px solid rgba(106,191,105,.22)}

/* ── Details grid ── */
.sap-card-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 16px;margin-bottom:14px;padding:12px;background:rgba(28,30,33,.5);border:1px solid rgba(181,183,185,.06);border-radius:8px}
.sap-detail{display:flex;flex-direction:column;gap:2px}
.sap-detail-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.sap-detail-value{font-size:13px;color:var(--ash);font-weight:500}

/* ── Status pipeline ── */
.sap-pipeline{display:flex;align-items:center;gap:0;margin-bottom:16px;padding:10px 12px;background:rgba(28,30,33,.4);border-radius:8px;overflow-x:auto}
.sap-pipeline-step{display:flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px;color:var(--muted);white-space:nowrap;transition:color .2s}
.sap-pipeline-step.completed{color:#4ade80}
.sap-pipeline-step.current{color:#fff;font-weight:700}
.sap-pipeline-dot{width:8px;height:8px;border-radius:50%;background:rgba(181,183,185,.2);flex-shrink:0;transition:background .2s}
.sap-pipeline-step.completed .sap-pipeline-dot{background:#4ade80;box-shadow:0 0 6px rgba(74,222,128,.3)}
.sap-pipeline-step.current .sap-pipeline-dot{background:var(--bronze);box-shadow:0 0 6px rgba(140,106,62,.4)}
.sap-pipeline-arrow{color:rgba(181,183,185,.2);font-size:12px;margin:0 2px;flex-shrink:0}

/* ── Action buttons ── */
.sap-card-actions{display:flex;gap:8px;flex-wrap:wrap}

.sap-action{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid rgba(181,183,185,.15);background:rgba(46,49,54,.8);color:var(--ash);cursor:pointer;transition:all .15s;letter-spacing:.01em}
.sap-action svg{width:14px;height:14px;flex-shrink:0}
.sap-action:hover{border-color:rgba(140,106,62,.4);color:#fff}
.sap-action:disabled{opacity:.5;cursor:not-allowed}

.sap-action--primary{background:rgba(140,106,62,.2);border-color:rgba(140,106,62,.4);color:var(--bronze)}
.sap-action--primary:hover{background:rgba(140,106,62,.3);color:#fff}

.sap-action--success{background:rgba(74,222,128,.1);border-color:rgba(74,222,128,.25);color:#4ade80}
.sap-action--success:hover{background:rgba(74,222,128,.18);color:#fff}

.sap-action--warning{background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.2);color:#fbbf24}
.sap-action--warning:hover{background:rgba(251,191,36,.15);color:#fff}

/* ── Modal overlay ── */
.sap-modal-overlay{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:20px}
.sap-modal{background:linear-gradient(180deg,rgba(46,49,54,.98),rgba(34,36,40,.98));border:1px solid rgba(140,106,62,.3);border-radius:16px;max-width:520px;width:100%;max-height:80vh;overflow-y:auto;position:relative}
.sap-modal::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:16px 16px 0 0;background:linear-gradient(90deg,rgba(140,106,62,.5),rgba(251,191,36,.7),rgba(140,106,62,.5))}
.sap-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(181,183,185,.08)}
.sap-modal-header h3{margin:0;font-size:18px;color:#fff;font-weight:700}
.sap-modal-close{width:32px;height:32px;border-radius:8px;border:1px solid rgba(181,183,185,.1);background:rgba(28,30,33,.5);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.sap-modal-close:hover{border-color:rgba(248,113,113,.3);color:#f87171}
.sap-modal-close svg{width:16px;height:16px}
.sap-modal-body-wrap{padding:20px 24px 24px}
.sap-modal-desc{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 18px}

/* ── Form fields ── */
.sap-form-grid{display:flex;flex-direction:column;gap:14px}
.sap-field{display:flex;flex-direction:column;gap:5px}
.sap-field label{font-size:12px;color:var(--ash);font-weight:600;letter-spacing:.02em}
.sap-input{padding:10px 14px;background:rgba(28,30,33,.6);border:1px solid rgba(181,183,185,.12);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;transition:border-color .2s;outline:none}
.sap-input:focus{border-color:rgba(140,106,62,.5)}
.sap-input::placeholder{color:rgba(181,183,185,.4)}
select.sap-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b5b7b9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
select.sap-input option{background:#2e3136;color:#fff}
.sap-textarea{min-height:72px;resize:vertical}

/* ── Modal action row ── */
.sap-modal-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}

/* ── Toast notification ── */
.sap-toast{position:fixed;bottom:24px;right:24px;z-index:9500;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;color:#fff;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;pointer-events:none;max-width:380px}
.sap-toast--visible{opacity:1;transform:translateY(0)}
.sap-toast--success{background:rgba(22,163,74,.9);border:1px solid rgba(74,222,128,.3)}
.sap-toast--warning{background:rgba(180,130,40,.9);border:1px solid rgba(251,191,36,.3)}
.sap-toast--info{background:rgba(59,130,246,.9);border:1px solid rgba(96,165,250,.3)}

/* ── Responsive ── */
@media(max-width:700px){
  .sap-header{flex-direction:column}
  .sap-stats{width:100%}
  .sap-stat{flex:1;min-width:0}
  .sap-card-details{grid-template-columns:1fr 1fr}
  .sap-pipeline{flex-wrap:wrap;gap:4px}
  .sap-pipeline-arrow{display:none}
  .sap-card-actions{flex-direction:column}
  .sap-card-actions .sap-action{justify-content:center}
}
@media(max-width:480px){
  .sap-card-details{grid-template-columns:1fr}
}
