/* Avilo — Orders module. Phone first (375px); every class starts with .ord- */

/* ---------- List screen ---------- */
.ord{padding-top:6px}
.ord .mod-head .btn{min-height:44px}
.ord-newbtn{margin:0 0 12px;min-height:54px;font-size:16.5px;border-radius:var(--r)}
.ord-search{position:relative;margin:0 0 10px}
.ord-search>.i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.ord-search input{padding-left:44px;padding-right:48px;border-radius:var(--r-pill);min-height:48px}
.ord-qx{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink-2);display:grid;place-items:center}
.ord .mod-tabs .chip .n{margin-left:2px}
.ord-latechip:not(.on){border-color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}
.ord-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:760px){.ord-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1200px){.ord-grid{grid-template-columns:repeat(3,1fr)}}
.ord-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-1);padding:14px 14px 12px;display:flex;flex-direction:column;gap:10px;cursor:pointer;
  transition:transform .15s var(--ease),box-shadow .15s;min-width:0}
@media (hover:hover){.ord-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}}
.ord-card:focus-visible{outline:3px solid var(--muted);outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.ord-card.late{border-color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line-2))}
.ord-card.dim{opacity:.66}
.ord-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ord-no{font:800 17px var(--font-head);margin-right:2px}
.ord-when{margin-left:auto;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.ord-card.late .ord-when{color:var(--danger)}
.ord-card-mid{display:flex;align-items:center;gap:10px;min-width:0}
.ord-card-mid .grow{flex:1;min-width:0}
.ord-cname{display:block;font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-card-mid small{display:block;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-pics{display:flex;flex:none}
.ord-pics span{width:44px;height:44px;border-radius:10px;overflow:hidden;background:var(--surface-2);border:2px solid var(--surface);margin-left:-12px;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ord-pics span:first-child{margin-left:0}
.ord-pics img{width:100%;height:100%;object-fit:cover}
.ord-pics .noimg span{display:none}
.ord-lchips{display:flex;flex-wrap:wrap;gap:6px}
.ord-lchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 10px;border-radius:var(--r-pill);background:var(--surface-2);font-size:12.5px;font-weight:600;color:var(--ink);min-width:0}
.ord-lchip i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}
.ord-lchip em{font-style:normal;font-weight:500;color:var(--muted);white-space:nowrap}
.ord-lchip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-red i{background:var(--danger)} .c-amber i{background:#D97706} .c-purple i{background:#7C3AED}
.c-green i{background:var(--ok)} .c-blue i{background:#2563EB} .c-gray i{background:var(--muted)}
.ord-card-foot{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.ord-call{min-height:44px;padding:8px 14px;font-weight:600;font-size:14px}
.ord-bal{font-size:13.5px;color:var(--ink-2);display:inline-flex;align-items:center;gap:5px;margin-left:auto}
.ord-bal b{font-size:15px;color:var(--ink)}
.ord-bal.due b{color:var(--danger)}
.ord-bal.clear{color:var(--ok);font-weight:600}
.ord-more{margin-top:14px}
.ord-skel{min-height:150px;cursor:default;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:ordShimmer 1.2s linear infinite}
@keyframes ordShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.ord-view .empty .i.lg{width:40px;height:40px;color:var(--muted)}
.ord-view .empty p{margin:4px 0 14px}

/* ---------- Shared bits ---------- */
.ord-noimg{width:100%;height:100%;display:grid;place-items:center;color:var(--brand);background:var(--brand-soft)}
.ord-pthumb{width:64px;height:64px;flex:none;border-radius:12px;overflow:hidden;background:var(--surface-2);border:0;padding:0;position:relative;display:block}
.ord-pthumb img{width:100%;height:100%;object-fit:cover}
.ord-pthumb[disabled]{cursor:default;opacity:1}
.ord-pthumb .noimg span{display:none}
.ord-npics{position:absolute;right:4px;bottom:4px;background:rgba(15,15,16,.75);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}
.ord-warn{display:flex;align-items:flex-start;gap:6px;color:#92400E;background:#FEF3C7;border-radius:var(--r-xs);padding:6px 9px;font-size:13px;font-weight:600;margin:6px 0 0;line-height:1.35}
.ord-warn .i{margin-top:1px}
:root[data-theme="dark"] .ord-warn{background:#3A2C10;color:#FCD34D}
.ord-kind{display:inline-flex !important;align-items:center;gap:5px;font-size:11.5px !important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--brand) !important}
.ord-kind.k-customize{color:#7C3AED !important}
.ord-kind.k-photo{color:#2563EB !important}
:root[data-theme="dark"] .ord-kind.k-customize{color:#C4B5FD !important}
:root[data-theme="dark"] .ord-kind.k-photo{color:#93B4FF !important}
.ord-spin{width:22px;height:22px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
.ord-loading{display:flex;align-items:center;gap:12px;justify-content:center;padding:48px 0;color:var(--muted);font-weight:600}
.ord-busy .sheet .bd,.ord-busy .sheet .ft{opacity:.6;pointer-events:none;transition:opacity .2s}
.ord-date{margin-top:12px}
.ord-date input{max-width:260px}

/* ---------- Big "add item" buttons ---------- */
.ord-addlbl{margin:4px 0 8px}
.ord-addbtns{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:640px){.ord-addbtns{grid-template-columns:repeat(3,1fr)}}
.ord-addbtn{display:flex;align-items:center;gap:14px;min-height:72px;padding:12px 16px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--surface);text-align:left;width:100%;
  transition:border-color .15s,background .15s,transform .1s}
.ord-addbtn:active{transform:scale(.98)}
.ord-addbtn:hover{border-color:var(--ink)}
.ord-addbtn>.i{width:30px;height:30px;padding:9px;box-sizing:content-box;border-radius:14px;flex:none;color:var(--brand);background:var(--brand-soft)}
.ord-addbtn.k-customize>.i{color:#7C3AED;background:#EDE9FE}
.ord-addbtn.k-photo>.i{color:#2563EB;background:#E0EAFF}
:root[data-theme="dark"] .ord-addbtn.k-customize>.i{color:#C4B5FD;background:#2A2145}
:root[data-theme="dark"] .ord-addbtn.k-photo>.i{color:#93B4FF;background:#1E2A4A}
.ord-addbtn b{display:block;font:700 16px var(--font-head)}
.ord-addbtn small{display:block;color:var(--muted);font-size:13px;line-height:1.3;margin-top:2px}
@media (min-width:640px){.ord-addbtn{flex-direction:column;align-items:flex-start;gap:10px}}
.ord-addbtns.small .ord-addbtn{min-height:64px}

/* ---------- New order ---------- */
.ord-nlines{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.ord-nlines:empty{display:none}
.ord-nline{display:grid;grid-template-columns:64px 1fr;gap:10px 12px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.ord-nline .grow{min-width:0}
.ord-nline b{display:block;font-size:15.5px;line-height:1.3}
.ord-nline small{display:block;color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.ord-nprice{display:block;margin-top:4px;font-weight:700;font-size:15px}
.ord-nprice em{font-style:normal;font-weight:500;color:var(--muted);font-size:13px}
.ord-nacts{grid-column:1/-1;display:flex;gap:8px}
.ord-nacts .btn{flex:1}
.ord-usesum{margin:-6px 0 10px;padding-left:4px;color:var(--brand)}
.ord-balrow{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface-2);font-size:14px;color:var(--ink-2)}
.ord-balrow:empty{display:none}
.ord-balrow b{color:var(--ink)}
.ord-balrow .due b{color:var(--danger)}
.ord-balrow .clear b{color:var(--ok)}
#nDays .chip .n,#pdChips .chip .n{opacity:.7;font-weight:500;margin-left:4px}

/* ---------- Item editor ---------- */
.ord-pcard{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:var(--r);background:var(--surface-2);margin-bottom:10px}
.ord-pcard .grow{min-width:0;flex:1}
.ord-pcard b{display:block;font-size:16px}
.ord-pcard small{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.ord-changes .chip{min-width:84px;justify-content:center}
.ord-fab{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px;background:var(--surface)}
.ord-fab img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.ord-fab .grow{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}
.ord-fabn{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap}
.ord-addfab{margin:0 0 14px}
.ord-qty{display:flex;align-items:center;gap:16px}
.ord-qty .btn.icon{width:52px;height:52px;font-size:22px;font-weight:700}
.ord-qty b{font:800 26px var(--font-head);min-width:36px;text-align:center}
.ord-bigph{grid-template-columns:1fr}
.ord-bigph label:first-child{min-height:64px;font-size:17px}
@media (min-width:480px){.ord-bigph{grid-template-columns:1.4fr 1fr}}

/* ---------- Order sheet ---------- */
.ord-foot{display:flex;gap:10px;width:100%;flex-wrap:wrap} /* r30 audit: side by side when they fit, stacked when not (no button off the screen) */
.ord-foot .btn{flex:1}
.ord-foot .btn.secondary{flex:1 1 auto;min-width:0}
.ord-saved{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;border-radius:var(--r);background:var(--ok-soft);color:var(--ink);margin:0 0 14px}
.ord-saved>.i{color:var(--ok)}
.ord-saved .grow{flex:1;min-width:180px}
.ord-saved b{display:block;font:800 17px var(--font-head)}
.ord-saved small{color:var(--ink-2)}
.ord-saved .btn{flex:1 1 100%}
@media (min-width:560px){.ord-saved .btn{flex:0 0 auto}}
.ord-d{display:grid;grid-template-columns:1fr;gap:0 24px}
@media (min-width:900px){.ord-d{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}
.ord-col{min-width:0}
.ord-dstat{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0 0 12px}
.ord-dstat small{color:var(--muted);font-size:13px}
.ord-h{display:flex;align-items:center;gap:8px;font-size:16px;margin:18px 0 10px}
.ord-h span{font:500 13px var(--font);color:var(--muted)}
.ord-bill .ord-h{margin-top:0}
.ord-client .ord-ctop{display:flex;gap:10px;align-items:flex-start}
.ord-client .grow{flex:1;min-width:0}
.ord-client .lbl{margin:0}
.ord-client .ord-cname{font-size:19px}
.ord-phone{display:inline-block;font-weight:700;font-size:16px;color:var(--ink);text-decoration:none;margin-top:2px}
.ord-client p{margin:6px 0 0;font-size:14px;overflow-wrap:anywhere}
.ord-cacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ord-cacts:empty{display:none}
.ord-cacts .btn{flex:1 1 0;min-width:96px;padding:10px 8px;text-decoration:none}
.ord-promise{display:flex;align-items:center;gap:12px}
.ord-promise>.i{width:26px;height:26px;color:var(--brand)}
.ord-promise .grow{flex:1;min-width:0}
.ord-promise .lbl{margin:0}
.ord-promise b{display:block;font-size:16px}
.ord-promise small{color:var(--muted);font-weight:600}
.ord-promise.late{border-color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:var(--danger-soft)}
.ord-promise.late small,.ord-promise.late>.i{color:var(--danger)}
.ord-line{border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:0 0 10px;background:var(--surface)}
.ord-line.is-cancelled{background:var(--surface-2);opacity:.7}
.ord-line.is-cancelled .ord-lname{text-decoration:line-through}
.ord-line-top{display:flex;gap:12px;align-items:flex-start}
.ord-line-top .grow{flex:1;min-width:0}
.ord-line-top small{display:block;color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.ord-lname{display:block;font-size:16px;line-height:1.3;margin:1px 0}
.ord-line-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;flex:none;max-width:42%}
.ord-price{font-size:15.5px}
.ord-price em{font-style:normal;font-weight:500;font-size:12.5px;color:var(--muted)}
.ord-line-right small{color:var(--muted);font-size:12px}
.ord-booked{align-items:center;flex-wrap:wrap;margin-top:10px}
.ord-booked .grow{flex:1;min-width:150px}
.ord-booked .btn{min-height:40px;padding:6px 12px}
.ord-desc{margin:10px 0 0;font-size:14.5px;white-space:pre-wrap;overflow-wrap:anywhere}
.ord-spec{margin-top:10px;font-size:13.5px;gap:4px 14px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2)}
.ord-line-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ord-line-acts .btn{min-height:44px;padding:8px 14px;font-size:14px;flex:1 1 auto}
.ord-line-acts .btn.plain{flex:0 1 auto}
.ord-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ord-nums>div{padding:10px;border-radius:var(--r-sm);background:var(--surface-2);min-width:0}
.ord-nums small{display:block;font-size:12px;font-weight:600;color:var(--muted)}
.ord-nums b{display:block;font:800 17px var(--font-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-nums em{display:block;font-style:normal;font-size:11px;color:var(--muted)}
.ord-nums .due{background:var(--danger-soft)}
.ord-nums .due b{color:var(--danger)}
.ord-nums .clear{background:var(--ok-soft)}
.ord-nums .clear b{color:var(--ok)}
.ord-billst{margin:12px 0 6px}
.ord-pays{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.ord-pays li{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line-2);font-size:14px}
.ord-pays li .grow{flex:1;min-width:0;overflow-wrap:anywhere}
.ord-pays small{display:block;color:var(--muted);font-size:12.5px}
.ord-pays .btn{min-height:40px;padding:6px 10px;font-size:13px}
.ord-billacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ord-billacts .btn{flex:1 1 auto}
.ord-billacts .btn.primary{flex:1 1 100%}
.ord-more-acts{display:flex;flex-direction:column;gap:8px}
.ord-more-acts .btn{justify-content:flex-start}
.ord-hist{list-style:none;margin:0;padding:0}
.ord-hist li{position:relative;padding:0 0 12px 18px;font-size:14px;overflow-wrap:anywhere}
.ord-hist li::before{content:"";position:absolute;left:3px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--line)}
.ord-hist li::after{content:"";position:absolute;left:6px;top:16px;bottom:0;width:1px;background:var(--line-2)}
.ord-hist li:last-child::after{display:none}
.ord-hist li:first-child::before{background:var(--brand)}
.ord-hist small{display:block;color:var(--muted);font-size:12.5px}
.ord-fullbal{margin-top:-4px}
@media (max-width:380px){
  .ord-nums b{font-size:15px}
  .ord-line-right{max-width:48%}
}

/* manager: tap targets ≥ 44px */
.ord-qx{width:44px;height:44px}
.ord-booked .btn,.ord-pays .btn{min-height:44px}

/* ---------- Phase 2: who has the order (assignee), Send to next, delivery choice ---------- */
.ord-with{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-2);margin-top:-4px}
.ord-with b{color:var(--ink)}
.ord-with small{color:var(--muted)}
.ord-with.me{color:var(--brand)}
.ord-with.me b{color:var(--brand)}
.ord-assign{display:flex;align-items:center;gap:12px}
.ord-assign>.i{width:26px;height:26px;color:var(--brand);flex:none}
.ord-assign .grow{flex:1;min-width:0}
.ord-assign .lbl{margin:0}
.ord-assign b{display:block;font-size:16px}
.ord-assign small{display:block;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.ord-assign.me{border-color:var(--brand);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:var(--brand-soft)}
.ord-assign .btn{min-height:44px;flex:none}
.ord-delivbox .ord-delivhead{display:flex;align-items:center;gap:12px}
.ord-delivbox .ord-delivhead>.i{width:26px;height:26px;color:var(--brand);flex:none}
.ord-delivbox .grow{flex:1;min-width:0}
.ord-delivbox .lbl{margin:0}
.ord-delivbox b{display:block;font-size:16px}
.ord-delivbox small{display:block;color:var(--muted);font-size:12.5px}
.ord-delivbox .chip{min-height:44px}
.ord-deliv{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:560px){.ord-deliv{grid-template-columns:1fr 1fr}}
.ord-delivbtn{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 16px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--surface);text-align:left;width:100%;transition:border-color .15s,background .15s,transform .1s}
.ord-delivbtn:active{transform:scale(.98)}
.ord-delivbtn>.i{width:26px;height:26px;padding:9px;box-sizing:content-box;border-radius:14px;flex:none;color:var(--brand);background:var(--brand-soft)}
.ord-delivbtn b{display:block;font:700 16px var(--font-head)}
.ord-delivbtn small{display:block;color:var(--muted);font-size:13px;line-height:1.3;margin-top:2px}
.ord-delivbtn.on{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.ord-delivbtn.on>.i{color:var(--bg);background:rgba(255,255,255,.14)}
.ord-delivbtn.on small{color:var(--line);color:color-mix(in srgb,var(--bg) 75%,transparent)}
.ord-rolechips .chip{min-height:40px}
.ord-people{margin-top:8px;max-height:46vh;overflow:auto}
.ord-people .item{min-height:56px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:6px;background:var(--surface)}
.ord-people .item.on{border-color:var(--ink);background:var(--surface-2)}
.ord-people .item .badge{margin-left:4px;vertical-align:middle}

/* ---------- Phase 2b: kinds of order, saved clients, hand-over history ---------- */
.ord-types{margin:-4px 0 12px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ord-types::-webkit-scrollbar{display:none}
.ord-types .chip{min-height:40px;white-space:nowrap}
@media (min-width:900px){.ord-types{flex-wrap:wrap;overflow-x:visible}} /* r32 M2 (desk PC, a mouse): every kind / made-where chip visible */
.ord-types .chip .n{margin-left:6px;font-weight:600;color:var(--muted)}
.ord-typerow{margin:-4px 0 0}
.ord-type{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:700;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.ord-type.t1{background:var(--ok-soft);color:var(--ok)}
.ord-type.t2{background:var(--sand-soft);color:var(--sand)}
.ord-type.t3{background:var(--accent-soft);color:var(--ink)}
.ord-dstat .ord-type{margin-left:2px}
.ord-pickc{min-height:48px;margin:0 0 12px}
.ord-linked{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:0 0 12px;border:1.5px solid var(--ok);border-radius:var(--r);background:var(--ok-soft)}
.ord-linked>.i{width:24px;height:24px;color:var(--ok);flex:none}
.ord-linked .grow{flex:1;min-width:0}
.ord-linked b{display:block;font-size:15px;overflow-wrap:anywhere}
.ord-linked small{display:block;color:var(--ink-2);font-size:12.5px}
.ord-linked .btn{min-height:44px;flex:none}
.ord-found{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;margin:-6px 0 12px;padding:10px 12px;border:1px dashed var(--brand);border-radius:var(--r);background:var(--brand-soft);text-align:left;color:var(--ink);cursor:pointer}
.ord-found>.i{color:var(--brand);flex:none}
.ord-found .grow{flex:1;min-width:0}
.ord-found b{display:block;font-size:15px}
.ord-found small{display:block;color:var(--ink-2);font-size:12.5px}
.ord-clientlink{margin-top:10px;min-height:44px}
.ord-assign{flex-wrap:wrap}
.ord-handoffs{flex-basis:100%;list-style:none;margin:6px 0 0;padding:10px 0 0;border-top:1px solid var(--line-2)}
.ord-handoffs li{position:relative;padding:0 0 10px 18px;font-size:13.5px;overflow-wrap:anywhere}
.ord-handoffs li::before{content:"";position:absolute;left:3px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--line)}
.ord-handoffs li:first-child::before{background:var(--brand)}
.ord-handoffs small{display:block;color:var(--muted);font-size:12px}
.ord-hoall{flex-basis:100%;justify-content:flex-start;min-height:40px;padding:0}
.ord-assign .ord-handoffs b{display:inline;font-size:inherit}
.ord-assign .ord-handoffs small{font-size:12px}

/* ---------- D1 fixes: 44px targets, sold price code on walk-in lines, factory jobs in My tasks ---------- */
.ord .mod-tabs .chip,.ord-types .chip,.ord-rolechips .chip,#nRoom .chip,#nDays .chip,#nMode .chip,#pdChips .chip,#apMode .chip,.ord-changes .chip{min-height:44px}
.ord-hoall{min-height:44px}
.ord-qx{min-width:44px;min-height:44px}
.ord-code{font:800 16px var(--font-head);letter-spacing:.04em;color:var(--brand)}
.ord-below{display:flex;align-items:center;gap:4px;margin:8px 0 0;font-size:12.5px;font-weight:700;color:#92400E}
:root[data-theme="dark"] .ord-below{color:#FCD34D}
.ord-jobs{margin:0 0 16px}
.ord-jobs .ord-h{margin-top:4px}
.ord-jcard{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px;text-align:left;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-1);cursor:pointer;color:inherit;min-width:0}
.ord-jcard.late{border-color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line-2))}
.ord-jcard .grow{flex:1;min-width:0}
.ord-jcard b{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-jcard small{display:block;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-jcard .ord-jno{font:800 15px var(--font-head);margin-right:6px}
.ord-jcard .ord-pthumb{width:56px;height:56px}
.ord-addfrom{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--brand)}
/* D8: the variant sold / ordered on an order line */
.ord-vchip{display:flex;width:fit-content;margin-top:4px}
/* franchise orders (BRIEF-v3 D5): "Franchise: <name>" tag + where head office delivers */
.ord-type.ord-fr{background:var(--surface-2);color:var(--ink-2);display:inline-flex;align-items:center;gap:4px;margin-left:6px;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.ord-frnote{display:flex;align-items:center;gap:6px;margin:6px 0 10px;color:var(--muted);font-size:13.5px}
.ord-frs{margin-top:6px}
/* BRIEF-v3 L4: promise box (amber when due in 0–2 days), "Send update to client" + its sheet */
.ord-promise.soon{border-color:#D97706;border-color:color-mix(in srgb,#D97706 45%,var(--line));background:#FEF3C7}
.ord-promise.soon small,.ord-promise.soon>.i{color:#92400E}
:root[data-theme="dark"] .ord-promise.soon{background:var(--sand-soft);background:color-mix(in srgb,#D97706 18%,var(--surface))}
:root[data-theme="dark"] .ord-promise.soon small,:root[data-theme="dark"] .ord-promise.soon>.i{color:#FCD34D}
.ord-updbtn{margin:0 0 14px;min-height:52px}
.ord-upd{display:flex;flex-direction:column;gap:10px}
.ord-upd>.hint{margin:0 0 2px}
.ord-updrow{display:flex;align-items:flex-start;gap:12px;padding:14px;min-height:64px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:inherit;text-decoration:none}
a.ord-updrow:active{background:var(--surface-2)}
.ord-updrow>svg{flex:none}
.ord-updrow>svg:first-child{width:22px;height:22px;margin-top:1px;color:#16A34A}
.ord-updrow>svg:last-child:not(:first-child){align-self:center;color:var(--muted)}
.ord-upddelay>svg:first-child{color:var(--brand)}
.ord-updrow .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ord-updrow b{font-size:16px}
.ord-updrow small{color:var(--muted);font-size:13px}
.ord-updrow.wait{opacity:.72}
.ord-updtext{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;background:var(--surface-2);border-radius:var(--r-sm);padding:8px 10px}
.ord-upddelay .chips .chip{min-height:44px}
.ord-upddelay .ord-date{margin-top:0}
/* Round 4 — cancel order: the confirm sheet's item list, the note shown in place of the button, billing's refund task */
.ord-cancel-items{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ord-cancel-items li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-2)}
.ord-cancel-items b{font-size:15px}
.ord-cancel-items b small{font-weight:500;color:var(--muted)}
.ord-cancel-items span{font-size:13.5px;color:var(--ink-2)}
.ord-cancel-pay{margin:12px 0 0}
.ord-cancelnote{display:flex;gap:8px;align-items:flex-start;margin:4px 0 0;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:14px}
.ord-cancelnote .i{flex:none;margin-top:2px;color:var(--muted)}
.ord-refund{margin:12px 0 0;padding:10px 12px;border-radius:var(--r-sm);background:var(--danger-soft);color:var(--ink)}
.ord-refund p{display:flex;gap:8px;align-items:flex-start;margin:0}
.ord-refund p .i,.ord-refund > .i{flex:none;margin-top:2px;color:var(--danger)}
.ord-refund small{display:block;color:var(--ink-2);font-size:13px;margin-top:2px}
.ord-refund .ord-billacts{margin-top:10px}
.ord-refund.done{display:flex;gap:8px;align-items:center;background:var(--ok-soft);font-size:14px}
.ord-refund.done > .i{color:var(--ok)}
.ord-refund.done span{flex:1;min-width:0}

/* ---- R15 (BRIEF-r15) ---- */
/* R15-1 #2: searching every order */
.ord-searchnote{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;border-radius:var(--r-sm);background:var(--sand-soft);color:var(--ink-2);font-size:13.5px}
.ord-billreq{text-transform:none}
/* R15-1 #6: the check line under the bill numbers (codes only) */
.ord-check{display:flex;align-items:center;gap:8px;margin:8px 0 2px;padding:8px 10px;border-radius:var(--r-sm);background:var(--surface-2);font-size:13.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.ord-check .i{flex:none;color:var(--ok)}
.ord-check.warn .i{color:var(--danger)} /* r30 audit: no green while the total is missing */
/* R15-1 #9: "The billing desk makes the bill" + Ask billing for the bill */
.ord-askbill{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px;padding:10px 12px;border-radius:var(--r-sm);background:var(--sand-soft);color:var(--ink-2);font-size:14px}
.ord-askbill .grow{flex:1;min-width:160px}
.ord-askbill .btn{min-height:44px}
.ord-askbill.asked{background:var(--surface-2)}
.ord-askbill.asked .i{color:var(--ok)}
/* R15-1 #4: the one "Send on WhatsApp" chooser */
.ord-wapick .item .i{flex:none;width:22px;height:22px}
/* r20: who confirmed a delivery / hand-over / piece check; the delivery / fitting line; waiting at the order desk */
.ord-who{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;color:var(--ok)}
.ord-charge .ord-pthumb{display:grid;place-items:center;background:var(--surface-2)}
.ord-addcharge{margin:4px 0 12px}
.ord-atdesk{background:var(--sand-soft)}

/* ---- r32 (2026-10-13): Ritika's order desk — New order in her words, two dates, sales person, Link it, vendor steps, Order form ---- */
/* Chrome 109 floor: plain colours only (no color-mix without a plain line first), no CSS nesting, no text-wrap. */
.ord-new .chips .chip{min-height:48px} /* 360 px: every chip a 48 px target */
.ord-desklink{margin:-4px 0 12px;min-height:48px;justify-content:flex-start;text-align:left;gap:10px}
.ord-desklink small{display:block;color:var(--muted);font-size:12.5px;font-weight:500}
/* r38.4: the photos are read — status line + Read the photos / Use these items (48 px) */
.ord-read{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0}
.ord-read:empty{display:none}
.ord-readst{flex:1 1 100%;display:flex;align-items:center;gap:8px;margin:0;font-size:13.5px;color:var(--ink-2)}
.ord-readst.ok{color:var(--ink)}
.ord-readst .spin{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex:none}
.ord-readbtn,.ord-readuse{min-height:48px}
/* r38.3: the order desk's New order — Items / Delivery / Dates folded under one line (filled in from the photos) */
.ord-more{border:1px solid var(--line);border-radius:var(--r);margin:0 0 14px;background:var(--surface-2)}
.ord-more summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;cursor:pointer;list-style:none}
.ord-more summary::-webkit-details-marker{display:none}
.ord-more summary .grow{flex:1;min-width:0}
.ord-more summary b{display:block;font-size:15px}
.ord-more summary small{display:block;color:var(--muted);font-size:12.5px;white-space:normal}
.ord-more[open] summary{border-bottom:1px solid var(--line)}
.ord-more[open] summary .i:last-child{transform:rotate(90deg)}
.ord-more>.fsec{padding:12px 12px 0}
/* r38: New order — "The items are in the attached file" (one tap puts the order on one factory line; shows only with a file / photo attached and no item typed) */
.ord-formonly{margin:0 0 12px;min-height:56px;justify-content:flex-start;text-align:left;gap:10px;border:1px dashed var(--brand)}
.ord-formonly .grow{flex:1;min-width:0}
.ord-formonly small{display:block;color:var(--muted);font-size:12.5px;font-weight:500;white-space:normal}
/* item picker: ITEM → How → Where */
.ord-pick{display:flex;flex-direction:column;gap:12px}
.ord-pickrow .lbl{margin:0 0 6px}
.ord-itemchips .chip,.ord-howchips .chip,.ord-wherechips .chip{min-height:48px}
.ord-itemchip .i{color:var(--brand)}
.ord-itemchip.on .i{color:var(--bg)}
.ord-howchip,.ord-wherechip{flex-direction:column;align-items:flex-start;gap:0;padding:8px 14px;min-width:120px}
.ord-howchip small,.ord-wherechip small{display:block;font-size:11.5px;font-weight:500;color:var(--muted);line-height:1.2;margin-top:1px}
.ord-howchip.on small,.ord-wherechip.on small{color:var(--line);opacity:.85}
.ord-howchip .i,.ord-wherechip .i{position:absolute;right:10px;top:10px;width:16px;height:16px;color:var(--muted)}
.ord-howchip,.ord-wherechip{position:relative;padding-right:34px}
.ord-howchip.k-customised .i{color:#7C3AED}
.ord-howchip.k-ready .i{color:var(--ok)}
.ord-howchip.k-imported .i{color:#2563EB}
.ord-howchip.on .i,.ord-wherechip.on .i{color:var(--bg)}
.ord-basedon{margin:8px 0 0;padding-left:2px;color:var(--brand);min-height:44px}
.ord-othertype{margin:10px 0 0}
.ord-othertype input{text-transform:uppercase}
@media (min-width:640px){.ord-howchip,.ord-wherechip{min-width:150px}}
/* short item form */
.ord-shorthead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ord-shorthead .grow{flex:1;min-width:140px}
.ord-shorthead b{display:block;font:700 18px var(--font-head)}
.ord-shorthead small{display:block;color:var(--muted);font-size:13px}
.ord-shortname{flex-basis:100%;margin:6px 0 0}
.ord-itemic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:var(--brand);background:var(--brand-soft);flex:none}
.ord-itemic .i{width:26px;height:26px}
.ord-impnote{display:flex;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:14px}
.ord-impnote .i{flex:none;margin-top:2px;color:var(--muted)}
.ord-madechips .ord-wherechip{min-height:52px}
/* vendor row + picker */
.ord-vendorrow{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:10px 12px;border:1px dashed var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.ord-vendorrow>.i{flex:none;color:var(--brand)}
.ord-vendorrow .grow{flex:1;min-width:0}
.ord-vendorrow b{display:block;font-size:15px}
.ord-vendorrow small{display:block;color:var(--muted);font-size:12.5px}
.ord-vendorrow .btn{min-height:44px;flex:none}
.ord-vendors{margin-top:10px;max-height:52vh;overflow:auto}
.ord-vendors .item{min-height:56px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:6px;background:var(--surface)}
.ord-vendors .item.on{border-color:var(--ink);background:var(--surface-2)}
.ord-vendors .item.off{opacity:.6}
.ord-vendors .item b{font-size:16px}
.ord-vendors .item small{display:block;color:var(--muted);font-size:12.5px}
.ord-noshort{font-weight:500;color:var(--muted)}
/* new order: contact person, pincode, order date, sales person, link-it */
.ord-contact{margin:0 0 4px}
.ord-pin input{max-width:180px}
.ord-odate .chips,.ord-sales .chips{margin-top:4px}
.ord-odate>span,.ord-sales>span{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 4px}
.ord-odatepick{margin-top:10px}
.ord-sales .hint{margin:6px 0 0}
.ord-linkit{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;margin:-4px 0 12px;padding:10px 12px;border:1.5px solid var(--sand);border-radius:var(--r);background:var(--sand-soft);color:var(--ink)}
.ord-linkit>.i{color:var(--sand);flex:none;width:24px;height:24px}
.ord-linkit .grow{flex:1;min-width:0}
.ord-linkit b{display:block;font-size:15px;overflow-wrap:anywhere}
.ord-linkit small{display:block;color:var(--ink-2);font-size:12.5px}
.ord-linkit .btn{min-height:44px;flex:none}
.ord-linkit.on{border-color:var(--ok);background:var(--ok-soft)}
.ord-linkit.on>.i{color:var(--ok)}
/* dates */
.ord-dates .field>span:first-child{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 4px}
.ord-dates .field{margin-bottom:12px}
.ord-dates .hint.err{color:var(--danger);font-weight:600}
#nFDays .chip .n{opacity:.7;font-weight:500;margin-left:4px}
/* order page: desk box (order date · sales person), factory due, remark, contact */
.ord-deskbox{display:flex;flex-direction:column;gap:12px}
.ord-deskrow{display:flex;align-items:center;gap:12px}
.ord-deskrow>.i{width:26px;height:26px;color:var(--brand);flex:none}
.ord-deskrow .grow{flex:1;min-width:0}
.ord-deskrow .lbl{margin:0}
.ord-deskrow b{display:block;font-size:16px}
.ord-deskrow small{display:block;color:var(--muted);font-size:12.5px}
.ord-deskrow .btn{min-height:44px;flex:none}
.ord-fdue>.i{color:var(--ink-2)}
.ord-remark{display:flex;align-items:flex-start;gap:8px;margin:-6px 0 12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--sand-soft);color:var(--ink);font-size:14px}
.ord-remark>.i{flex:none;margin-top:3px;color:var(--sand)}
.ord-remark span{flex:1;min-width:0;overflow-wrap:anywhere}
.ord-remark .btn{min-height:40px;padding:0 8px;flex:none}
.ord-contact{display:flex;align-items:center;gap:6px;font-weight:600}
.ord-client .ord-contact{margin:6px 0 0}
/* line card: ready badge, vendor tag, vendor steps */
.ord-readybadge{margin-left:6px;vertical-align:middle;text-transform:none}
.ord-vendortag{margin-left:6px;vertical-align:middle;background:var(--surface-2);color:var(--ink-2);text-transform:none}
.ord-steps{margin-top:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2)}
.ord-steps.has-problem{background:var(--danger-soft)}
.ord-steprow{display:flex;flex-wrap:wrap;gap:6px}
.ord-step{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--muted)}
.ord-step.done{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}
.ord-step.bad{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}
.ord-step small{font-weight:500;color:inherit;opacity:.8;margin-left:2px}
.ord-novendor{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--sand)}
.ord-stepacts{margin-top:10px}
.ord-stepacts .btn{min-height:44px}
/* Order form sheet + vendor message */
.ord-form .ord-cancelnote{margin:0 0 10px}
.ord-formtext{margin:0 0 10px;padding:12px;border-radius:var(--r-sm);background:var(--surface-2);font:13.5px/1.5 var(--font);white-space:pre-wrap;overflow-wrap:anywhere;max-height:46vh;overflow:auto}
/* the desk's side panel is docked by desk.css (body[data-view="desk"] .scrim …) — one rule set only (fixer, REVIEW-designer #18) */
.ord-new #nRoom .chip,.ord-new #nDays .chip,.ord-new #nMode .chip,.ord-new #nFDays .chip,.ord-new #nODate .chip,.ord-new #nSales .chip,.ord-new #nCtype .chip{min-height:48px} /* beats the D1 id rule above: 48 px on the phone */
/* r35: Add photo on every New order item row · Attach file (client's sketch / paper order) — 48 px, 360 px safe */
.ord-nlphs{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.ord-nlphs .ph-tile{max-width:96px}
.ord-nacts{flex-wrap:wrap}
.ord-nacts .btn,.ord-attbtn{min-height:48px}
.ord-addph{cursor:pointer}
.ord-attach .photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin:0 0 10px}
.ord-attach .ph-tile{max-width:120px}
.ord-attach .ph-tile img{cursor:zoom-in}
.ord-attbtn{width:100%;cursor:pointer}
@media (min-width:700px){.ord-attbtn{width:auto}}
/* r36.3: the New order Photos block (top of the form) — big Add photos, count, progress, 48 px remove */
.ord-photos h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ord-phcount{margin-left:auto;font-size:14px;font-weight:700;color:var(--accent,#2563eb)}
.ord-phhint{margin:-4px 0 10px}
.ord-addphotos{width:100%;min-height:56px;font-size:16px;justify-content:center}
.ord-addphotos.off{opacity:.5;pointer-events:none}
.ord-phprog{margin:6px 0 8px;min-height:0}
.ord-phprog:empty{display:none}
.ord-photos .photos{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
.ord-photos .ph-tile .rm{top:0;right:0;width:48px;height:48px;border-radius:0 0 0 14px}

/* ---------- r35 desktop (owner 2026-10-17: "on desktop it looks like the mobile") — layout only, ≥1024 px ----------
   New order on a PC (Ritika's order desk work): a wide dialog instead of the 640 px phone column — Client on the left,
   items / delivery / dates / remark / files on the right. A float (not a grid) so the right side grows on its own as
   items are added and nothing jumps between the columns. Not on the Order desk view: there the sheet docks at 540 px
   beside the table (desk.css). Phones (< 1024 px) are untouched. Chrome 109: :has() is 105+, no nesting. */
@media (min-width:1024px){
  body:not([data-view="desk"]) .scrim>.sheet.full:has(>.bd>.ord-new){max-width:1040px}
  body:not([data-view="desk"]) .sheet .bd>.ord-new{display:flow-root}
  body:not([data-view="desk"]) .ord-new>.fsec:has(#nPhone){float:left;width:calc(50% - 18px);margin-bottom:0;border-bottom:0;padding-bottom:4px}
  body:not([data-view="desk"]) .ord-new>:not(#nRestore):not(.fsec:has(#nPhone)){margin-left:calc(50% + 18px)}
}
