/* 27 Oct 2026 UI polish (display only) */
.tsw,.regw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tsl{border-collapse:collapse;width:100%}.tsl th,.tsl td{padding:4px 6px;text-align:left;border-bottom:1px solid var(--bd,#ddd)}
@media (max-width:640px){.tsl tr:first-child{display:none}.tsl,.tsl tbody,.tsl tr,.tsl td{display:block;width:100%}
.tsl tr{border:1px solid var(--bd,#ddd);border-radius:8px;margin:0 0 8px;padding:6px 8px}.tsl td{border:0;padding:2px 0;display:flex;gap:8px}
.tsl td[data-l]::before{content:attr(data-l);min-width:64px;color:#777;font-size:12px}}
ul.pol{margin:0;padding-left:16px;font-size:12px;min-width:180px}ul.pol li{margin:1px 0}
details.regadd{margin:8px 0}details.regadd[open]>.grid{margin-top:8px}details.regadd>summary{list-style:none;display:inline-block}
/* en-ZA date display over native date inputs; stored value stays ISO yyyy-mm-dd */
.dfx{position:relative;display:inline-block;max-width:100%}.dfx>input{width:100%}
.dfx>input:not(:focus){color:transparent}.dfx>input:not(:focus)::-webkit-datetime-edit{opacity:0}
.dfx>.dfx-t{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:inherit;white-space:nowrap}
.dfx>.dfx-t.ph{color:#999}.dfx>input:focus+.dfx-t{display:none}
/* board drag (27 Oct 2026): full-width scroll, touch long-press drag ghost */
.board{max-width:100%;overscroll-behavior-x:contain}.board::after{content:'';flex:0 0 8px}
.card.drag-ghost{position:fixed;z-index:50;pointer-events:none;opacity:.9;box-shadow:0 8px 20px rgba(0,0,0,.25);transform:rotate(2deg)}
.card.dragging{opacity:.4}.board .card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
/* accordions (27 Oct 2026) */
.acc-h{cursor:pointer;user-select:none;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:0;padding:8px 0;min-height:36px}
.acc-h:focus-visible{outline:2px solid var(--red,#C8102E);outline-offset:2px}
.acc-c::before{content:'\25B8';display:inline-block;width:12px;transition:transform .15s}.acc-open>.acc-h .acc-c::before{transform:rotate(90deg)}
.acc-s{font-weight:400;color:#6b7280;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;flex:1 1 0;min-width:0}
.sec[data-acc-done]{border-bottom:1px solid var(--bd,#e5e7eb);padding-bottom:0}.sec[data-acc-done].acc-open{padding-bottom:8px}
.job .sec{margin:4px 0 0}.job .sec .acc-h{font-size:14px}
/* quotes list, duplicates (27 Oct 2026) */
.qlist{margin:4px 0 10px}.qtab td{vertical-align:top}.qtab tr.qdec td{opacity:.55;text-decoration:line-through}.qtab tr.qdec td select{text-decoration:none}
.card .qn{display:inline-block;font-size:11px;background:#eef2ff;color:#3730a3;border-radius:8px;padding:0 6px;margin-left:4px}
.dupwarn{border:1px solid #f59e0b;background:#fffbeb;border-radius:8px;padding:10px 12px;margin:10px 0}.dupwarn ul{margin:6px 0;padding-left:18px}
.dupg{border:1px solid var(--bd,#e5e7eb);border-radius:8px;padding:8px 10px;margin:8px 0}.dupd{display:block;padding:4px 0;font-weight:400}
.nd .grid label{display:flex;flex-direction:column}
