:root{
  --p:#1a56db;--p-dk:#1342b0;--p-lt:#eff4ff;--acc:#0e9f6e;
  --surf:#fff;--bg:#f9fafb;--bdr:#e5e7eb;
  --txt:#111827;--muted:#6b7280;
  --r:10px;--rs:6px;
  --sh:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
  --sh-md:0 4px 12px rgba(0,0,0,.09);
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
.swm-dash{font-family:var(--font);color:var(--txt);max-width:1100px;margin:0 auto;padding:0 16px 48px}

/* Header */
.swm-dash__header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:1.5rem}
.swm-dash__header h2{font-size:1.625rem;font-weight:700;margin:0 0 .15rem}
.swm-sub{color:var(--muted);margin:0;font-size:.875rem}

/* Mini stats */
.swm-mini-stats{display:flex;gap:10px}
.swm-mini-s{text-align:center;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rs);padding:8px 14px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.swm-mini-s span{display:block;font-size:1.5rem;font-weight:700;color:var(--txt);line-height:1.1}
.swm-ms--a span{color:var(--p)}.swm-ms--d span{color:var(--acc)}

/* Tabs */
.swm-tabs{display:flex;gap:4px;margin-bottom:1.25rem;border-bottom:2px solid var(--bdr);flex-wrap:wrap}
.swm-tab{display:inline-flex;align-items:center;gap:5px;padding:.6rem 1rem;font-size:.875rem;font-weight:600;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}
.swm-tab:hover{color:var(--txt)}.swm-tab--on{color:var(--p);border-bottom-color:var(--p)}
.swm-tab-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--bdr);border-radius:999px;font-size:.7rem}
.swm-tab--on .swm-tab-n{background:var(--p-lt);color:var(--p)}

/* Stats grid */
.swm-stats-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:1.5rem}
.swm-stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rs);padding:16px 20px;min-width:110px;text-align:center;box-shadow:var(--sh)}
.swm-stat-count{display:block;font-size:1.75rem;font-weight:700;color:var(--p);line-height:1}
.swm-stat-lbl,.swm-stat-label{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}
.swm-stat--completed .swm-stat-count{color:#065f46}.swm-stat--pending .swm-stat-count{color:#92400e}
.swm-stat--revenue .swm-stat-count{color:#6d28d9}.swm-stat--invoice .swm-stat-count{color:#1e40af}
.swm-stat--service .swm-stat-count{color:#0e9f6e}

/* Cards */
.swm-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);box-shadow:var(--sh);padding:1.5rem;margin-bottom:1.25rem}
.swm-card__title{font-size:1rem;font-weight:700;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:.5rem}
.swm-badge-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--p-lt);color:var(--p);border-radius:999px;font-size:.75rem;font-weight:700}

