/* BEX Pallet Stamper Admin Styles */
:root {
  --bexs-primary:  #1a3a6b;
  --bexs-success:  #2d8a4e;
  --bexs-danger:   #b91c1c;
  --bexs-warning:  #d97706;
  --bexs-muted:    #6b7280;
  --bexs-border:   #e5e7eb;
  --bexs-bg:       #f9fafb;
  --bexs-radius:   8px;
}

.bexs-wrap { max-width:1300px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }

/* Header */
.bexs-header { display:flex;align-items:center;justify-content:space-between;padding:20px 0 16px;margin-bottom:20px;border-bottom:2px solid var(--bexs-primary); }
.bexs-logo   { display:flex;align-items:center;gap:12px; }
.bexs-logo .dashicons { font-size:32px;width:32px;height:32px;color:var(--bexs-primary); }
.bexs-logo h1 { margin:0;font-size:22px;color:var(--bexs-primary);line-height:1.2; }
.bexs-logo p  { margin:0;font-size:13px;color:var(--bexs-muted); }
.bexs-nav { display:flex;gap:6px; }
.bexs-nav-btn { padding:7px 16px;border-radius:var(--bexs-radius);text-decoration:none;font-size:13px;font-weight:500;color:var(--bexs-primary);border:1.5px solid var(--bexs-border);background:#fff;transition:all .15s; }
.bexs-nav-btn:hover,.bexs-nav-btn.active { background:var(--bexs-primary);color:#fff;border-color:var(--bexs-primary); }

/* Grid */
.bexs-grid { display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start; }
.bexs-sidebar { display:flex;flex-direction:column;gap:16px; }

/* Cards */
.bexs-card { background:#fff;border:1px solid var(--bexs-border);border-radius:var(--bexs-radius);box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden; }
.bexs-card-full { grid-column:1/-1; }
.bexs-card-header { display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--bexs-primary);color:#fff; }
.bexs-card-header h2,.bexs-card-header h3 { margin:0;font-size:15px;color:#fff;font-weight:600;flex:1; }
.bexs-card-header .dashicons { color:rgba(255,255,255,.8);font-size:18px;width:18px;height:18px; }
.bexs-card-header .bexs-count { font-size:12px;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:12px; }
.bexs-card-body { padding:20px; }

/* Drop zones */
.bexs-drop-zone { border:2px dashed var(--bexs-border);border-radius:var(--bexs-radius);padding:24px;text-align:center;cursor:pointer;background:var(--bexs-bg);transition:all .2s; }
.bexs-drop-zone:hover,.bexs-drop-zone.drag-over { border-color:var(--bexs-primary);background:#eff6ff; }
.bexs-drop-zone .dashicons { font-size:32px;width:32px;height:32px;color:var(--bexs-muted); }
.bexs-drop-zone p { margin:8px 0 0;color:var(--bexs-muted);font-size:13px; }
.bexs-drop-zone input[type=file] { display:none; }
.bexs-file-info { margin-top:10px;padding:8px 12px;background:#d1fae5;border-radius:6px;font-size:13px;color:var(--bexs-success); }

/* Fields */
.bexs-field { display:flex;flex-direction:column;gap:4px; }
.bexs-field label { font-size:13px;font-weight:600;color:#374151; }
.bexs-field input[type=text] { padding:8px 12px;border:1.5px solid var(--bexs-border);border-radius:6px;font-size:14px;outline:none;transition:border-color .15s; }
.bexs-field input[type=text]:focus { border-color:var(--bexs-primary); }
.bexs-field small { font-size:11px;color:var(--bexs-muted); }
.bexs-req { color:var(--bexs-danger); }
.bexs-link { color:var(--bexs-primary);text-decoration:underline;cursor:pointer; }

/* Buttons */
.bexs-btn { display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;border:none;transition:all .15s; }
.bexs-btn-primary  { background:var(--bexs-primary);color:#fff; }
.bexs-btn-primary:hover  { background:#122d57;color:#fff; }
.bexs-btn-success  { background:var(--bexs-success);color:#fff; }
.bexs-btn-success:hover  { background:#1d6b3c;color:#fff; }
.bexs-btn-secondary { background:var(--bexs-bg);color:#374151;border:1.5px solid var(--bexs-border); }
.bexs-btn-secondary:hover { background:var(--bexs-border); }
.bexs-btn-danger   { background:var(--bexs-danger);color:#fff; }
.bexs-btn-danger:hover   { background:#991b1b;color:#fff; }
.bexs-btn-sm { padding:5px 10px;font-size:12px; }
.bexs-btn:disabled { opacity:.5;cursor:not-allowed; }
.bexs-btn .dashicons { font-size:14px;width:14px;height:14px; }
.bexs-actions { display:flex;gap:10px;margin-top:20px; }

/* Progress */
.bexs-progress-bar { background:var(--bexs-border);border-radius:4px;height:8px;overflow:hidden; }
.bexs-progress-fill { height:100%;background:linear-gradient(90deg,var(--bexs-primary),#3b82f6);animation:bexs-prog 2s ease-in-out infinite; }
@keyframes bexs-prog { 0%{width:10%} 50%{width:80%} 100%{width:95%} }
.bexs-progress-msg { margin:8px 0 0;font-size:13px;color:var(--bexs-muted); }

/* Alerts */
.bexs-alert { display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--bexs-radius);border:1px solid; }
.bexs-alert-success { background:#f0fdf4;border-color:#bbf7d0;color:#166534; }
.bexs-alert-success .dashicons { color:var(--bexs-success); }
.bexs-alert-error   { background:#fef2f2;border-color:#fecaca;color:#991b1b; }
.bexs-alert-error .dashicons { color:var(--bexs-danger); }
.bexs-alert strong { display:block;font-size:14px;margin-bottom:4px; }
.bexs-alert .dashicons { flex-shrink:0;font-size:20px;width:20px;height:20px;margin-top:2px; }

/* Badges */
.bexs-badge { display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase; }
.bexs-badge-complete   { background:#d1fae5;color:#065f46; }
.bexs-badge-processing { background:#dbeafe;color:#1e40af; }
.bexs-badge-error      { background:#fee2e2;color:var(--bexs-danger); }
.bexs-badge-pending    { background:#f3f4f6;color:var(--bexs-muted); }

/* Table */
.bexs-table { width:100%;border-collapse:collapse;font-size:13px; }
.bexs-table th { text-align:left;padding:10px 12px;background:var(--bexs-bg);border-bottom:2px solid var(--bexs-border);font-size:12px;font-weight:700;color:var(--bexs-muted);text-transform:uppercase;letter-spacing:.04em; }
.bexs-table td { padding:10px 12px;border-bottom:1px solid var(--bexs-border);vertical-align:middle; }
.bexs-table tr:hover td { background:var(--bexs-bg); }
.bexs-table tr:last-child td { border-bottom:none; }

/* Recent jobs sidebar */
.bexs-recent-job { padding:10px 0;border-bottom:1px solid var(--bexs-border); }
.bexs-recent-job:last-child { border-bottom:none; }
.bexs-job-name { font-size:13px;font-weight:700;color:#1f2937; }
.bexs-job-meta { font-size:11px;color:var(--bexs-muted);margin-top:2px;display:flex;gap:8px;align-items:center; }
.bexs-mini-dl  { font-size:11px;color:var(--bexs-success);text-decoration:none;display:flex;align-items:center;gap:2px;margin-top:4px; }
.bexs-mini-dl .dashicons { font-size:12px;width:12px;height:12px; }
