:root {
  --ezpsc-primary:#1e40af;
  --ezpsc-bg:#f3f4f6;
  --ezpsc-text:#1e293b;
  --ezpsc-muted:#64748b;
  --ezpsc-border:#dbe3ef;
  --ezpsc-green:#15803d;
  --ezpsc-red:#b91c1c;
  --ezpsc-yellow:#b45309;
  --ezpsc-shadow:0 10px 24px rgba(15,23,42,.08);
}
.ezpsc-root, .ezpsc-root * { box-sizing:border-box; }
.ezpsc-root { font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ezpsc-text); }
.ezpsc-shell-loading, .ezpsc-empty { background:#fff; border:2px dashed var(--ezpsc-border); border-radius:14px; padding:34px; text-align:center; font-weight:800; color:var(--ezpsc-muted); }
.ezpsc-empty.error, .ezpsc-import-result.error { color:var(--ezpsc-red); border-color:#fecaca; background:#fef2f2; }
.ezpsc-login { min-height:540px; display:flex; align-items:center; justify-content:center; background:var(--ezpsc-primary); border-radius:18px; padding:40px; }
.ezpsc-login-card { width:360px; max-width:100%; background:#fff; border-radius:16px; padding:34px; box-shadow:0 20px 50px rgba(0,0,0,.2); text-align:center; }
.ezpsc-login-card h2 { margin:0; color:var(--ezpsc-primary); font-weight:950; letter-spacing:.5px; }
.ezpsc-login-card p { margin:4px 0 22px; color:#94a3b8; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:1px; }
.ezpsc-login-card input { width:100%; padding:15px; border:2px solid #e5e7eb; border-radius:10px; font-size:18px; text-align:center; font-weight:900; letter-spacing:2px; margin-bottom:14px; }
.ezpsc-login-card input:focus { outline:none; border-color:var(--ezpsc-primary); }
.ezpsc-login-error { min-height:20px; color:var(--ezpsc-red); font-weight:800; font-size:13px; margin-top:12px; }
.ezpsc-app { max-width:1120px; margin:0 auto; padding:10px 0 120px; }
.ezpsc-header { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:18px; padding:22px; background:#fff; border:1px solid #e5e7eb; border-radius:16px; box-shadow:var(--ezpsc-shadow); }
.ezpsc-header h1 { margin:0; color:var(--ezpsc-primary); font-size:28px; font-weight:950; }
.ezpsc-header p { margin:4px 0 0; color:var(--ezpsc-muted); font-weight:700; }
.ezpsc-userbox { display:flex; flex-direction:column; align-items:flex-end; gap:2px; font-size:13px; }
.ezpsc-userbox span { color:var(--ezpsc-muted); font-weight:700; }
.ezpsc-link { border:0; background:transparent; color:var(--ezpsc-primary); font-weight:900; cursor:pointer; padding:4px; }
.ezpsc-link.danger { color:var(--ezpsc-red); margin-top:8px; }
.ezpsc-tabs { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.ezpsc-tabs button { border:1px solid var(--ezpsc-border); background:#fff; color:#475569; font-weight:900; padding:11px 16px; border-radius:999px; cursor:pointer; }
.ezpsc-tabs button.active { background:var(--ezpsc-primary); color:#fff; border-color:var(--ezpsc-primary); }
.ezpsc-panel { background:#fff; border:1px solid #e5e7eb; border-radius:16px; box-shadow:var(--ezpsc-shadow); padding:22px; }
.ezpsc-panel h2 { margin:0 0 14px; color:#0f172a; font-weight:950; }
.ezpsc-help { color:var(--ezpsc-muted); font-weight:700; line-height:1.45; }
.ezpsc-controls { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:14px; align-items:end; margin-bottom:18px; }
.ezpsc-controls label, .ezpsc-review-card label, .ezpsc-dm-comments label { display:block; font-size:11px; font-weight:950; text-transform:uppercase; color:var(--ezpsc-muted); margin-bottom:6px; letter-spacing:.4px; }
.ezpsc-controls select, .ezpsc-review-card textarea, .ezpsc-dm-comments textarea, .ezpsc-status-controls select { width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:12px; font-weight:800; background:#fff; color:#111827; }
.ezpsc-review-card textarea, .ezpsc-dm-comments textarea { resize:none; min-height:86px; line-height:1.4; font-weight:650; overflow:hidden; white-space:pre-wrap; }
.ezpsc-comment-guidance {
  margin:-2px 0 10px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:10px;
  padding:9px 11px;
  font-size:12px;
  line-height:1.35;
  font-weight:800;
}

.ezpsc-review-card textarea:read-only { background:#f1f5f9; color:#475569; }
.ezpsc-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; border-radius:10px; padding:12px 18px; border:2px solid transparent; font-weight:950; cursor:pointer; text-decoration:none !important; line-height:1; min-height:43px; }
.ezpsc-btn.small { padding:8px 12px; min-height:auto; font-size:12px; }
.ezpsc-btn.primary { background:var(--ezpsc-primary); color:#fff; }
.ezpsc-btn.secondary { background:#fff; color:var(--ezpsc-primary); border-color:var(--ezpsc-primary); }
.ezpsc-btn.success { background:var(--ezpsc-green); color:#fff; }
.ezpsc-btn.danger { background:var(--ezpsc-red); color:#fff; }
.ezpsc-btn.ghost { background:#f8fafc; color:#334155; border-color:#cbd5e1; }
.ezpsc-btn:disabled { opacity:.6; cursor:not-allowed; }
.ezpsc-scorecard-top { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #e2e8f0; padding:12px 0 18px; margin-bottom:18px; }
.ezpsc-scorecard-top h2 { margin:0 0 7px; font-size:24px; }
.ezpsc-scorecard-top small { font-size:13px; color:var(--ezpsc-muted); font-weight:800; }
.ezpsc-live-score { width:94px; height:94px; border-radius:20px; background:#dbeafe; color:var(--ezpsc-primary); display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 2px #bfdbfe; }
.ezpsc-live-score span { font-size:42px; font-weight:1000; line-height:1; }
.ezpsc-live-score small { font-size:15px; font-weight:950; align-self:flex-start; margin-top:24px; }
.ezpsc-status { display:inline-flex; padding:5px 10px; border-radius:999px; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.4px; background:#e2e8f0; color:#334155; }
.ezpsc-status.DRAFT_MANAGER { background:#e0e7ff; color:#3730a3; }
.ezpsc-status.NOT_STARTED { background:#f1f5f9; color:#475569; border:1px dashed #94a3b8; }
.ezpsc-status.PENDING_DM_REVIEW { background:#fef3c7; color:#92400e; }
.ezpsc-status.CHANGES_REQUESTED { background:#fee2e2; color:#991b1b; }
.ezpsc-status.APPROVED_PENDING_EMPLOYEE { background:#dcfce7; color:#166534; }
.ezpsc-status.FINALIZED { background:#dbeafe; color:#1e40af; }
.ezpsc-alert { background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; border-radius:12px; padding:12px 14px; font-weight:850; margin-bottom:18px; }
.ezpsc-card { border-radius:14px; border:1px solid #e2e8f0; border-left:7px solid #cbd5e1; padding:20px; margin-bottom:18px; background:#fff; box-shadow:0 4px 10px rgba(15,23,42,.04); }
.ezpsc-card.cx { border-left-color:#2563eb; }
.ezpsc-card.ops { border-left-color:#16a34a; }
.ezpsc-card.pro { border-left-color:#f59e0b; }
.ezpsc-card.fin { border-left-color:#7c3aed; }
.ezpsc-card h3 { margin:0 0 6px; font-size:17px; text-transform:uppercase; font-weight:1000; color:#334155; }
.ezpsc-card h3 span { float:right; font-size:11px; background:#f1f5f9; color:#334155; padding:4px 8px; border-radius:999px; }
.ezpsc-kpi { border-top:1px solid #f1f5f9; padding:17px 0; }
.ezpsc-kpi.missing { background:#fef2f2; margin:0 -10px; padding-left:10px; padding-right:10px; border-radius:10px; }
.ezpsc-kpi-main { display:flex; justify-content:space-between; gap:18px; align-items:center; }
.ezpsc-kpi-info { max-width:57%; }
.ezpsc-kpi-info strong { display:block; font-size:14px; font-weight:950; color:#172033; margin-bottom:4px; }
.ezpsc-kpi-info small { display:block; color:var(--ezpsc-muted); font-size:12px; line-height:1.38; font-weight:650; }
.ezpsc-rate-buttons { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.ezpsc-rate { background:#fff; border:1px solid #e2e8f0; color:#64748b; padding:10px 12px; min-width:74px; border-radius:8px; font-weight:950; font-size:11px; cursor:pointer; }
.ezpsc-rate:not(:disabled):hover { transform:translateY(-1px); border-color:#94a3b8; }
.ezpsc-rate:disabled { opacity:.85; cursor:not-allowed; }
.ezpsc-rate.active.green { background:#dcfce7; color:#166534; border-color:#166534; }
.ezpsc-rate.active.yellow { background:#fef9c3; color:#854d0e; border-color:#854d0e; }
.ezpsc-rate.active.red { background:#fee2e2; color:#991b1b; border-color:#991b1b; }
.ezpsc-kpi-note { display:none; width:100%; margin-top:12px; min-height:52px; border:1px solid #cbd5e1; border-radius:9px; padding:10px; font-size:12px; font-weight:650; background:#f8fafc; resize:none; overflow:hidden; }
.ezpsc-kpi-note.show { display:block; }
.ezpsc-kpi-note.error { border-color:var(--ezpsc-red); background:#fef2f2; }
.ezpsc-signature-wrap { border:2px dashed #cbd5e1; border-radius:12px; min-height:136px; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ezpsc-signature-wrap canvas { width:100%; height:130px; background:#fff; touch-action:none; cursor:crosshair; }
.ezpsc-signature-wrap canvas.error { background:#fef2f2; }
.ezpsc-sig-img { width:100%; height:130px; object-fit:contain; background:#fff; }
.hidden { display:none !important; }
.ezpsc-actions { position:sticky; bottom:0; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-top:1px solid #e2e8f0; padding:16px 0 0; display:flex; flex-wrap:wrap; gap:10px; z-index:20; }
.ezpsc-dm-comments { flex-basis:100%; }

.ezpsc-autosave-status {
  flex-basis:100%;
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  background:#f1f5f9;
  color:#475569;
  border:1px solid #cbd5e1;
  padding:7px 11px;
  font-size:12px;
  font-weight:950;
}
.ezpsc-autosave-status.success { background:#dcfce7; color:#166534; border-color:#86efac; }
.ezpsc-autosave-status.warn { background:#fef3c7; color:#92400e; border-color:#fcd34d; }
.ezpsc-autosave-status.error { background:#fee2e2; color:#991b1b; border-color:#fecaca; }
.ezpsc-import-box, .ezpsc-status-controls { display:flex; gap:12px; align-items:center; margin:14px 0; flex-wrap:wrap; }
.ezpsc-import-box input { border:1px solid #cbd5e1; padding:12px; border-radius:10px; background:#fff; font-weight:800; }
.ezpsc-import-result { margin-top:16px; padding:14px; border-radius:12px; border:1px solid #bbf7d0; background:#f0fdf4; color:#166534; font-weight:800; }
.ezpsc-import-result pre { white-space:pre-wrap; background:#fff; color:#334155; padding:12px; border-radius:8px; max-height:260px; overflow:auto; }
.ezpsc-table-wrap { overflow:auto; border:1px solid #e2e8f0; border-radius:12px; }
.ezpsc-table { width:100%; border-collapse:collapse; min-width:760px; }
.ezpsc-table th, .ezpsc-table td { padding:11px 12px; border-bottom:1px solid #e2e8f0; text-align:left; font-size:13px; }
.ezpsc-table th { background:#f8fafc; color:#475569; font-size:11px; text-transform:uppercase; font-weight:1000; letter-spacing:.4px; }
#ezpsc-toasts { position:fixed; right:20px; bottom:20px; z-index:999999; display:flex; flex-direction:column; gap:10px; }
.ezpsc-toast { background:#172033; color:#fff; padding:14px 18px; border-radius:12px; box-shadow:0 15px 35px rgba(0,0,0,.18); font-weight:900; opacity:0; transform:translateY(12px); transition:.25s ease; max-width:360px; }
.ezpsc-toast.show { opacity:1; transform:translateY(0); }
.ezpsc-toast.success { background:var(--ezpsc-green); }
.ezpsc-toast.error { background:var(--ezpsc-red); }
.ezpsc-pdf-holder { position:absolute; left:-99999px; top:0; width:7.5in; background:#fff; color:#111; font-family:Arial, sans-serif; }
.ezpsc-pdf-render { width:7.5in; background:#fff; }
.pdf-section { width:7.5in; background:#fff; color:#111; box-sizing:border-box; font-family:Arial, sans-serif; }
.pdf-header { border-bottom:3px solid #1e40af; padding:0 0 10px; margin-bottom:12px; display:flex; justify-content:space-between; align-items:center; }
.pdf-header h2 { margin:0; font-size:22px; color:#1e40af; letter-spacing:.5px; }
.pdf-header p { margin:0; font-size:11px; color:#64748b; font-weight:bold; }
.pdf-score { text-align:right; }
.pdf-score strong { display:block; font-size:42px; color:#1e40af; line-height:1; }
.pdf-score span { font-size:9px; font-weight:bold; color:#64748b; letter-spacing:1px; }
.pdf-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; font-size:11px; }
.pdf-grid span { display:block; color:#1e40af; text-transform:uppercase; font-size:9px; font-weight:bold; margin-bottom:3px; }
.pdf-grid strong { display:block; border-bottom:1px solid #e2e8f0; padding-bottom:3px; min-height:18px; font-size:12px; }
.pdf-section-head { font-size:11px; font-weight:800; background:#f1f5f9; padding:7px 9px; margin:10px 0 6px; border-left:4px solid #1e40af; }
.pdf-kpi { display:grid; grid-template-columns:34% 45% 21%; border-bottom:1px solid #e2e8f0; }
.pdf-kpi > div { padding:7px 8px; font-size:10px; line-height:1.2; }
.pdf-kpi strong { display:block; font-size:11px; margin-bottom:2px; }
.pdf-kpi em { display:block; margin-top:3px; color:#334155; font-size:9px; font-style:italic; }
.pdf-kpi > div:last-child { text-align:right; font-size:11px; font-weight:bold; }
.pdf-comments { background:#f8fafc; padding:12px; border:1px solid #e2e8f0; border-radius:4px; font-size:11px; line-height:1.3; min-height:52px; white-space:pre-wrap; overflow-wrap:anywhere; }
.pdf-signatures { display:grid; grid-template-columns:1fr 1fr; gap:.55in; margin-top:20px; }
.pdf-signatures div { height:.82in; display:flex; flex-direction:column; justify-content:flex-end; }
.pdf-signatures img { max-height:.36in; max-width:2.6in; object-fit:contain; display:block; margin-left:6px; }
.pdf-signatures span { border-top:1px solid #000; padding-top:5px; font-weight:bold; font-size:9px; color:#000; }
@media (max-width: 780px) {
  .ezpsc-header { flex-direction:column; align-items:flex-start; }
  .ezpsc-userbox { align-items:flex-start; }
  .ezpsc-controls { grid-template-columns:1fr; }
  .ezpsc-scorecard-top { align-items:flex-start; }
  .ezpsc-kpi-main { flex-direction:column; align-items:stretch; }
  .ezpsc-kpi-info { max-width:100%; }
  .ezpsc-rate-buttons { justify-content:flex-start; }
  .ezpsc-actions { position:static; }
}

.ezpsc-kpi-titleline { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ezpsc-kpi-titleline strong { margin-bottom:0; }
.ezpsc-helper-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  border:2px solid #bfdbfe;
  background:#eff6ff;
  color:var(--ezpsc-primary);
  font-weight:1000;
  cursor:pointer;
  line-height:1;
  padding:0;
}
.ezpsc-helper-btn:hover,
.ezpsc-helper-btn[aria-expanded="true"] { background:var(--ezpsc-primary); color:#fff; border-color:var(--ezpsc-primary); }
.ezpsc-helper-panel {
  margin:12px 0 0;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:12px;
  padding:12px 14px;
  font-size:12px;
  line-height:1.45;
  font-weight:750;
}
.ezpsc-helper-panel strong { display:block; font-size:13px; margin-bottom:6px; color:#1e40af; }
.ezpsc-helper-panel ol { margin:0 0 10px 18px; padding:0; }
.ezpsc-helper-panel li { margin:0 0 5px; }
.ezpsc-helper-links { display:flex; gap:8px; flex-wrap:wrap; }
.ezpsc-helper-links a {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#fff;
  border:1px solid #93c5fd;
  color:#1e40af;
  text-decoration:none !important;
  padding:7px 10px;
  font-weight:950;
}
.ezpsc-helper-links a:hover { background:#dbeafe; }