/* Notices */
.swm-notice{padding:.75rem 1rem;border-radius:var(--rs);margin-bottom:1rem;font-size:.875rem;font-weight:500;border-left:4px solid currentColor}
.swm-notice--success,.swm-ok{background:#d1fae5;color:#065f46;border-left-color:#065f46}
.swm-notice--error,.swm-err{background:#fee2e2;color:#991b1b;border-left-color:#991b1b}
.swm-warn{background:#fef3c7;color:#92400e;border-left-color:#92400e}
.swm-info{background:#dbeafe;color:#1e40af;border-left-color:#1e40af}

/* Cost box */
.swm-cost-box{background:var(--p-lt);border:1px solid #bfdbfe;border-radius:var(--rs);padding:.875rem 1rem;margin:6px 0}
.swm-cost-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.875rem}
.swm-cost-total{font-weight:700;font-size:1rem;border-top:1px solid #bfdbfe;margin-top:5px;padding-top:7px;color:var(--p)}

/* Forms */
.swm-form{display:flex;flex-direction:column;gap:.875rem}
.swm-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
@media(max-width:580px){.swm-grid-2{grid-template-columns:1fr}}
.swm-field{display:flex;flex-direction:column;gap:.3rem}
.swm-field label{font-weight:600;font-size:.875rem}
.swm-req{color:#dc2626}
.swm-input,.swm-input[type=text],.swm-input[type=tel],.swm-input[type=number],.swm-input[type=date],.swm-input[type=email],.swm-form select,.swm-form textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--bdr);border-radius:var(--rs);font-size:.9rem;color:var(--txt);background:var(--surf);transition:border-color .15s,box-shadow .15s;font-family:var(--font)}
.swm-input:focus,.swm-form select:focus,.swm-form textarea:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px rgba(26,86,219,.14)}
.swm-input--sm{padding:.4rem .6rem;font-size:.82rem}
.swm-form textarea{resize:vertical;min-height:72px}
.swm-actions{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}
.swm-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:1rem}
.swm-svc-form-wrap{background:var(--bg);border-radius:var(--rs);padding:1rem;margin-bottom:1rem;border:1px solid var(--bdr)}
.swm-svc-form-wrap h4{margin:0 0 .75rem;font-size:.95rem}

/* File drop */
.swm-file-drop{position:relative;border:2px dashed var(--bdr);border-radius:var(--rs);padding:1.25rem;text-align:center;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s}
.swm-file-drop:focus-within,.swm-file-drop--hover{border-color:var(--p);background:var(--p-lt)}
.swm-file-drop input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.swm-file-drop__inner span{font-size:1.5rem;display:block;margin-bottom:.35rem}
.swm-file-drop__inner p{margin:0;font-size:.875rem;color:var(--muted)}
.swm-file-drop--sm{padding:.625rem;border-style:solid}
.swm-file-drop--sm span{font-size:.875rem;color:var(--p);font-weight:600;pointer-events:none}
.swm-file-names{font-size:.8rem;margin-top:.4rem;color:var(--txt)}

/* Buttons */
.swm-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.575rem 1.1rem;border-radius:var(--rs);font-weight:600;font-size:.875rem;cursor:pointer;border:1px solid transparent;transition:background .15s,transform .1s;text-decoration:none;white-space:nowrap}
.swm-btn:active{transform:scale(.98)}
.swm-btn--primary{background:var(--p);color:#fff}.swm-btn--primary:hover{background:var(--p-dk)}
.swm-btn--primary:disabled{opacity:.65;cursor:not-allowed}
.swm-btn--ghost{background:transparent;border-color:var(--bdr);color:var(--muted)}.swm-btn--ghost:hover{background:var(--bg)}
.swm-btn--outline{background:transparent;border-color:var(--p);color:var(--p)}.swm-btn--outline:hover{background:var(--p-lt)}
.swm-btn--sm{padding:.325rem .7rem;font-size:.78rem}
.swm-spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:swm-spin .7s linear infinite;display:inline-block}
@keyframes swm-spin{to{transform:rotate(360deg)}}

/* Search */
.swm-search{width:100%;max-width:340px;padding:.5rem .75rem .5rem 2rem;border:1px solid var(--bdr);border-radius:var(--rs);font-size:.875rem;margin-bottom:.875rem;background:var(--surf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11z'/%3E%3C/svg%3E") no-repeat 8px center}
.swm-search:focus{outline:none;border-color:var(--p)}

/* Table */
.swm-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.swm-tbl{width:100%;border-collapse:collapse;font-size:.875rem}
.swm-tbl th{text-align:left;padding:.575rem .7rem;background:var(--bg);border-bottom:2px solid var(--bdr);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.swm-tbl td{padding:.7rem;border-bottom:1px solid var(--bdr);vertical-align:top}
.swm-tbl tbody tr:hover{background:var(--bg)}
.swm-tbl tr.swm-hidden{display:none}

/* Badges */
.swm-badge{display:inline-flex;align-items:center;padding:.175rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}
.swm-s--pending{background:#fef3c7;color:#92400e}.swm-s--assigned{background:#dbeafe;color:#1e40af}
.swm-s--in_progress{background:#e0e7ff;color:#3730a3}.swm-s--completed{background:#d1fae5;color:#065f46}
.swm-s--remarked{background:#fce7f3;color:#9d174d}
.swm-p--unpaid{background:#fee2e2;color:#991b1b}.swm-p--partial{background:#fef3c7;color:#92400e}.swm-p--paid{background:#d1fae5;color:#065f46}
.swm-i--draft{background:#f3f4f6;color:#374151}.swm-i--sent{background:#dbeafe;color:#1e40af}

/* Job cards */
.swm-job-card{transition:box-shadow .15s;margin-bottom:1rem}.swm-job-card:hover{box-shadow:var(--sh-md)}
.swm-job-card__hdr{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.875rem;padding-bottom:.7rem;border-bottom:1px solid var(--bdr)}
.swm-job-id-wrap{display:flex;align-items:center;gap:.5rem}.swm-job-id{font-weight:700;font-size:1rem}
.swm-job-svc{font-size:.78rem;color:var(--muted);font-weight:600;background:var(--bg);padding:.2rem .6rem;border-radius:999px}
.swm-job-card__body{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media(max-width:660px){.swm-job-card__body{grid-template-columns:1fr}}
.swm-dl{display:flex;gap:.5rem;margin-bottom:.45rem;font-size:.875rem}
.swm-dl span:first-child{font-weight:600;min-width:90px;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.swm-remark-row{background:#fef9c3;border-radius:4px;padding:5px 7px}
.swm-job-done{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem;text-align:center;color:var(--muted);background:var(--bg);border-radius:var(--rs)}
.swm-done-ck{font-size:2rem;color:var(--acc);margin-bottom:.4rem}.swm-done-rmk{font-size:.85rem;font-style:italic}

/* Docs */
.swm-doc-list{list-style:none;margin:0;padding:0}
.swm-doc-list li{margin-bottom:.25rem}
.swm-doc-list a{color:var(--p);text-decoration:none;font-size:.875rem}.swm-doc-list a:hover{text-decoration:underline}

/* Pagination */
.swm-pager{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--bdr)}
.swm-pg{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 .5rem;border-radius:var(--rs);border:1px solid var(--bdr);background:var(--surf);color:var(--txt);font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.swm-pg:hover{border-color:var(--p);color:var(--p);background:var(--p-lt)}
.swm-pg--on{background:var(--p);border-color:var(--p);color:#fff;pointer-events:none}
.swm-pg-info{font-size:.8rem;color:var(--muted);margin-left:.5rem}

/* Modal */
.swm-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.swm-modal__box{background:var(--surf);border-radius:var(--r);padding:1.75rem;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.swm-modal__box h3{margin:0 0 1rem;font-size:1.1rem;padding-bottom:.75rem;border-bottom:1px solid var(--bdr)}

/* Misc */
.swm-muted{color:var(--muted);font-size:.875rem}
.swm-empty{text-align:center;color:var(--muted);padding:2rem 0;font-size:.9rem}

/* Required Documents Box */
.swm-req-docs-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--rs);padding:1rem 1.25rem;margin:.75rem 0}
.swm-req-docs-title{margin:0 0 .6rem;font-size:.875rem;font-weight:700;color:#166534;display:flex;align-items:center;gap:.4rem}
.swm-req-docs-list{margin:0;padding-left:1.25rem;color:#15803d;font-size:.875rem}
.swm-req-docs-list li{margin-bottom:.25rem}

/* Worker origin badge */
.swm-badge[style*="f0fdf4"]{font-size:.7rem!important;padding:.2rem .5rem!important}

/* Per-Document Upload UI */
.swm-doc-upload-header{display:flex;align-items:center;gap:.5rem;font-size:.9rem;padding:.75rem 1rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--rs);margin-bottom:.75rem}
.swm-doc-upload-header strong{color:#166534}
.swm-per-doc-row{padding:.75rem 1rem;border:1px solid var(--bdr);border-radius:var(--rs);margin-bottom:.5rem;background:var(--surf)}
.swm-per-doc-label{font-weight:600;font-size:.875rem;color:var(--txt);margin-bottom:.5rem}
.swm-per-doc-upload{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.4rem}
.swm-file-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;background:var(--p-lt);color:var(--p);border:1px solid var(--p);border-radius:var(--rs);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.swm-file-btn:hover{background:var(--p);color:#fff}
.swm-per-doc-filename{font-size:.8rem;color:var(--muted)}
.swm-per-doc-filename.swm-file-chosen{color:var(--txt);font-weight:500}

/* Mapped doc list (worker view) */
.swm-doc-list--mapped{list-style:none;margin:0;padding:0}
.swm-doc-item{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}
.swm-doc-label{font-size:.8rem;font-weight:600;color:var(--txt);min-width:130px}
.swm-btn--xs{padding:.2rem .55rem;font-size:.75rem;border-radius:4px}
.swm-dl--docs{align-items:flex-start!important}
.swm-docs-col{flex:1}

/* Service doc builder (admin) */
.swm-svc-doc-row .swm-input{font-size:.875rem}

/* Worker Walk-in Cost & Payment UI */
.swm-wc-cost-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--rs);padding:.75rem 1rem;margin:.5rem 0}
.swm-wc-cost-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}
.swm-wc-cost-row span{font-weight:600;color:#1e40af}
.swm-wc-cost-row strong{font-size:1.1rem;color:#1a56db;font-weight:700}
.swm-wc-section-title{font-weight:700;font-size:.875rem;color:#374151;padding:.6rem 0 .4rem;border-top:1px solid var(--bdr);margin-top:.5rem}
.swm-wc-pay-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--rs);padding:.6rem 1rem;margin:.5rem 0}
.swm-wc-pay-row{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.2rem}
.swm-wc-pay-row:last-child{margin-bottom:0}




/* Acknowledgement display block */
.swm-ack-display{margin-bottom:.4rem}
.swm-ack-uploaded{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.5rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--rs);font-size:.825rem}
.swm-ack-ok{color:#166534;font-weight:700;white-space:nowrap}
.swm-ack-fname{color:#1e40af;text-decoration:none;font-weight:500;word-break:break-all}.swm-ack-fname:hover{text-decoration:underline}
.swm-ack-none{font-size:.8rem;color:var(--muted);padding:.3rem 0}

/* ═══════════════════════════════════════════════════════════════════
 * WORKER JOB CARD — RESTRUCTURED LAYOUT
 * ═══════════════════════════════════════════════════════════════════ */

/* Card body: left info + right update form */
.swm-job-card__body{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
@media(max-width:700px){.swm-job-card__body{grid-template-columns:1fr}}

/* Left: info groups */
.swm-job-info{display:flex;flex-direction:column;gap:1rem}
.swm-info-group{background:var(--bg);border-radius:var(--rs);padding:.75rem 1rem}
.swm-dl{display:flex;gap:.5rem;margin-bottom:.4rem;font-size:.875rem;align-items:flex-start}
.swm-dl span:first-child{font-weight:600;min-width:90px;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding-top:.1rem}
.swm-dl-heading{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.6rem}
.swm-remark-row{background:#fef9c3;border-radius:4px;padding:5px 7px}

/* Right: update form */
.swm-job-update{display:flex;flex-direction:column;gap:.875rem}
.swm-upd-top-row{display:flex;flex-direction:column;gap:.75rem}
.swm-label{font-size:.8rem;font-weight:600;color:#374151;display:block;margin-bottom:.3rem}

/* Payment + Ack card */
.swm-upd-pay-ack-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--r);overflow:hidden}
.swm-upd-section{padding:1rem 1.125rem}
.swm-upd-section+.swm-upd-section{border-top:1px solid #e2e8f0}
.swm-upd-section-hdr{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-bottom:.75rem}
.swm-upd-pay-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}
@media(max-width:480px){.swm-upd-pay-inputs{grid-template-columns:1fr}}
.swm-upd-pay-field .swm-input{margin-top:.25rem}
.swm-upd-pay-total-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.6rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:var(--rs);font-size:.875rem}
.swm-upd-pay-total-lbl{font-weight:600;color:#374151}
.swm-upd-total-paid{font-size:1rem;font-weight:700;color:#065f46}
.swm-upd-pay-badge{font-size:.72rem}

/* Acknowledgement section */
.swm-upd-ack-section{}
.swm-ack-display{margin-bottom:.625rem}
.swm-ack-uploaded{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.5rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--rs);font-size:.825rem}
.swm-ack-ok{color:#166534;font-weight:700;white-space:nowrap}
.swm-ack-fname{color:#1e40af;text-decoration:none;font-weight:500;word-break:break-all;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swm-ack-fname:hover{text-decoration:underline}
.swm-ack-none{font-size:.8rem;color:var(--muted);padding:.25rem 0}
.swm-ack-upload-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.5rem}
.swm-ack-filename{font-size:.8rem;color:var(--muted)}
.swm-ack-filename.swm-file-chosen{color:var(--txt);font-weight:500}
.swm-upd-hint{font-size:.72rem;color:var(--muted);margin-top:.35rem}

/* Save button row */
.swm-upd-footer{display:flex;justify-content:flex-end;padding-top:.25rem;border-top:1px solid var(--bdr)}

/* Closed job card */
.swm-job-done{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;color:var(--muted);background:var(--bg);border-radius:var(--rs);gap:.5rem}
.swm-done-ck{font-size:2.2rem;color:var(--acc)}
.swm-done-pay{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}
.swm-done-rmk{font-size:.85rem;font-style:italic;color:var(--muted)}

/* ── Admin work table: inline payment edit ──────────────────────── */
.swm-pay-edit-wrap{min-width:110px}
.swm-pay-display{display:flex;align-items:center;gap:4px;white-space:nowrap}
.swm-pay-total-disp{font-weight:600;font-size:12px}
.swm-pay-edit-btn{cursor:pointer;padding:1px 5px!important;font-size:11px!important;line-height:1.6!important;min-height:0!important;background:#f3f4f6!important;border-color:#d1d5db!important;color:#374151!important}
.swm-pay-edit-btn:hover{background:#e5e7eb!important;color:#111!important}
.swm-pay-edit-form{background:#fafafa;border:1px solid #e5e7eb;border-radius:4px;padding:8px;margin-top:4px}
.swm-pay-edit-form input[type=number]{border:1px solid #d1d5db;border-radius:3px;padding:3px 6px;font-size:11px;width:72px}
.swm-pay-edit-form input[type=number]:focus{border-color:#1a56db;outline:none}
.swm-pay-edit-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:6px}
.swm-pay-edit-labels{display:flex;gap:28px;font-size:10px;color:#6b7280;margin-bottom:3px;padding-left:2px}
.swm-pay-edit-msg{font-size:11px;margin-top:4px}

/* ═══════════════════════════════════════════════════════════════════
 * UI CLEANUP — BUTTONS, SPACING, ALIGNMENT
 * ═══════════════════════════════════════════════════════════════════ */

/* Button colour system — #1a56db primary */
.swm-btn--primary{background:#1a56db;border-color:#1a56db;color:#fff}
.swm-btn--primary:hover{background:#1648c0;border-color:#1648c0;color:#fff}
.swm-btn--outline{background:transparent;border:1px solid #1a56db;color:#1a56db}
.swm-btn--outline:hover{background:#eff6ff;color:#1648c0;border-color:#1648c0}
.swm-btn--ghost{background:transparent;border:1px solid #d1d5db;color:#6b7280}
.swm-btn--ghost:hover{background:#f9fafb;color:#374151;border-color:#9ca3af}
.swm-btn--danger{background:#dc2626;border-color:#dc2626;color:#fff}
.swm-btn--danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.swm-btn--success{background:#16a34a;border-color:#16a34a;color:#fff}
.swm-btn--success:hover{background:#15803d;border-color:#15803d;color:#fff}

/* Readonly service price field */
input[readonly].swm-input{background:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}
input[readonly].swm-input:focus{outline:none;border-color:#e5e7eb;box-shadow:none}

/* Worker create form: payment error */
#swm-wc-pay-err{margin-top:8px}

/* Admin dashboard tabs: better spacing */
.swm-admin-dash .swm-tabs{margin-bottom:1.25rem}
.swm-admin-dash .swm-filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:1rem}

/* Work entries: tighter admin table */
.swm-admin-dash .swm-tbl th{padding:8px 10px;font-size:.72rem;white-space:nowrap}
.swm-admin-dash .swm-tbl td{padding:7px 10px;font-size:.82rem;vertical-align:middle}

/* Status badges — consistent sizing */
.swm-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.swm-s--pending{background:#fef9c3;color:#92400e}
.swm-s--assigned{background:#dbeafe;color:#1e40af}
.swm-s--in_progress{background:#ede9fe;color:#6d28d9}
.swm-s--completed{background:#d1fae5;color:#065f46}
.swm-s--remarked{background:#f3f4f6;color:#374151}
.swm-p--unpaid{background:#fee2e2;color:#991b1b}
.swm-p--partial{background:#fef3c7;color:#92400e}
.swm-p--paid{background:#d1fae5;color:#065f46}

/* Vendor dashboard: clean table */
.swm-vendor-dash .swm-tbl th,.swm-vendor-dash .swm-tbl td{padding:8px 10px}
.swm-vendor-dash .swm-tbl th{font-size:.72rem;white-space:nowrap}

/* Worker job card: spacing cleanup */
.swm-job-card{margin-bottom:1rem}
.swm-job-card__hdr{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.875rem 1.125rem;border-bottom:1px solid var(--bdr)}

/* Upd-pay-total-row: fix colour inheritance */
.swm-upd-pay-total-row strong.swm-upd-total-paid{color:#065f46}

/* Dashboard header */
.swm-dash__header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}

/* Cost box */
.swm-wc-cost-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--rs);padding:.75rem 1rem;margin:.5rem 0}
.swm-wc-cost-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;font-weight:600;color:#1e40af}
.swm-wc-cost-row strong{font-size:1.05rem;color:#1d4ed8}

/* ── Header actions row ──────────────────────────────────────────── */
.swm-hdr-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}

/* ── Notification bell ───────────────────────────────────────────── */
.swm-notif-wrap{position:relative;display:inline-block}
.swm-notif-btn{position:relative;background:none;border:1px solid #e5e7eb;border-radius:8px;padding:.4rem .65rem;font-size:1.15rem;cursor:pointer;line-height:1;color:#374151;transition:background .15s}
.swm-notif-btn:hover{background:#f3f4f6}
.swm-notif-badge{position:absolute;top:-5px;right:-5px;background:#dc2626;color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none;border:2px solid #fff;box-shadow:0 0 0 1px #dc2626}
.swm-notif-badge--red{animation:swm-pulse 2s ease-in-out infinite}
@keyframes swm-pulse{0%,100%{box-shadow:0 0 0 1px #dc2626}50%{box-shadow:0 0 0 4px rgba(220,38,38,.25)}}
.swm-notif-dropdown{position:absolute;right:0;top:calc(100% + 6px);width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:9999}
.swm-notif-hdr{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #f3f4f6;font-size:.85rem}
.swm-notif-mark-read{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.8rem;padding:0}
.swm-notif-mark-read:hover{text-decoration:underline}
.swm-notif-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto}
.swm-notif-item{padding:.65rem 1rem;border-bottom:1px solid #f9fafb;font-size:.82rem}
.swm-notif-item:last-child{border-bottom:none}
.swm-notif-unread{background:#eff6ff}
.swm-notif-msg{display:block;color:#111;font-weight:500;margin-bottom:3px}
.swm-notif-time{display:block;color:#9ca3af;font-size:.75rem}
.swm-notif-empty{padding:1.25rem 1rem;text-align:center;color:#6b7280;font-size:.85rem}

/* ── Inquiry cell + row ──────────────────────────────────────────── */
.swm-td-inquiry{max-width:160px;font-size:.8rem;color:#374151}
.swm-inq-row{background:#fefce8;border-radius:4px;padding:4px 6px}
.swm-inq-row span:first-child{color:#854d0e!important}

/* ── Admin table compact ─────────────────────────────────────────── */
.swm-work-table td,.swm-work-table th{padding:5px 8px!important;font-size:12px!important}
.swm-work-table .button-small{padding:2px 6px!important;font-size:10px!important;line-height:1.6!important}
/* ── Post-submission inquiry UI ──────────────────────────────────── */
.swm-inq-text{font-size:.8rem;color:#374151;line-height:1.4;margin-bottom:4px}
.swm-inq-form{margin-top:6px}
.swm-inq-textarea{width:100%;font-size:.8rem;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;resize:vertical;min-height:60px;box-sizing:border-box}
.swm-inq-textarea:focus{outline:none;border-color:#1a56db}
.swm-inq-highlight{background:#fef3c7;border-left:3px solid #f59e0b;border-radius:0 4px 4px 0;padding-left:8px!important}
.swm-inq-highlight span:first-child{color:#92400e!important;font-weight:700!important}
.swm-inq-body{font-style:italic;color:#374151}

/* ── Email field in vendor form ──────────────────────────────────── */
.swm-form input[type="email"].swm-input{width:100%}


/* ═══════════════════════════════════════════════════════════════════
 * VENDOR DASHBOARD — Clean UI v2
 * ═══════════════════════════════════════════════════════════════════ */

/* Header layout */
.swm-vendor-dash .swm-dash__header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    padding-bottom:1rem;
    border-bottom:1px solid #f3f4f6;
    margin-bottom:1.25rem;
}
.swm-vendor-dash .swm-dash__header h2{margin:0;font-size:1.5rem;font-weight:700;color:#111}
.swm-vendor-dash .swm-sub{margin:2px 0 0;font-size:.85rem;color:#6b7280}

/* Header actions row */
.swm-hdr-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* WhatsApp icon button */
.swm-icon-btn{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:8px 12px;
    border:1px solid #d1d5db;
    border-radius:8px;
    background:#fff;
    color:#374151;
    font-size:.8rem;
    font-weight:600;
    cursor:pointer;
    text-decoration:none;
    transition:all .15s;
    line-height:1;
}
.swm-icon-btn:hover{background:#f0fdf4;border-color:#16a34a;color:#15803d}
.swm-wa-btn{color:#16a34a;border-color:#bbf7d0;background:#f0fdf4}
.swm-wa-btn:hover{background:#dcfce7;border-color:#16a34a}
.swm-icon-btn-label{font-size:.78rem;font-weight:600}

/* Notification bell button */
.swm-notif-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border:1px solid #e5e7eb;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
    color:#374151;
    transition:all .15s;
    padding:0;
}
.swm-notif-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#111}
.swm-notif-badge{
    position:absolute;
    top:-6px;right:-6px;
    background:#dc2626;
    color:#fff;
    font-size:.6rem;font-weight:700;
    border-radius:999px;
    min-width:16px;height:16px;
    display:flex;align-items:center;justify-content:center;
    padding:0 3px;
    border:2px solid #fff;
    pointer-events:none;
    line-height:1;
}
.swm-notif-badge--red{animation:swm-notif-pulse 2s ease-in-out infinite}
@keyframes swm-notif-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.4)}
    50%{box-shadow:0 0 0 5px rgba(220,38,38,0)}
}

/* Submit button */
.swm-submit-btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:9px 18px;
    font-size:.875rem;
    font-weight:600;
    border-radius:8px;
    cursor:pointer;
    border:none;
    background:#1a56db;
    color:#fff;
    transition:background .15s;
    text-decoration:none;
    line-height:1.4;
}
.swm-submit-btn:hover{background:#1648c0;color:#fff}

/* Notification dropdown */
.swm-notif-wrap{position:relative}
.swm-notif-dropdown{
    position:absolute;
    right:0;top:calc(100% + 8px);
    width:300px;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.12);
    z-index:9999;
    overflow:hidden;
}
.swm-notif-hdr{
    display:flex;justify-content:space-between;align-items:center;
    padding:.65rem 1rem;
    background:#f9fafb;
    border-bottom:1px solid #f3f4f6;
    font-size:.8rem;
}
.swm-notif-hdr strong{color:#111;font-size:.85rem}
.swm-notif-mark-read{
    background:none;border:none;
    color:#1a56db;cursor:pointer;font-size:.75rem;font-weight:600;padding:0;
}
.swm-notif-mark-read:hover{text-decoration:underline}
.swm-notif-list{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto}
.swm-notif-item{padding:.6rem 1rem;border-bottom:1px solid #f9fafb;cursor:default}
.swm-notif-item:last-child{border-bottom:none}
.swm-notif-unread{background:#eff6ff}
.swm-notif-msg{display:block;font-size:.8rem;color:#111;font-weight:500;line-height:1.4;margin-bottom:2px}
.swm-notif-time{display:block;font-size:.72rem;color:#9ca3af}
.swm-notif-empty{padding:1.25rem;text-align:center;color:#9ca3af;font-size:.82rem}

/* Search bar v2 */
.swm-search-wrap{
    position:relative;
    display:flex;
    align-items:center;
    flex:1;
    max-width:380px;
}
.swm-search-icon{
    position:absolute;
    left:12px;
    top:50%;
    transform:translateY(-50%);
    color:#9ca3af;
    pointer-events:none;
    flex-shrink:0;
    display:flex;
    align-items:center;
}
.swm-search-v2{
    width:100%;
    padding:.55rem .875rem .55rem 2.25rem;
    border:1px solid #e5e7eb;
    border-radius:8px;
    font-size:.875rem;
    background:#fff;
    color:#111;
    transition:border-color .15s,box-shadow .15s;
    outline:none;
    max-width:none;
    background-image:none;
    line-height:1.5;
    height:40px;
    box-sizing:border-box;
}
.swm-search-v2:focus{border-color:#1a56db;box-shadow:0 0 0 3px rgba(26,86,219,.12)}
.swm-search-v2:hover:not(:focus){border-color:#d1d5db}
.swm-search-v2::placeholder{color:#9ca3af;font-size:.875rem}

/* Vendor table improvements */
.swm-vendor-dash .swm-tbl{font-size:.82rem}
.swm-vendor-dash .swm-tbl th{white-space:nowrap;padding:8px 10px}
.swm-vendor-dash .swm-tbl td{padding:9px 10px;vertical-align:middle}

/* Inquiry cell */
.swm-td-inquiry{min-width:140px;max-width:200px}
.swm-inq-text{font-size:.8rem;color:#374151;line-height:1.4;margin-bottom:5px}

/* Inquiry form inside table cell */
.swm-inq-form{margin-top:8px}
.swm-inq-textarea{
    width:100%;
    min-height:64px;
    padding:6px 8px;
    font-size:.8rem;
    border:1px solid #d1d5db;
    border-radius:6px;
    resize:vertical;
    box-sizing:border-box;
    font-family:inherit;
    line-height:1.4;
    transition:border-color .15s;
}
.swm-inq-textarea:focus{outline:none;border-color:#1a56db;box-shadow:0 0 0 2px rgba(26,86,219,.1)}
.swm-inq-form-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}

/* Worker inquiry highlight */
.swm-inq-highlight{
    background:#fef9c3;
    border-left:3px solid #f59e0b;
    border-radius:0 5px 5px 0;
    padding:6px 8px!important;
}
.swm-inq-highlight .swm-inq-body{font-style:italic;color:#374151}

/* Assignment timestamp badge in job card header */
.swm-badge--assigned-time{background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd;font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:999px}

/* ── Notification bell dropdown - ensure visibility ─────────────── */
.swm-hdr-actions{overflow:visible!important}
.swm-dash__header{overflow:visible!important}
.swm-notif-wrap{overflow:visible!important;position:relative}
.swm-notif-dropdown{
    display:none;
    position:absolute!important;
    right:0!important;
    top:calc(100% + 8px)!important;
    z-index:99999!important;
    min-width:300px;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:10px;
    box-shadow:0 10px 40px rgba(0,0,0,.18);
    overflow:hidden;
}

/* ── Admin Documents card (replaces inline onmouseover/onmouseout) ─── */
/* This class was added to fix the JS SyntaxError caused by unescaped  */
/* single quotes inside inline event handler attributes.               */
.swm-doc-card {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #fafafa;
    transition: box-shadow .15s, border-color .15s;
}
.swm-doc-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
    border-color: #d1d5db;
}
