            #pg-notifications { padding: 0 !important; }
            .nwq { --nwq-navy:var(--brand-navy); --nwq-gold:var(--brand-gold); --nwq-gold-deep:#a07d3a;
                   --nwq-urgent:#dc2626; --nwq-overdue:#d97706; --nwq-upcoming:#2563eb;
                   --nwq-future:#64748b; --nwq-dormant:#94a3b8; --nwq-expiring:#b45309;
                   --nwq-promise:#7c3aed; --nwq-ok:#059669;
                   --nwq-line:#e6eaf2; --nwq-gline:rgba(200,169,106,.22);
                   --nwq-glass:rgba(255,255,255,.58); --nwq-glass-2:rgba(255,255,255,.42);
                   --nwq-blur:saturate(165%) blur(26px);
                   --nwq-bg:#f4f6fa; --nwq-ink:#1e293b; --nwq-mute:#64748b;
                   display:flex; flex-direction:column; height:calc(100vh - var(--tb-header-h, 100px)); min-height:560px;
                   font-family:inherit; }

            /* ── Topbar — letterhead น้ำเงินขอบทอง ── */
            .nwq-topbar { position:relative; display:flex; align-items:center; gap:18px; flex-wrap:wrap;
              padding:15px 22px;
              background:
                radial-gradient(ellipse 55% 130% at 86% -20%, rgba(200,169,106,.20), transparent 62%),
                linear-gradient(162deg,#17396c 0%,var(--brand-navy) 56%,#0a1f3f 100%);
              color:#fff; border-radius:16px 16px 0 0; border-top:3px solid var(--nwq-gold);
              box-shadow:inset 0 -1px 0 rgba(200,169,106,.28); }
            .nwq-brand { display:flex; align-items:center; gap:13px; }
            .nwq-brand-ic { width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
              background:linear-gradient(135deg,rgba(200,169,106,.32),rgba(160,125,58,.16));
              border:1px solid rgba(200,169,106,.45); color:var(--nwq-gold); font-size:18px;
              box-shadow:0 2px 8px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.25); }
            .nwq-brand-tt { font-size:17px; font-weight:800; letter-spacing:.2px; line-height:1.15; }
            .nwq-brand-sub { font-size:11.5px; color:#b8c6dd; margin-top:1px; }
            .nwq-kpis { display:flex; gap:6px; flex:1; flex-wrap:wrap; }
            .nwq-kpi { display:flex; flex-direction:column; align-items:flex-start; gap:1px;
              padding:6px 12px; border-radius:11px; cursor:pointer;
              appearance:none; -webkit-appearance:none; margin:0; text-align:left; font:inherit;
              border:1px solid rgba(200,169,106,.16);
              background:rgba(255,255,255,.06); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
              transition:background .18s var(--ease-smooth,ease), border-color .18s, transform .18s, box-shadow .18s;
              min-width:64px; }
            .nwq-kpi:hover { background:rgba(255,255,255,.13); border-color:rgba(200,169,106,.4); transform:translateY(-1px); }
            .nwq-kpi.on { background:#fff; border-color:var(--nwq-gold);
              box-shadow:0 4px 14px rgba(0,0,0,.22), 0 0 0 1px rgba(200,169,106,.5); }
            .nwq-kpi.on .nwq-kpi-n, .nwq-kpi.on .nwq-kpi-l { color:var(--nwq-navy) !important; }
            .nwq-kpi-n { font-size:17px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
            .nwq-kpi-l { font-size:11px; font-weight:600; color:#cdd9ec; letter-spacing:.2px; white-space:nowrap; }
            .nwq-kpi.k-urgent  .nwq-kpi-n { color:#fca5a5; }
            .nwq-kpi.k-overdue .nwq-kpi-n { color:#fcd9a5; }
            .nwq-kpi.k-promise .nwq-kpi-n { color:#d8c7f5; }
            .nwq-kpi.k-upcoming .nwq-kpi-n { color:#a5c8fc; }
            .nwq-kpi.k-amount  .nwq-kpi-n { color:var(--nwq-gold); font-size:16px; }
            .nwq-tools { display:flex; align-items:center; gap:8px; }
            .nwq-search { display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.10);
              border:1px solid rgba(200,169,106,.20); border-radius:10px; padding:0 12px;
              transition:border-color .18s, background .18s; }
            .nwq-search:focus-within { border-color:rgba(200,169,106,.55); background:rgba(255,255,255,.16); }
            .nwq-search i { color:#aebed8; font-size:13px; }
            .nwq-search input { background:transparent; border:none; outline:none; color:#fff;
              padding:9px 0; font-size:13px; width:160px; font-family:inherit; }
            .nwq-search input::placeholder { color:#9fb0cc; }
            .nwq-grp { background:rgba(255,255,255,.10); color:#fff; border:1px solid rgba(200,169,106,.20);
              border-radius:10px; padding:9px 10px; font-size:13px; font-family:inherit; cursor:pointer;
              transition:border-color .18s, background .18s; }
            .nwq-grp:hover { border-color:rgba(200,169,106,.45); }
            .nwq-grp option { color:#1e293b; }
            .nwq-reload { background:rgba(255,255,255,.10); color:#fff; border:1px solid rgba(200,169,106,.20);
              border-radius:10px; width:38px; height:38px; cursor:pointer; transition:all .18s var(--ease-smooth,ease); }
            .nwq-reload:hover { background:var(--nwq-gold); border-color:var(--nwq-gold); color:var(--nwq-navy);
              box-shadow:0 3px 10px rgba(200,169,106,.4); }

            /* ── Tabs — แถบกระจกใต้ letterhead ── */
            .nwq-tabs { display:flex; gap:2px; padding:0 14px;
              background:rgba(255,255,255,.55); -webkit-backdrop-filter:var(--nwq-blur); backdrop-filter:var(--nwq-blur);
              border-bottom:1px solid var(--nwq-gline); }
            .nwq-tab { display:flex; align-items:center; gap:7px; padding:13px 16px; border:none;
              background:none; cursor:pointer; font-family:inherit; font-size:13.5px; font-weight:600;
              color:var(--nwq-mute); border-bottom:2.5px solid transparent;
              transition:color .18s var(--ease-smooth,ease), border-color .18s; }
            .nwq-tab:hover { color:var(--nwq-navy); }
            .nwq-tab.on { color:var(--nwq-navy); border-bottom-color:var(--nwq-gold); font-weight:800; }
            .nwq-tab-badge { font-size:11px; font-weight:700; background:var(--nwq-bg); color:var(--nwq-mute);
              border-radius:10px; padding:1px 8px; min-width:20px; text-align:center; font-variant-numeric:tabular-nums; }
            .nwq-tab.on .nwq-tab-badge { background:linear-gradient(135deg,var(--nwq-navy),#1d3b6b); color:#fff; }

            /* ── Stage / panes — liquid glass ── */
            .nwq-stage { flex:1; min-height:0;
              background:var(--nwq-glass); -webkit-backdrop-filter:var(--nwq-blur); backdrop-filter:var(--nwq-blur);
              border-radius:0 0 16px 16px; border:1px solid var(--nwq-gline); border-top:none; overflow:hidden;
              box-shadow:0 16px 42px rgba(10,25,55,.13), inset 0 1px 0 rgba(255,255,255,.6); }
            .nwq-pane { display:none; height:100%; }
            .nwq-pane.on { display:block; height:100%; }
            #fu-view-appointments.on, #fu-view-area.on, #fu-view-history.on, #fu-view-mytasks.on {
              display:block; overflow:auto; padding:16px 18px; }

            /* ── Inbox: filter chip row + split ── */
            #nwq-inbox.on { display:flex; flex-direction:column; }
            .nwq-fbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
              padding:11px 16px; border-bottom:1px solid var(--nwq-gline); background:var(--nwq-glass-2); }
            .nwq-fchip { display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:20px;
              border:1px solid var(--nwq-line); background:rgba(255,255,255,.7); cursor:pointer; font-family:inherit;
              font-size:12.5px; color:var(--nwq-ink); font-weight:600;
              transition:background .15s var(--ease-smooth,ease), border-color .15s, color .15s, box-shadow .15s; }
            .nwq-fchip:hover { border-color:var(--nwq-gold); background:#fff; }
            .nwq-fchip.on { background:linear-gradient(135deg,#17396c,var(--nwq-navy)); border-color:var(--nwq-navy);
              color:#fff; box-shadow:0 3px 10px rgba(15,42,82,.25), 0 0 0 1px rgba(200,169,106,.35); }
            .nwq-fchip .dot { width:8px; height:8px; border-radius:50%; }
            .nwq-fchip-c { font-size:11px; opacity:.75; font-variant-numeric:tabular-nums; }
            .nwq-fsel { margin-left:auto; border:1px solid var(--nwq-line); border-radius:9px; padding:7px 11px;
              font-family:inherit; font-size:12.5px; color:var(--nwq-ink); background:rgba(255,255,255,.7); cursor:pointer;
              transition:border-color .15s; }
            .nwq-fsel:hover { border-color:var(--nwq-gold); }

            /* ── ปุ่ม "ทวงเป็นชุด" บน filter bar (เด่น) ── */
            .nwq-bulkbtn { display:inline-flex; align-items:center; gap:7px; padding:7px 15px; border-radius:20px;
              border:1.5px solid var(--nwq-gold); background:linear-gradient(135deg,#fffdf7,#f7eed8);
              color:var(--nwq-navy); cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:800;
              white-space:nowrap; box-shadow:0 2px 7px rgba(160,125,58,.18);
              transition:background .15s var(--ease-smooth,ease), border-color .15s, color .15s, box-shadow .15s, transform .12s; }
            .nwq-bulkbtn i { color:var(--nwq-gold-deep); }
            .nwq-bulkbtn:hover { background:#fff; border-color:var(--nwq-gold-deep); transform:translateY(-1px);
              box-shadow:0 4px 12px rgba(160,125,58,.3); }
            .nwq-bulkbtn.on { background:linear-gradient(135deg,#17396c,var(--nwq-navy)); border-color:var(--nwq-navy);
              color:#fff; box-shadow:0 3px 11px rgba(15,42,82,.32), 0 0 0 1px rgba(200,169,106,.4); }
            .nwq-bulkbtn.on i { color:var(--nwq-gold); }

            /* ── Segment Rail — กองงานสำหรับทวงเป็นชุด (คลิกกอง = เลือกทั้งกอง) ── */
            .nwq-segrail { display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding:9px 16px; flex-shrink:0;
              border-bottom:1px solid var(--nwq-gline); background:rgba(255,255,255,.34); }
            @media (max-width:880px) { .nwq-segrail { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
              .nwq-segrail .nwq-seg-hint { display:none; } .nwq-segrail .nwq-seg { flex-shrink:0; } }
            .nwq-seg-hint { font-size:11px; font-weight:800; color:var(--nwq-navy); display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
            .nwq-seg-hint i { color:var(--nwq-gold-deep); }
            .nwq-seg { display:inline-flex; align-items:center; gap:9px; padding:6px 12px; border-radius:12px;
              border:1px solid var(--nwq-line); background:rgba(255,255,255,.8); cursor:pointer; font-family:inherit;
              transition:border-color .15s var(--ease-smooth,ease), background .15s, transform .12s, box-shadow .15s; }
            .nwq-seg:hover { border-color:var(--nwq-gold); background:#fff; transform:translateY(-1px); box-shadow:0 3px 9px rgba(15,42,82,.1); }
            .nwq-seg.dis { opacity:.4; cursor:default; }
            .nwq-seg-ic { font-size:14px; }
            .nwq-seg-main { display:flex; flex-direction:column; line-height:1.15; text-align:left; }
            .nwq-seg-l { font-size:12px; font-weight:700; color:var(--nwq-ink); white-space:nowrap; }
            .nwq-seg-sub { font-size:10.5px; color:var(--nwq-mute); font-variant-numeric:tabular-nums; }
            .nwq-seg-n { font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; min-width:20px; text-align:right; }

            /* ── badge เลขคีย์ลัดบนปุ่มผล ── */
            .nwq-res { position:relative; }
            .nwq-res-k { position:absolute; top:4px; left:5px; font-size:9px; font-weight:800; color:#475569;
              background:rgba(15,42,82,.06); border-radius:4px; min-width:13px; height:13px; line-height:13px; text-align:center; }
            .nwq-res.on .nwq-res-k { background:rgba(255,255,255,.6); }

            /* ── ผลการทวงเป็นเงิน (band เฟส 3) ── */
            .nwq-collect { flex-shrink:0; border-bottom:1px solid var(--nwq-gline);
              background:linear-gradient(90deg,rgba(23,57,108,.05),rgba(200,169,106,.06)); }
            .nwq-collect-hd { display:flex; align-items:center; gap:12px; width:100%; padding:10px 18px; border:none;
              background:none; cursor:pointer; font-family:inherit; text-align:left; }
            .nwq-collect-hd:hover { background:rgba(200,169,106,.06); }
            .nwq-collect-ic { width:32px; height:32px; border-radius:9px; flex-shrink:0; display:grid; place-items:center;
              background:linear-gradient(135deg,#17396c,var(--brand-navy)); color:var(--nwq-gold); font-size:15px;
              box-shadow:0 2px 7px rgba(15,42,82,.25); }
            .nwq-collect-lead { display:flex; align-items:baseline; gap:9px; flex-shrink:0; }
            .nwq-collect-l { font-size:12.5px; font-weight:700; color:var(--nwq-navy); }
            .nwq-collect-win { color:var(--nwq-mute); font-weight:600; font-size:11px; }
            .nwq-collect-amt { font-size:19px; font-weight:800; color:var(--nwq-gold-deep); font-variant-numeric:tabular-nums; }
            .nwq-collect-sub { flex:1; min-width:0; font-size:11.5px; color:var(--nwq-mute);
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-collect-tools { display:flex; align-items:center; gap:8px; flex-shrink:0; }
            .nwq-collect-tools select { border:1px solid var(--nwq-line); border-radius:8px; padding:5px 8px;
              font-family:inherit; font-size:11.5px; color:var(--nwq-ink); background:rgba(255,255,255,.85); cursor:pointer; }
            .nwq-collect-chev { color:var(--nwq-mute); transition:transform .2s var(--ease-smooth,ease); }
            .nwq-collect-body { padding:4px 18px 16px; }
            .fucol-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
            .fucol-panel { background:rgba(255,255,255,.6); border:1px solid var(--nwq-gline); border-radius:12px;
              padding:12px 14px; margin-bottom:12px; }
            .fucol-h { font-size:11.5px; font-weight:800; color:var(--nwq-navy); margin-bottom:9px; display:flex; align-items:center; gap:7px; }
            .fucol-h i { color:var(--nwq-gold-deep); }
            .fucol-promise { font-size:20px; font-weight:800; color:var(--nwq-ok); font-variant-numeric:tabular-nums; }
            .fucol-promise span { font-size:12px; color:var(--nwq-mute); font-weight:600; }
            .fucol-note { font-size:10.5px; color:var(--nwq-mute); margin-top:6px; line-height:1.5; }
            .fucol-brow { display:flex; align-items:center; gap:9px; margin-bottom:6px; }
            .fucol-blbl { width:58px; font-size:11px; color:var(--nwq-ink); flex-shrink:0; }
            .fucol-btrack { flex:1; height:9px; border-radius:5px; background:rgba(160,125,58,.13); overflow:hidden; }
            .fucol-bfill { display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,#d4b878,#a07d3a); }
            .fucol-bval { font-size:11px; font-weight:700; color:var(--nwq-ink); flex-shrink:0; font-variant-numeric:tabular-nums; min-width:96px; text-align:right; }
            .fucol-bn { color:var(--nwq-mute); font-weight:500; }
            .fucol-tbl { width:100%; border-collapse:collapse; font-size:12px; }
            .fucol-tbl td { padding:5px 4px; border-bottom:1px solid rgba(15,42,82,.05); }
            .fucol-mom { display:flex; align-items:flex-end; gap:8px; height:90px; padding-top:6px; }
            .fucol-mcol { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; }
            .fucol-mbar { width:60%; min-height:2px; border-radius:4px 4px 0 0; background:linear-gradient(180deg,#3a6bb0,#17396c); }
            .fucol-mlbl { font-size:9.5px; color:var(--nwq-mute); }
            .fucol-caption { font-size:10.5px; color:var(--nwq-mute); background:rgba(160,125,58,.08);
              border-radius:8px; padding:7px 11px; display:flex; align-items:center; gap:7px; line-height:1.5; }
            .fucol-caption i { color:var(--nwq-gold-deep); }
            @media (max-width:880px) { .fucol-grid { grid-template-columns:1fr; } .nwq-collect-sub { display:none; } }

            /* ── เฟส 4: ค่าคอม (band nwq-commission) ── */
            .nwq-collect-tools input[type="month"] { border:1px solid var(--nwq-line); border-radius:8px; padding:4px 7px;
              font-family:inherit; font-size:11.5px; color:var(--nwq-ink); background:rgba(255,255,255,.85); cursor:pointer; }
            #nwq-commission .fucol-blbl { width:auto; flex:1; font-weight:600; }
            .fcom-tbl th { text-align:left; padding:4px; font-size:10.5px; color:var(--nwq-mute);
              border-bottom:1px solid rgba(15,42,82,.12); font-weight:700; }
            .fcom-edit { border:1px solid var(--nwq-line); background:#fff; color:var(--nwq-ink); border-radius:7px;
              padding:2px 10px; font-size:11px; cursor:pointer; font-family:inherit; }
            .fcom-edit:hover { background:#0f2a52; color:#fff; border-color:#0f2a52; }
            .fcom-manual { font-size:9.5px; padding:1px 6px; border-radius:5px; background:rgba(200,169,106,.2); color:#8a6d2f; }

            /* ── เฟส 2: เบี้ยวนัด chip + ปุ่มเริ่มไล่ทวง บนแถบ progress ── */
            .nwq-prog-broken { flex-shrink:0; font-size:11px; font-weight:800; color:#dc2626; background:#fef2f2;
              border:1px solid #fecaca; border-radius:11px; padding:3px 10px; white-space:nowrap; cursor:pointer; }
            .nwq-prog-broken:hover { background:#fee2e2; }
            .nwq-prog-start { flex-shrink:0; display:inline-flex; align-items:center; gap:7px; padding:8px 15px;
              border:none; border-radius:10px; cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:800;
              color:#fff; background:linear-gradient(135deg,#059669,#047857); box-shadow:0 3px 11px rgba(5,150,105,.32);
              transition:filter .14s var(--ease-smooth,ease), transform .12s, box-shadow .14s; }
            .nwq-prog-start:hover { filter:brightness(1.06); transform:translateY(-1px); box-shadow:0 5px 15px rgba(5,150,105,.42); }
            .nwq-prog-start:active { transform:scale(.97); }
            .nwq-prog-start:focus-visible { outline:3px solid var(--nwq-gold); outline-offset:2px; }

            /* ── ปุ่ม "เลือกทั้งกลุ่ม" บนหัวกลุ่ม (โหมดชุด) ── */
            .nwq-ghead-pick { display:inline-flex; align-items:center; gap:5px; margin-left:8px;
              padding:3px 10px; border-radius:14px; border:1px solid var(--nwq-gold);
              background:rgba(200,169,106,.12); color:var(--nwq-gold-deep); cursor:pointer;
              font-family:inherit; font-size:10.5px; font-weight:800; letter-spacing:.2px; text-transform:none;
              transition:background .14s var(--ease-smooth,ease), color .14s, border-color .14s; }
            .nwq-ghead-pick:hover { background:var(--nwq-navy); border-color:var(--nwq-navy); color:#fff; }
            .nwq-ghead-pick i { font-size:9.5px; }

            /* ── ป้ายคีย์ลัดในฟอร์ม detail ── */
            .nwq-keyhint { font-size:10.5px; color:var(--nwq-mute); margin:-4px 0 12px; line-height:1.7; }
            .nwq-keyhint kbd { display:inline-block; min-width:15px; padding:0 5px; border-radius:5px;
              border:1px solid var(--nwq-line); border-bottom-width:2px; background:#fff; color:var(--nwq-navy);
              font-family:inherit; font-size:10px; font-weight:800; text-align:center; }

            .nwq-split { flex:1; min-height:0; display:grid; grid-template-columns:minmax(340px,420px) 1fr; }
            .nwq-master { border-right:1px solid var(--nwq-gline); display:flex; flex-direction:column; min-height:0;
              background:rgba(255,255,255,.28); }
            .nwq-list { flex:1; overflow:auto; outline:none; }
            .nwq-master-ft { padding:9px 14px; border-top:1px solid var(--nwq-gline); font-size:11.5px;
              color:var(--nwq-mute); background:var(--nwq-glass-2); }

            /* group header in list */
            .nwq-ghead { display:flex; align-items:center; gap:8px; padding:9px 14px 6px;
              font-size:11px; font-weight:800; letter-spacing:.4px; text-transform:uppercase;
              color:var(--nwq-navy); position:sticky; top:0; z-index:1;
              background:linear-gradient(180deg,rgba(248,250,253,.96),rgba(248,250,253,.82));
              -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
            .nwq-ghead .gline { flex:1; height:1px; background:var(--nwq-gline); }

            /* master row */
            .nwq-row { display:flex; align-items:stretch; gap:10px; width:100%; text-align:left;
              padding:10px 14px 10px 0; border:none; border-bottom:1px solid rgba(15,42,82,.05); background:transparent;
              cursor:pointer; font-family:inherit; position:relative;
              content-visibility:auto; contain-intrinsic-size:auto 58px; /* PERF: ข้าม layout/paint แถวนอกจอ (เหมือน .col-card) */
              transition:background .14s var(--ease-smooth,ease), box-shadow .14s; }
            .nwq-row:hover { background:rgba(244,236,218,.5); }
            .nwq-row.sel { background:rgba(232,239,250,.85); box-shadow:inset 0 0 0 1px rgba(200,169,106,.22); }
            .nwq-row.sel::after { content:''; position:absolute; right:0; top:0; bottom:0; width:3px;
              background:linear-gradient(180deg,var(--nwq-gold),var(--nwq-gold-deep)); }
            .nwq-rbar { width:4px; border-radius:0 3px 3px 0; flex-shrink:0; background:var(--nwq-future); }
            .nwq-rbar.s-urgent{background:var(--nwq-urgent)} .nwq-rbar.s-overdue{background:var(--nwq-overdue)}
            .nwq-rbar.s-upcoming{background:var(--nwq-upcoming)} .nwq-rbar.s-future{background:var(--nwq-future)}
            .nwq-rbar.s-dormant{background:var(--nwq-dormant)} .nwq-rbar.s-expiring{background:var(--nwq-expiring)}
            .nwq-rbar.s-promise{background:var(--nwq-promise)}
            .nwq-rbadge { flex-shrink:0; width:38px; display:flex; flex-direction:column; align-items:center;
              justify-content:center; border-radius:8px; line-height:1; }
            .nwq-rbadge b { font-size:16px; font-weight:800; }
            .nwq-rbadge span { font-size:9px; font-weight:700; margin-top:2px; }
            .nwq-rmain { flex:1; min-width:0; }
            /* บรรทัดชื่อ = ชื่อ (ตัด … ได้) + ป้ายผิดนัด (ไม่หด/ไม่หาย) — กันชื่อทะลุไปทับยอดเงินขวา */
            .nwq-rnameline { display:flex; align-items:center; gap:6px; min-width:0; }
            .nwq-rname { flex:0 1 auto; min-width:0; font-size:13.5px; font-weight:700; color:var(--nwq-ink);
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-rname .nick { color:var(--nwq-mute); font-weight:500; font-size:12px; }
            .nwq-rbroken { flex:none; font-size:10px; font-weight:700; color:#dc2626; background:#fef2f2;
              border:1px solid #fecaca; border-radius:8px; padding:0 6px; white-space:nowrap; line-height:1.7; }
            .nwq-rmeta { font-size:11.5px; color:var(--nwq-mute); margin-top:2px;
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-rright { flex-shrink:0; text-align:right; display:flex; flex-direction:column;
              align-items:flex-end; justify-content:center; gap:3px; padding-right:2px; }
            .nwq-ramt { font-size:13px; font-weight:800; color:var(--nwq-ink); }
            .nwq-rchip { font-size:10.5px; font-weight:700; padding:1px 8px; border-radius:10px; white-space:nowrap; }

            /* ── Detail panel ── */
            .nwq-detail { overflow:auto; height:100%; background:rgba(255,255,255,.22); }
            .nwq-empty { height:100%; display:flex; flex-direction:column; align-items:center;
              justify-content:center; color:#9aa7bd; gap:12px; padding:40px; text-align:center; }
            .nwq-empty i { font-size:46px; opacity:.35; color:var(--nwq-gold); }
            /* หัว detail แบบการ์ด navy-gold */
            .nwq-dhead { position:relative; padding:18px 22px 16px;
              background:
                radial-gradient(ellipse 60% 130% at 90% -20%, rgba(200,169,106,.22), transparent 60%),
                linear-gradient(135deg,#17396c,var(--brand-navy));
              color:#fff; border-bottom:3px solid var(--nwq-gold); box-shadow:0 6px 18px rgba(10,25,55,.18); }
            .nwq-dname { font-size:20px; font-weight:800; color:#fff; }
            .nwq-dname .nick { font-size:14px; color:#aebed8; font-weight:500; }
            .nwq-dhead .nwq-dsub { color:#c3d0e6; }
            .nwq-ghead-n { font-size:10px; font-weight:800; background:rgba(200,169,106,.16); color:var(--nwq-gold-deep);
              border-radius:9px; padding:1px 8px; }
            .nwq-dsub { font-size:12.5px; color:var(--nwq-mute); margin-top:3px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
            .nwq-pill { font-size:11px; font-weight:700; padding:2px 9px; border-radius:11px; }
            .nwq-dstats { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:10px;
              padding:15px 22px; background:rgba(255,255,255,.55); border-bottom:1px solid var(--nwq-gline); }
            .nwq-stat-l { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--nwq-mute); }
            .nwq-stat-v { font-size:15px; font-weight:800; color:var(--nwq-ink); margin-top:2px; font-variant-numeric:tabular-nums; }
            .nwq-stat-v.red { color:var(--nwq-urgent); }
            .nwq-stat-v.ok { color:var(--nwq-ok); }
            .nwq-dquick { display:flex; gap:8px; flex-wrap:wrap; padding:13px 22px; background:rgba(255,255,255,.4); border-bottom:1px solid var(--nwq-gline); }
            .nwq-qbtn { display:inline-flex; align-items:center; gap:6px; padding:9px 14px; border-radius:10px;
              border:1px solid var(--nwq-line); background:rgba(255,255,255,.8); cursor:pointer; font-family:inherit;
              font-size:12.5px; font-weight:600; color:var(--nwq-ink); text-decoration:none;
              transition:border-color .14s, background .14s, box-shadow .14s, transform .14s; }
            .nwq-qbtn:hover { border-color:var(--nwq-gold); background:#fff; transform:translateY(-1px); box-shadow:0 3px 10px rgba(15,42,82,.08); }
            .nwq-qbtn.call { color:#047857; } .nwq-qbtn.line { color:#06863e; } .nwq-qbtn.sms { color:#1d4ed8; }
            .nwq-qbtn.call.big { background:linear-gradient(135deg,#059669,#047857); color:#fff;
              border:none; font-size:14px; font-weight:800; padding:11px 18px; box-shadow:0 3px 12px rgba(5,150,105,.3); }
            .nwq-qbtn.call.big:hover { background:linear-gradient(135deg,#047857,#065f46); color:#fff; }

            /* inline follow-up form */
            .nwq-form { padding:16px 22px; }
            .nwq-form-h { font-size:13px; font-weight:800; color:var(--nwq-navy); margin-bottom:10px;
              display:flex; align-items:center; gap:8px; }
            .nwq-form-h i { color:var(--nwq-gold-deep); }
            .nwq-results { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
            .nwq-res { flex:1; min-width:88px; padding:10px 6px; border-radius:10px; border:1.5px solid var(--nwq-line);
              background:rgba(255,255,255,.75); cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:700;
              color:var(--nwq-ink); transition:border-color .14s, background .14s, transform .14s; }
            .nwq-res:hover { border-color:var(--nwq-gold); transform:translateY(-1px); }
            .nwq-res.on.r-contacted { background:#ecfdf5; border-color:var(--nwq-ok); color:#047857; }
            .nwq-res.on.r-nocontact { background:#fef2f2; border-color:#ef4444; color:#b91c1c; }
            .nwq-res.on.r-promised { background:#f5f3ff; border-color:var(--nwq-promise); color:#6d28d9; }
            .nwq-res.on.r-rejected { background:#fff7ed; border-color:#ea580c; color:#c2410c; }
            .nwq-frow { display:flex; gap:10px; margin-bottom:11px; flex-wrap:wrap; }
            .nwq-fld { flex:1; min-width:130px; }
            .nwq-fld label { display:block; font-size:11px; font-weight:700; color:var(--nwq-mute); margin-bottom:4px; }
            .nwq-fld input, .nwq-fld select, .nwq-form textarea { width:100%; box-sizing:border-box;
              border:1px solid var(--nwq-line); border-radius:9px; padding:10px 11px; font-family:inherit;
              font-size:13px; color:var(--nwq-ink); outline:none; background:rgba(255,255,255,.85);
              transition:border-color .14s, box-shadow .14s; }
            .nwq-fld input:focus, .nwq-fld select:focus, .nwq-form textarea:focus {
              border-color:var(--nwq-gold); box-shadow:0 0 0 3px rgba(200,169,106,.16); }
            .nwq-form textarea { resize:vertical; min-height:60px; margin-bottom:11px; }
            .nwq-presets { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:11px; }
            .nwq-preset { padding:6px 11px; border-radius:8px; border:1px dashed var(--nwq-promise);
              background:#faf8ff; color:#6d28d9; cursor:pointer; font-family:inherit; font-size:11.5px; font-weight:600;
              transition:background .14s, border-color .14s; }
            .nwq-preset:hover { background:#f3eeff; }
            .nwq-submit { width:100%; padding:13px; border:none; border-radius:10px; cursor:pointer;
              background:linear-gradient(135deg,#d4b878,#a07d3a); color:#fff; font-family:inherit; font-size:14px; font-weight:800;
              letter-spacing:.2px; box-shadow:0 4px 14px rgba(160,125,58,.32), inset 0 1px 0 rgba(255,255,255,.35);
              transition:filter .15s, transform .12s, box-shadow .15s; }
            .nwq-submit:hover { filter:brightness(1.06); box-shadow:0 6px 18px rgba(160,125,58,.4); }
            .nwq-submit:active { transform:scale(.985); }
            .nwq-submit:disabled { opacity:.6; cursor:not-allowed; filter:none; }

            /* recent follow-up history in detail */
            .nwq-hist { padding:6px 22px 22px; }
            .nwq-hist-h { font-size:12px; font-weight:800; color:var(--nwq-mute); text-transform:uppercase;
              letter-spacing:.3px; margin:8px 0; }
            .nwq-hist-item { display:flex; gap:10px; padding:9px 0; border-bottom:1px solid rgba(15,42,82,.06); font-size:12.5px; }
            .nwq-hist-dot { width:8px; height:8px; border-radius:50%; margin-top:5px; flex-shrink:0; background:var(--nwq-mute); }
            .nwq-hist-meta { color:var(--nwq-mute); font-size:11px; margin-top:2px; }

            .nwq-loading { display:flex; align-items:center; justify-content:center; gap:8px;
              padding:40px; color:var(--nwq-mute); font-size:13px; }
            .nwq-loading i { color:var(--nwq-gold-deep); }
            .nwq-listempty { padding:50px 20px; text-align:center; color:#9ca8bb; }
            .nwq-listempty i { font-size:38px; opacity:.45; display:block; margin-bottom:12px; }

            /* ── แถบความคืบหน้าวันนี้ ── */
            .nwq-progress { display:flex; align-items:center; gap:14px; padding:11px 20px;
              background:linear-gradient(90deg,rgba(255,253,247,.92),rgba(248,242,228,.85));
              -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
              border-bottom:1px solid var(--nwq-gline); }
            .nwq-prog-ic { width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
              background:linear-gradient(135deg,#d4b878,#a07d3a); color:#fff; font-size:14px; flex-shrink:0;
              box-shadow:0 2px 8px rgba(160,125,58,.35); }
            .nwq-prog-main { flex:1; min-width:0; }
            .nwq-prog-t { font-size:12.5px; font-weight:800; color:var(--nwq-navy); }
            .nwq-prog-t b { color:var(--nwq-gold-deep); }
            .nwq-prog-bar { height:8px; border-radius:6px; background:rgba(160,125,58,.16); margin-top:5px; overflow:hidden; }
            .nwq-prog-fill { height:100%; border-radius:6px; width:0;
              background:linear-gradient(90deg,#d4b878,#a07d3a); transition:width .5s var(--ease-smooth,ease);
              box-shadow:0 0 8px rgba(200,169,106,.5); }
            .nwq-prog-pct { font-size:17px; font-weight:800; color:var(--nwq-gold-deep); flex-shrink:0; font-variant-numeric:tabular-nums; }

            /* avatar อักษรแรกในแถว */
            .nwq-rav { width:36px; height:36px; border-radius:50%; flex-shrink:0; align-self:center;
              display:grid; place-items:center; font-size:15px; font-weight:800; color:#fff;
              background:linear-gradient(135deg,#17396c,var(--brand-navy)); position:relative;
              box-shadow:0 2px 6px rgba(15,42,82,.25), inset 0 1px 0 rgba(255,255,255,.18);
              border:1px solid rgba(200,169,106,.25); }
            .nwq-rav.com { background:linear-gradient(135deg,#b8902f,#7c5e23); border-color:rgba(255,255,255,.25); }
            .nwq-rav .dchk { position:absolute; right:-3px; bottom:-3px; width:16px; height:16px;
              border-radius:50%; background:var(--nwq-ok); color:#fff; font-size:9px;
              display:grid; place-items:center; border:2px solid #fff; }

            /* แถวที่ติดตามแล้ววันนี้ — จาง + ติ๊กเขียว กันวนซ้ำ */
            .nwq-row.done { opacity:.55; background:rgba(245,250,247,.5); }
            .nwq-row.done .nwq-rname { text-decoration:line-through; text-decoration-color:#9fd9bd; text-decoration-thickness:1.5px; }
            .nwq-showmore { display:block; width:calc(100% - 28px); margin:10px 14px; padding:11px;
              border-radius:10px; border:1.5px dashed var(--nwq-gline); background:rgba(255,255,255,.5);
              color:var(--nwq-navy); font-weight:700; cursor:pointer; font-family:inherit; font-size:12.5px;
              transition:border-color .15s, background .15s; }
            .nwq-showmore:hover { border-color:var(--nwq-gold); background:rgba(255,255,255,.8); }
            .nwq-dback { display:none; }

            /* ── LINE Dock — คอลัมน์ 3 พับได้ (แชท LINE OA ข้างงานติดตาม) ── */
            .nwq-linebtn { position:relative; }
            .nwq-linebtn.on { background:#06C755; border-color:#06C755; color:#fff; }
            .nwq-linebtn.on:hover { background:#04a347; border-color:#04a347; color:#fff; }
            .nwq-line-badge { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 4px;
              border-radius:9px; background:#ef4444; color:#fff; font-size:10.5px; font-weight:800; line-height:18px;
              display:none; text-align:center; border:2px solid var(--brand-navy); box-sizing:content-box; }
            .nwq-line-badge.show { display:block; }
            .nwq-line { display:none; flex-direction:column; min-height:0;
              border-left:1px solid var(--nwq-gline); background:rgba(255,255,255,.30); }
            .nwq.line-open .nwq-line { display:flex; }
            .nwq.line-open .nwq-split { grid-template-columns:minmax(300px,380px) 1fr minmax(300px,360px); }
            .nwq-line-hd { display:flex; align-items:center; gap:10px; padding:10px 14px;
              border-bottom:1px solid var(--nwq-gline); background:rgba(6,199,85,.08); flex-shrink:0; }
            .nwq-line-hd .lic { width:30px; height:30px; border-radius:9px; background:#06C755; color:#fff;
              display:grid; place-items:center; font-size:15px; flex-shrink:0; }
            .nwq-line-hd-main { flex:1; min-width:0; }
            .nwq-line-hd-tt { font-weight:800; font-size:13px; color:var(--nwq-ink); line-height:1.2;
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-line-hd-sub { font-size:10.5px; color:var(--nwq-mute);
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-line-hbtn { border:1px solid var(--nwq-line); background:rgba(255,255,255,.7); color:var(--nwq-mute);
              border-radius:8px; width:30px; height:30px; cursor:pointer; font-size:12px; flex-shrink:0;
              transition:color .15s, border-color .15s; }
            .nwq-line-hbtn:hover { color:var(--nwq-navy); border-color:var(--nwq-gold); }
            .nwq-line-body { flex:1; min-height:0; overflow:auto; padding:12px; }
            .nwq-line-banner { background:#fffbeb; border:1px solid #fde68a; color:#92400e; border-radius:10px;
              padding:9px 12px; font-size:12px; line-height:1.5; margin-bottom:10px; }
            .nwq-line-irow { display:flex; align-items:center; gap:10px; width:100%; text-align:left;
              border:1px solid var(--nwq-line); background:rgba(255,255,255,.75); border-radius:11px;
              padding:9px 11px; margin-bottom:7px; cursor:pointer; font-family:inherit;
              transition:border-color .15s, background .15s; }
            .nwq-line-irow:hover, .nwq-line-irow:focus-visible { border-color:#06C755; background:#fff; }
            .nwq-line-iav { width:34px; height:34px; border-radius:50%;
              background:linear-gradient(135deg,#06C755,#04a347); color:#fff; display:grid; place-items:center;
              font-weight:800; font-size:14px; flex-shrink:0; }
            .nwq-line-imain { flex:1; min-width:0; display:flex; flex-direction:column; }
            .nwq-line-iname { font-size:12.5px; font-weight:700; color:var(--nwq-ink);
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-line-iprev { font-size:11px; color:var(--nwq-mute);
              white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            .nwq-line-its { font-size:10px; color:var(--nwq-mute); flex-shrink:0; }
            .nwq-line-linkbtn { flex-shrink:0; border:1px solid var(--nwq-gold);
              background:linear-gradient(135deg,var(--brand-gold),#a07d3a); color:#fff; border-radius:8px;
              padding:5px 10px; font-size:11px; font-weight:700; cursor:pointer; font-family:inherit; }
            .nwq-line-linkbtn:hover { filter:brightness(1.08); }
            .nwq-line-msg { display:flex; flex-direction:column; margin-bottom:9px; }
            .nwq-line-msg .bub { max-width:82%; border-radius:13px; padding:7px 11px; font-size:12.5px;
              line-height:1.55; white-space:pre-wrap; word-break:break-word; }
            .nwq-line-msg.in { align-items:flex-start; }
            .nwq-line-msg.in .bub { background:#fff; border:1px solid var(--nwq-line); color:var(--nwq-ink);
              border-bottom-left-radius:4px; }
            .nwq-line-msg.out { align-items:flex-end; }
            .nwq-line-msg.out .bub { background:#06C755; color:#fff; border-bottom-right-radius:4px; }
            .nwq-line-msg .mts { font-size:9.5px; color:var(--nwq-mute); margin-top:2px; }
            .nwq-line-input { display:flex; gap:7px; padding:10px 12px; border-top:1px solid var(--nwq-gline);
              background:rgba(255,255,255,.55); flex-shrink:0; }
            .nwq-line-input textarea { flex:1; border:1px solid var(--nwq-line); border-radius:10px;
              padding:8px 11px; font-family:inherit; font-size:12.5px; resize:none; height:38px; outline:none;
              background:#fff; }
            .nwq-line-input textarea:focus { border-color:#06C755; }
            .nwq-line-sendbtn { border:none; background:#06C755; color:#fff; border-radius:10px; width:42px;
              cursor:pointer; font-size:14px; transition:background .15s; flex-shrink:0; }
            .nwq-line-sendbtn:hover { background:#04a347; }
            .nwq-line-sendbtn:disabled { opacity:.5; cursor:default; }
            .nwq-line-tag { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700;
              border-radius:8px; padding:2px 8px; background:#ecfdf5; color:#047857; border:1px solid #a7f3d0;
              flex-shrink:0; }
            .nwq-line-empty { text-align:center; color:var(--nwq-mute); font-size:12.5px; padding:26px 10px; }
            .nwq-line-qr { display:flex; gap:6px; flex-wrap:wrap; padding:8px 12px 0;
              border-top:1px solid var(--nwq-gline); background:rgba(255,255,255,.55); flex-shrink:0; }
            .nwq-line-qrbtn { border:1px solid var(--nwq-line); background:#fff; color:var(--nwq-navy);
              border-radius:14px; padding:4px 11px; font-size:11.5px; font-weight:700; cursor:pointer;
              font-family:inherit; transition:border-color .15s, background .15s; white-space:nowrap; }
            .nwq-line-qrbtn:hover { border-color:#06C755; background:#f0fdf4; }
            .nwq-line-qr + .nwq-line-input { border-top:none; }
            .nwq-line-img { max-width:200px; max-height:260px; border-radius:9px; display:block;
              min-height:60px; min-width:80px; background:#eef1f6; cursor:zoom-in; }
            .nwq-line-msg .bub.has-img { padding:4px; background:#fff; border:1px solid var(--nwq-line); }

            /* ── LINE OA เต็มจอ — inbox + แชท 2 pane (ปุ่มขยายอยู่ใน header ของ dock) ── */
            .nwq.line-full .nwq-line { display:grid !important;
              grid-template-columns:minmax(280px,340px) 1fr;
              position:fixed; inset:0; z-index:1000;
              background:var(--nwq-bg); border-left:none; }
            .nwq-line-list { display:flex; flex-direction:column; min-height:0; overflow:hidden;
              border-right:1px solid var(--nwq-line); background:rgba(255,255,255,.6); }
            .nwq-line-conv { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
            .nwq-line-search { margin:8px 12px; padding:8px 12px; border:1px solid var(--nwq-line);
              border-radius:10px; font-family:inherit; font-size:12.5px; outline:none; color:var(--nwq-ink);
              background:#fff; }
            .nwq-line-search:focus { border-color:#06C755; }
            .nwq-line-irow.active { border-color:#06C755; background:#f0fdf4; }
            .nwq-line-convempty { flex:1; display:flex; flex-direction:column; align-items:center;
              justify-content:center; gap:12px; color:var(--nwq-mute); font-size:13px; padding:20px; text-align:center; }
            .nwq-line-convempty i { font-size:46px; color:#06C755; opacity:.45; }
            @media (max-width:760px) {
              .nwq.line-full .nwq-line { grid-template-columns:1fr; }
              .nwq.line-full.conv-on .nwq-line-list { display:none; }
              .nwq.line-full:not(.conv-on) .nwq-line-conv { display:none; }
            }

            @media (max-width:880px) {
              .nwq { height:auto; }
              .nwq-split { grid-template-columns:1fr; }
              .nwq.line-open .nwq-split { grid-template-columns:1fr; }
              /* จอแคบ: LINE dock = overlay เต็มจอ (ปุ่มปิดอยู่ใน header dock) */
              .nwq.line-open .nwq-line { position:fixed; inset:0; z-index:620; background:#fafbfd; border-left:none; }
              .nwq-master { border-right:none; border-bottom:1px solid var(--nwq-line); }
              .nwq-list { max-height:62vh; }
              .nwq-search input { width:120px; }
              /* detail = slide-over เต็มจอ พร้อมปุ่มกลับ (เดิม detail จมอยู่ใต้ลิสต์) */
              .nwq-detail { position:fixed; inset:0; z-index:600; background:#fafbfd;
                transform:translateX(103%); transition:transform .22s ease; box-shadow:-8px 0 30px rgba(15,42,82,.25); }
              .nwq.show-detail .nwq-detail { transform:translateX(0); }
              .nwq-dback { display:inline-flex; margin-bottom:8px; }
              /* ปุ่มแตะขั้นต่ำ 44px */
              .nwq-qbtn, .nwq-res, .nwq-submit { min-height:44px; }
              /* KPI แถวเดียวเลื่อนแนวนอน — เดิม wrap สูงกินครึ่งจอ */
              .nwq-kpis { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
              .nwq-kpis::-webkit-scrollbar { display:none; }
              .nwq-kpi { flex:none; }
            }
            @media (max-width:640px) {
              .nwq { min-height:auto; }
              /* แท็บ 5 อันล้นจอแคบ — เลื่อนแนวนอนแทนการบีบทับกัน */
              .nwq-tabs { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
              .nwq-tabs::-webkit-scrollbar { display:none; }
              .nwq-tabs > * { flex:none; white-space:nowrap; }
            }

            /* ── แท็บอื่น (นัดหมาย/พื้นที่/ประวัติ/ของฉัน) — ยกการ์ดเป็น liquid glass ให้เข้าชุด ── */
            #pg-notifications .fu2-card-list {
              background:var(--nwq-glass); -webkit-backdrop-filter:var(--nwq-blur); backdrop-filter:var(--nwq-blur);
              border:1px solid var(--nwq-gline); border-radius:13px; overflow:hidden;
              box-shadow:0 6px 20px rgba(10,25,55,.07); }
            #pg-notifications .fu2-card { background:transparent; border-bottom:1px solid rgba(15,42,82,.06);
              transition:background .14s var(--ease-smooth,ease); }
            #pg-notifications .fu2-card:hover { background:rgba(244,236,218,.45); }
            #pg-notifications .fu2-sec { color:var(--nwq-navy); }
            #pg-notifications .nw-empty { color:var(--nwq-mute); }

            /* ── A11y polish (2026-06-08): focus rings, reduced-motion, touch targets ── */
            .nwq-kpi:focus-visible, .nwq-tab:focus-visible, .nwq-fchip:focus-visible,
            .nwq-qbtn:focus-visible, .nwq-res:focus-visible, .nwq-reload:focus-visible,
            .nwq-grp:focus-visible, .nwq-fsel:focus-visible, .nwq-submit:focus-visible,
            .nwq-preset:focus-visible, .nwq-showmore:focus-visible, .nwq-dback:focus-visible,
            .nwq-seg:focus-visible, .nwq-bulkbtn:focus-visible,
            .nwq-line-hbtn:focus-visible, .nwq-line-irow:focus-visible, .nwq-line-sendbtn:focus-visible {
              outline:3px solid var(--nwq-gold); outline-offset:2px; }
            .nwq-search:focus-within { outline:2px solid var(--nwq-gold); outline-offset:1px; }
            .nwq-row:focus-visible { outline:3px solid var(--nwq-gold); outline-offset:-3px; }
            .nwq-list:focus-visible { outline:2px solid rgba(200,169,106,.6); outline-offset:-2px; }
            @media (prefers-reduced-motion: reduce) {
              .nwq *, .nwq *::before, .nwq *::after {
                animation-duration:.01ms !important; animation-iteration-count:1 !important;
                transition-duration:.01ms !important; }
              .nwq-prog-fill, .nwq-detail { transition:none !important; }
            }
            @media (max-width:880px) {
              .nwq-kpi, .nwq-fchip, .nwq-tab { min-height:44px; }
            }

            /* ── ปฏิทินนัดติดตาม v2 — Banking Planner (redesign 2026-06-10) ── */
            .nwq-appt-modes { display:flex; gap:8px; margin-bottom:14px; }
            .nwq-amode { display:inline-flex; align-items:center; gap:7px; padding:8px 16px;
              border:1px solid var(--nwq-gline); border-radius:999px; background:var(--nwq-glass);
              -webkit-backdrop-filter:var(--nwq-blur); backdrop-filter:var(--nwq-blur);
              font-family:inherit; font-size:13px; font-weight:600; color:var(--nwq-mute);
              cursor:pointer; transition:background .14s, color .14s; }
            .nwq-amode:hover { color:var(--nwq-navy); }
            .nwq-amode.on { background:var(--nwq-navy); border-color:var(--nwq-navy); color:#fff; }
            .nwq-amode:focus-visible { outline:3px solid var(--nwq-gold); outline-offset:2px; }

            /* layout: ตารางเดือนซ้าย + แผงนัดของวันขวา (sticky) */
            #nwq-cal-wrap { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:16px; align-items:start; }
            .nwq-cal-main { background:#fff; border:1px solid var(--nwq-line); border-radius:16px;
              padding:14px 16px 16px; box-shadow:0 1px 2px rgba(15,42,82,.05); }

            .nwq-cal-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:4px; }
            .nwq-cal-navgrp { display:inline-flex; align-items:center; border:1px solid var(--nwq-line);
              border-radius:11px; overflow:hidden; background:#fff; }
            .nwq-cal-nav { border:none; background:transparent; padding:8px 13px; font-family:inherit;
              font-size:13px; color:var(--nwq-navy); cursor:pointer; min-height:38px; transition:background .14s; }
            .nwq-cal-nav:hover { background:rgba(200,169,106,.14); }
            .nwq-cal-title { font-size:16.5px; font-weight:800; color:var(--nwq-navy); min-width:148px;
              text-align:center; padding:0 4px; font-variant-numeric:tabular-nums; }
            .nwq-cal-todaybtn { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--nwq-gline);
              background:linear-gradient(180deg,#fbf6ea,#f4ecda); color:var(--nwq-gold-deep);
              border-radius:10px; padding:8px 14px; font-family:inherit; font-size:12.5px; font-weight:700;
              cursor:pointer; min-height:38px; transition:filter .14s; }
            .nwq-cal-todaybtn:hover { filter:brightness(.97); }
            .nwq-cal-stats { display:flex; gap:13px; font-size:11.5px; color:var(--nwq-mute);
              font-variant-numeric:tabular-nums; white-space:nowrap; }
            .nwq-cal-stats b { font-size:13px; margin-right:3px; }

            /* legend = ปุ่มกรองสถานะ (กดเพื่อซ่อน/แสดง) */
            .nwq-cal-legend { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }
            .nwq-cal-leg { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--nwq-line);
              background:#fff; border-radius:999px; padding:4px 11px; font-family:inherit; font-size:11.5px;
              font-weight:600; color:var(--nwq-ink); cursor:pointer; min-height:28px;
              transition:opacity .14s, background .14s; font-variant-numeric:tabular-nums; }
            .nwq-cal-leg .dot { width:8px; height:8px; border-radius:50%; flex:none; }
            .nwq-cal-leg .c { color:var(--nwq-mute); font-weight:700; }
            .nwq-cal-leg:hover { background:#f6f8fb; }
            .nwq-cal-leg.off { opacity:.42; }
            .nwq-cal-leg.off .dot { background:#94a3b8 !important; }
            .nwq-cal-leg:focus-visible, .nwq-cal-nav:focus-visible, .nwq-cal-todaybtn:focus-visible,
            .nwq-cal-cell:focus-visible { outline:3px solid var(--nwq-gold); outline-offset:2px; }

            .nwq-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; margin-top:10px; }
            .nwq-cal-dow { text-align:center; font-size:10.5px; font-weight:800; color:var(--nwq-mute);
              letter-spacing:.6px; padding:2px 0 7px; border-bottom:2px solid rgba(200,169,106,.30);
              margin-bottom:3px; }
            .nwq-cal-dow.we { color:var(--nwq-gold-deep); }
            .nwq-cal-cell { position:relative; min-height:92px; padding:6px 7px; text-align:left;
              background:#fdfdfc; border:1px solid var(--nwq-line); border-radius:12px;
              font-family:inherit; cursor:pointer; transition:border-color .14s, box-shadow .14s;
              display:flex; flex-direction:column; gap:3px; align-items:stretch; overflow:hidden; }
            .nwq-cal-cell:hover { border-color:var(--nwq-gold); box-shadow:0 2px 8px rgba(15,42,82,.08); }
            .nwq-cal-cell.we { background:#f6f7fa; }
            .nwq-cal-cell.blank { background:transparent; border-color:transparent; cursor:default; box-shadow:none; }
            .nwq-cal-cell.past:not(.sel):not(.today) .nwq-cal-d { color:var(--nwq-mute); }
            .nwq-cal-top { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:20px; }
            .nwq-cal-d { font-size:12.5px; font-weight:800; color:var(--nwq-navy); line-height:1;
              font-variant-numeric:tabular-nums; }
            .nwq-cal-cell.today { border:1.5px solid var(--nwq-gold); background:#fffdf6; }
            .nwq-cal-cell.today .nwq-cal-d { display:inline-flex; align-items:center; justify-content:center;
              width:20px; height:20px; border-radius:50%; background:var(--nwq-gold); color:#fff;
              margin:-2px 0 0 -3px; }
            .nwq-cal-cell.sel { background:linear-gradient(168deg,#17396c,var(--brand-navy)); border-color:var(--nwq-navy);
              box-shadow:0 6px 16px rgba(15,42,82,.28); }
            .nwq-cal-cell.sel .nwq-cal-d { color:#fff; }
            .nwq-cal-cell.sel.today .nwq-cal-d { background:var(--nwq-gold); }
            .nwq-cal-pill { font-size:10.5px; font-weight:800; color:#fff; border-radius:999px;
              padding:2px 7px; line-height:1.3; flex:none; font-variant-numeric:tabular-nums; }
            .nwq-cal-pill.overdue { background:#dc2626; }
            .nwq-cal-pill.today { background:#7c3aed; }
            .nwq-cal-pill.upcoming { background:#1d4ed8; }
            .nwq-cal-pill.done { background:#16a34a; }
            /* mini event chip — แถบสีซ้ายบอกสถานะ อ่านได้แม้ตาบอดสี (สี+ตำแหน่ง+ขีดฆ่า) */
            .nwq-cal-ev { display:block; width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
              font-size:10.8px; line-height:1.5; color:var(--nwq-ink); border-left:3px solid #94a3b8;
              border-radius:4px; padding:1px 5px 1px 6px; background:rgba(148,163,184,.10); }
            .nwq-cal-ev.overdue { border-left-color:#dc2626; background:rgba(220,38,38,.08); }
            .nwq-cal-ev.today { border-left-color:#7c3aed; background:rgba(124,58,237,.08); }
            .nwq-cal-ev.upcoming { border-left-color:#1d4ed8; background:rgba(29,78,216,.07); }
            .nwq-cal-ev.done { border-left-color:#16a34a; background:rgba(22,163,74,.08);
              color:var(--nwq-mute); text-decoration:line-through; }
            .nwq-cal-cell.sel .nwq-cal-ev { background:rgba(255,255,255,.13); color:#fff; }
            .nwq-cal-cell.sel .nwq-cal-ev.done { color:rgba(255,255,255,.6); }
            .nwq-cal-more { font-size:10px; font-weight:700; color:var(--nwq-mute); padding-left:2px; }
            .nwq-cal-cell.sel .nwq-cal-more { color:rgba(255,255,255,.75); }

            /* แผงนัดของวันที่เลือก */
            .nwq-cal-day { position:sticky; top:10px; background:#fff; border:1px solid var(--nwq-line);
              border-radius:16px; padding:12px; box-shadow:0 1px 2px rgba(15,42,82,.05); }
            .nwq-cal-day-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap;
              background:radial-gradient(ellipse 60% 140% at 88% -30%, rgba(200,169,106,.25), transparent 60%),
                linear-gradient(165deg,#17396c,var(--brand-navy));
              color:#fff; border-radius:12px; border-top:2px solid var(--nwq-gold);
              padding:11px 14px; margin-bottom:11px; }
            .nwq-cal-day-h .d { font-size:14.5px; font-weight:800; line-height:1.25; }
            .nwq-cal-day-h .sub { font-size:11px; color:rgba(255,255,255,.72); font-variant-numeric:tabular-nums; }
            .nwq-cal-day-h .n { margin-left:auto; background:var(--nwq-gold); color:var(--brand-navy); border-radius:999px;
              padding:3px 11px; font-size:12px; font-weight:800; flex:none; font-variant-numeric:tabular-nums; }
            /* การ์ดนัดในแผงแคบ — ตัด chip วันที่ (ซ้ำกับหัวแผง) + ปุ่ม action ลงบรรทัดใหม่ */
            .nwq-cal-day .nw-appt-chip { display:none; }
            .nwq-cal-day .nw-appt-card { flex-wrap:wrap; }
            .nwq-cal-day .nw-appt-acts { width:100%; margin-top:4px; justify-content:flex-end; }
            .nw-appt-chip.done { background:rgba(22,163,74,.12); color:#16a34a; }
            .nw-appt-status.done { background:rgba(22,163,74,.12); color:#15803d; }

            @media (max-width:1024px) {
              #nwq-cal-wrap { grid-template-columns:1fr; }
              .nwq-cal-day { position:static; }
            }
            @media (max-width:880px) {
              .nwq-cal-main { padding:10px; border-radius:13px; }
              .nwq-cal-grid { gap:4px; }
              .nwq-cal-cell { min-height:52px; padding:4px 5px; border-radius:9px; }
              .nwq-cal-pill { font-size:9.5px; padding:1px 5px; }
              .nwq-cal-ev, .nwq-cal-more { display:none; } /* จอแคบ 7 คอลัมน์อ่านชื่อไม่ออก — เหลือ badge แตะดูรายชื่อแผงล่าง */
              .nwq-cal-stats { display:none; }
              .nwq-cal-leg { min-height:34px; }
              .nwq-amode { min-height:44px; }
            }
