/* ===========================================================
   MAX3 Momentum OS — Retail section styles
   Ported from the staff-side Retail mockup, mapped onto the MAX3
   tokens and isolated under .retail with an rt- class prefix so
   nothing collides with the shell / other screens.
   =========================================================== */
.retail{
  /* map the mockup's palette onto the MAX3 brand tokens */
  --lime:var(--m3-lime);--lime-dim:#95c43a;--red:var(--m3-red);--amber:var(--m3-amber);--blue:var(--m3-blue);
  --bg0:var(--m3-bg);--bg1:var(--m3-surface);--bg2:var(--m3-surface-2);--bg3:#333333;
  --text0:var(--m3-text);--text1:var(--m3-text-2);--text2:var(--m3-text-3);--line:var(--m3-line);--line2:#3F3F3F;
  display:flex;flex-direction:column;min-width:0;flex:1;min-height:0;overflow:hidden;height:100%;
  font-size:13px;
}

/* tab bar + header actions */
.rt-tabs{flex:0 0 auto;display:flex;align-items:center;height:46px;padding:0 16px;border-bottom:1px solid var(--line);gap:0}
.rt-tab{height:46px;padding:0 16px;display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--text2);
  cursor:pointer;border-bottom:2px solid transparent;transition:color .12s;white-space:nowrap;background:none;border-top:0;border-left:0;border-right:0}
.rt-tab:hover{color:var(--text1)}
.rt-tab.active{color:var(--lime);border-bottom-color:var(--lime)}
.rt-tab .rt-pcount{background:var(--m3-amber-wash);color:var(--amber);font-size:10px;font-weight:800;padding:1px 6px;border-radius:10px}
.rt-hdr-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.rt-content{flex:1;display:flex;overflow:hidden;position:relative;min-height:0}

/* buttons */
.rt-btn{height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--line2);background:transparent;color:var(--text1);
  font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .12s,color .12s;font-family:var(--ff)}
.rt-btn:hover{background:var(--bg2);color:var(--text0)}
.rt-btn-primary{background:var(--lime);border-color:var(--lime);color:#15200a;font-weight:700}
.rt-btn-primary:hover{background:var(--lime-dim)}
.rt-btn-sm{height:26px;padding:0 10px;font-size:11px}
.rt-btn-danger{border-color:rgba(204,34,34,.35);color:#ee6666}
.rt-btn-danger:hover{background:rgba(204,34,34,.08)}
.rt-ic{display:inline-flex;align-items:center}

.rt-panel{display:none;width:100%;overflow:hidden}
.rt-panel.active{display:flex}

/* ===================== POS ===================== */
.rt-pos{display:flex;width:100%;overflow:hidden}
.rt-pos-left{flex:3;min-width:0;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
.rt-search{padding:10px 12px;border-bottom:1px solid var(--line);flex-shrink:0;display:flex;flex-direction:column;gap:7px}
.rt-search-row{display:flex;align-items:center;gap:8px}
.rt-search-lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);width:64px;flex-shrink:0} /* sized for "STUDENT" */
.rt-search-lbl.rt-item-lbl{color:var(--lime)}
.rt-family-chip{flex:1;display:flex;align-items:center;gap:7px;background:var(--bg2);border:1px solid var(--lime);border-radius:6px;padding:4px 9px;min-height:34px} /* grows to two lines for student-attached sales */
.rt-cust-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}
.rt-av-img{width:100%;height:100%;object-fit:cover;border-radius:50%} /* student profile photo (live) — initials fallback */
.rt-cust-nm{font-size:13px;font-weight:600;flex:1;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-cust-stu{font-size:11px;color:var(--text2);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} /* FD-CP20-S6: student-attached sale — family subline */
.rt-cust-sb{font-size:12px;color:var(--text2)}
.rt-cust-x{color:var(--text2);cursor:pointer;font-size:14px;line-height:1}
.rt-cust-x:hover{color:var(--text0)}
.rt-sinput-wrap{flex:1;position:relative}
.rt-sinput{width:100%;height:34px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text0);font-size:13px;padding:0 8px 0 30px;outline:none;font-family:var(--ff);transition:border-color .15s}
.rt-sinput:focus{border-color:var(--lime)}
.rt-sinput::placeholder{color:var(--text2)}
.rt-si-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text2);pointer-events:none;display:flex}
.rt-sdd{position:absolute;top:calc(100% + 3px);left:0;right:0;background:var(--bg1);border:1px solid var(--line2);border-radius:8px;z-index:60;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.5)}
.rt-dd-item{padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .12s}
.rt-dd-item:hover{background:var(--bg2)}
.rt-dd-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;color:#fff;overflow:hidden}
.rt-dd-th{width:28px;height:28px;border-radius:4px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.rt-dd-nm{font-size:13px;font-weight:600;color:var(--text0)}
.rt-dd-sb{font-size:12px;color:var(--text2)}
.rt-dd-pr{margin-left:auto;flex-shrink:0;text-align:right}

/* new contact inline form */
.rt-nc{background:var(--bg2);border:1px solid rgba(170,221,68,.4);border-radius:8px;padding:12px;margin-top:2px}
.rt-nc-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--lime);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.rt-nc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.rt-nc-k{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:3px}
.rt-nc-k .req{color:var(--red)}
.rt-nc .rt-sinput{height:30px;font-size:12px;padding-left:10px}
.rt-nc-note{font-size:11px;color:var(--text2);line-height:1.4;margin:2px 0 10px;padding:7px 9px;border:1px dashed var(--line);border-radius:6px} /* live: what Create actually does */
.rt-nc-fams{border:1px solid var(--line);border-radius:6px;margin-top:4px;overflow:hidden}
.rt-nc-famrow{padding:7px 10px;font-size:12px;cursor:pointer;border-bottom:1px solid var(--line)}
.rt-nc-famrow:last-child{border-bottom:none}
.rt-nc-famrow:hover{background:var(--bg2)}
.rt-nc-famsel{display:flex;align-items:center;justify-content:space-between;gap:8px;height:30px;padding:0 10px;font-size:12px;font-weight:600;background:var(--bg2);border:1px solid var(--lime);border-radius:6px}
.rt-nc-dup{font-size:11px;color:var(--amber,#F5A623);line-height:1.4;margin:-4px 0 10px;padding:6px 9px;border:1px dashed rgba(245,166,35,.45);border-radius:6px} /* findDuplicate warn — never blocks */
.rt-nc select.rt-sinput{font-family:var(--ff)}

.rt-cat-tabs{display:flex;padding:8px 12px;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0;gap:0}
.rt-cat-tabs::-webkit-scrollbar{display:none}
.rt-cat-tab{padding:4px 12px;border-radius:20px;font-size:13px;color:var(--text2);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s;border:1px solid transparent;background:none}
/* C5 — POS folders bound to RETAIL_CATS: tab + tile category color */
.rt-cat-tab .rt-catdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}
.rt-prod-catdot{position:absolute;top:6px;left:6px;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 2px rgba(0,0,0,.4)}
.rt-cat-tab:hover{background:var(--bg2);color:var(--text1)}
.rt-cat-tab.active{background:var(--bg2);color:var(--lime)}
.rt-cat-tab.pkg{color:var(--amber);border:1px solid rgba(245,166,35,.25)}
.rt-cat-tab.pkg.active{background:rgba(245,166,35,.1);color:var(--amber)}

.rt-grid{flex:1;overflow-y:auto;padding:12px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;align-content:start}
.rt-card{background:var(--bg2);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .12s,background .12s;overflow:hidden;text-align:left;padding:0;font-family:var(--ff)}
.rt-card:hover{border-color:var(--line2);background:#313131}
.rt-card.oos{opacity:.4;pointer-events:none}
.rt-prod-img{width:100%;aspect-ratio:1;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:32px;position:relative}
/* FD-CP19: tile shows the primary product photo when one exists (badges/dot overlay on top) */
.rt-prod-img.has-photo{background-size:cover;background-position:center}
.rt-prod-bdg{position:absolute;bottom:4px;left:4px;font-size:10px;font-weight:800;padding:2px 6px;border-radius:3px}
.rt-bdg-oos{background:rgba(204,34,34,.85);color:#fff}
.rt-bdg-low{background:rgba(245,166,35,.85);color:#15200a}
.rt-prod-save{position:absolute;top:4px;left:4px;font-size:10px;font-weight:800;background:rgba(245,166,35,.9);color:#15200a;padding:2px 6px;border-radius:3px}
.rt-prod-info{padding:8px 10px}
.rt-prod-name{font-size:12px;font-weight:600;color:var(--text0);line-height:1.3;margin-bottom:3px}
.rt-prod-pr-row{display:flex;align-items:baseline;gap:5px}
.rt-prod-price{font-size:13px;color:var(--lime);font-weight:800}
.rt-prod-compare{font-size:11px;color:var(--text2);text-decoration:line-through}

.rt-pos-right{flex:2;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.rt-cart-hdr{padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;color:var(--text1);display:flex;align-items:center;gap:8px;flex-shrink:0}
.rt-cart-count{font-size:12px;color:var(--text2);font-weight:600}
.rt-walkup{display:flex;align-items:center;gap:7px;padding:6px 14px;background:rgba(245,166,35,.07);border-bottom:1px solid rgba(245,166,35,.15);font-size:12px;color:var(--amber);flex-shrink:0}
/* FD-CP98 — "attach a customer" cue when a sale has items but no customer */
.rt-nocust{display:flex;align-items:center;gap:7px;margin-top:8px;padding:7px 10px;border-radius:6px;background:rgba(245,166,35,.08);border:1px solid rgba(245,166,35,.25);font-size:12px;line-height:1.35;color:var(--amber)}
.rt-cart-colhd{display:flex;align-items:center;padding:4px 13px;border-bottom:1px solid var(--line);background:var(--bg1);flex-shrink:0}
.rt-cart-colhd .a{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);width:16px;text-align:center;flex-shrink:0;margin-right:8px}
.rt-cart-colhd .b{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);padding-left:36px}
.rt-cart-scroll{flex:1;overflow-y:auto}
.rt-cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:140px;color:var(--text2);gap:8px;padding:16px}
.rt-cart-empty .ic{font-size:26px;opacity:.6}
.rt-cart-empty p{font-size:12px;text-align:center;line-height:1.4}
.rt-cart-item{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid var(--line)}
.rt-cart-item.evt{border-left:2px solid rgba(59,158,232,.4);padding-left:11px;background:rgba(59,158,232,.03)}
.rt-cart-item.pkgitem{border-left:2px solid rgba(245,166,35,.25);padding-left:11px;background:rgba(245,166,35,.01)}
.rt-cart-item.compitem{border-left:2px solid rgba(170,221,68,.3);padding-left:11px;background:rgba(170,221,68,.025)}
.rt-comp-tag{font-size:9px;font-weight:800;text-transform:uppercase;color:var(--lime);background:rgba(170,221,68,.12);border:1px solid rgba(170,221,68,.25);border-radius:3px;padding:1px 5px}
.rt-cb{width:16px;height:16px;border-radius:3px;border:1.5px solid var(--line2);background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;transition:border-color .12s,background .12s}
.rt-cb:checked{background:var(--lime);border-color:var(--lime)}
.rt-cb:checked::after{content:'✓';position:absolute;font-size:10px;color:#15200a;font-weight:800;top:50%;left:50%;transform:translate(-50%,-50%)}
.rt-cart-th{width:36px;height:36px;border-radius:6px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.rt-cart-body{flex:1;min-width:0}
.rt-cart-name{font-size:13px;font-weight:600;color:var(--text0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-cart-name.done{text-decoration:line-through;color:var(--text2)}
.rt-cart-var{font-size:11px;color:var(--text2)}
.rt-cart-qty{display:flex;align-items:center;gap:5px;margin-top:4px}
.rt-qty-btn{width:20px;height:20px;background:var(--bg3);border:1px solid var(--line2);border-radius:3px;color:var(--text0);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center}
.rt-qty-btn:hover{background:var(--line2)}
.rt-qty-val{font-size:12px;min-width:16px;text-align:center}
.rt-cart-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.rt-cart-price{font-size:13px;font-weight:700}
.rt-cart-price.done{color:var(--lime)}
.rt-cart-rm{color:var(--text2);cursor:pointer;font-size:13px;display:flex}
.rt-cart-rm:hover{color:var(--red)}
.rt-evt-tag{font-size:9px;font-weight:800;text-transform:uppercase;color:var(--blue);background:rgba(59,158,232,.12);border:1px solid rgba(59,158,232,.2);border-radius:3px;padding:1px 5px}
.rt-pkg-grouphd{display:flex;align-items:center;gap:6px;padding:6px 13px 4px;background:rgba(245,166,35,.05);border-bottom:1px solid rgba(245,166,35,.1)}
.rt-pkg-grouphd span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--amber)}
.rt-pkg-total{display:flex;align-items:center;gap:10px;padding:8px 13px;background:rgba(245,166,35,.06);border-top:1px solid rgba(245,166,35,.15);border-bottom:1px solid var(--line)}

.rt-pos-footer{border-top:1px solid var(--line);padding:12px 14px;flex-shrink:0}
.rt-disc-row{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.rt-disc-lbl{font-size:12px;color:var(--text2);width:56px}
.rt-disc-inp{width:58px;height:28px;background:var(--bg2);border:1px solid var(--line2);border-radius:4px;color:var(--text0);font-size:13px;padding:0 8px;outline:none;font-family:var(--ff)}
.rt-disc-tog{display:flex;background:var(--bg2);border:1px solid var(--line2);border-radius:4px;overflow:hidden}
.rt-disc-opt{padding:3px 8px;font-size:12px;cursor:pointer;color:var(--text2);transition:background .12s,color .12s}
.rt-disc-opt.active{background:var(--bg3);color:var(--text0)}
.rt-totals{margin-bottom:10px}
.rt-total-row{display:flex;justify-content:space-between;padding:3px 0;font-size:13px;color:var(--text2)}
.rt-total-row.disc span{color:var(--lime)}
.rt-total-row.rt-route{font-size:10.5px;color:var(--text2);border-top:1px dashed var(--line2);padding-top:7px;margin-top:3px;line-height:1.45;text-wrap:pretty}
.rt-total-row.rt-route b{color:var(--text1)}
.rt-comb{display:inline-flex;margin-left:7px;font-size:9.5px;font-weight:700;color:var(--text2);border:1px dashed var(--line2);border-radius:5px;padding:1px 6px;vertical-align:1px}
.rt-ev-combnote{margin:10px 20px 0;padding:8px 11px;font-size:11px;color:var(--text1);border:1px dashed var(--line2);border-radius:7px;line-height:1.45;text-wrap:pretty}
.rt-total-row.grand{font-size:16px;font-weight:700;color:var(--text0);padding-top:7px;margin-top:6px;border-top:1px solid var(--line2)}
.rt-pay-methods{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px}
.rt-pay-method{height:36px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px;color:var(--text1);cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.rt-pay-method:hover{background:var(--bg3)}
.rt-pay-method.active{background:rgba(170,221,68,.08);border-color:var(--lime);color:var(--lime)}
.rt-pay-method.disabled{opacity:.4;pointer-events:none}
.rt-charge-btn{width:100%;height:42px;background:var(--lime);border:none;border-radius:8px;color:#15200a;font-size:14px;font-weight:800;cursor:pointer;letter-spacing:.01em;transition:background .12s;font-family:var(--ff);padding:0 8px;line-height:1.2}
.rt-charge-btn:hover{background:var(--lime-dim)}
.rt-charge-btn:disabled{background:var(--bg3);color:var(--text2);cursor:not-allowed}

/* membership-action preload banner */
.rt-ma-banner{display:flex;align-items:center;gap:10px;padding:9px 14px;background:rgba(170,221,68,.08);border-bottom:1px solid rgba(170,221,68,.25);flex-shrink:0}
.rt-ma-banner .ic{width:24px;height:24px;border-radius:50%;background:var(--lime);color:#15200a;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.rt-ma-banner .t{font-size:12px;font-weight:700;color:var(--text0)}
.rt-ma-banner .s{font-size:11px;color:var(--text2)}

/* ===================== MODALS / OVERLAYS ===================== */
.rt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:120;animation:rt-fade .14s ease}
@keyframes rt-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.rt-overlay{animation:none}}
.rt-size-modal{background:var(--bg1);border:1px solid var(--line2);border-radius:12px;padding:20px;width:300px}
.rt-sm-title{font-size:15px;font-weight:700;margin-bottom:3px}
.rt-sm-sub{font-size:13px;color:var(--text2);margin-bottom:14px}
.rt-size-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}
.rt-size-chip{height:38px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--text1);cursor:pointer;transition:border-color .12s,color .12s;gap:2px}
.rt-size-chip:hover{border-color:var(--lime);color:var(--lime)}
.rt-size-chip.sel{background:rgba(170,221,68,.1);border-color:var(--lime);color:var(--lime)}
.rt-size-chip.na{opacity:.3;pointer-events:none}
.rt-sc-stk{font-size:10px;opacity:.7}
.rt-modal-acts{display:flex;gap:8px}

.rt-modal{background:var(--bg1);border:1px solid var(--line2);border-radius:12px;width:576px;max-width:94vw;max-height:82vh;display:flex;flex-direction:column}
.rt-modal.wide{width:540px}
.rt-modal.evt{width:520px}
.rt-modal-hdr{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.rt-modal-ttl{font-size:15px;font-weight:700;flex:1;display:flex;align-items:center;gap:8px}
.rt-modal-cl{color:var(--text2);cursor:pointer;font-size:16px;line-height:1}
.rt-modal-cl:hover{color:var(--text0)}
.rt-modal-body{flex:1;overflow-y:auto;padding:16px 20px}
.rt-modal-body.flush{padding:0}
.rt-modal-ftr{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;align-items:center}
.rt-ro-tbl{width:100%;border-collapse:collapse}
.rt-ro-tbl th{font-size:10px;color:var(--text2);text-align:left;padding:4px 8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.rt-ro-tbl td{padding:7px 8px;font-size:12px;color:var(--text1);border-bottom:1px solid var(--line)}
.rt-ro-tbl tr:last-child td{border-bottom:none}
.rt-ro-inp{width:50px;height:24px;background:var(--bg2);border:1px solid var(--line2);border-radius:4px;color:var(--text0);font-size:12px;text-align:center;outline:none;font-family:var(--ff)}

/* event modal rows */
.rt-ev-sec{padding:12px 20px;border-bottom:1px solid var(--line);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text2)}
.rt-ev-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.rt-ev-row:hover{background:var(--bg2)}
.rt-ev-emoji{width:38px;height:38px;border-radius:8px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.rt-ev-bar{padding:10px 20px;background:var(--bg2);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:between}
.rt-ev-back{cursor:pointer;color:var(--text2);font-size:13px;display:flex;align-items:center;gap:4px}
.rt-ev-back:hover{color:var(--text0)}

/* package size modal */
.rt-pkg-items{padding:16px 20px;display:flex;flex-direction:column;gap:16px;max-height:420px;overflow-y:auto}
.rt-pkg-item{padding-bottom:14px;border-bottom:1px solid var(--line)}
.rt-pkg-item:last-child{border-bottom:none}

/* ===================== ORDERS ===================== */
.rt-orders{display:flex;flex-direction:column;width:100%;overflow:hidden}
.rt-orders-tb{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}
.rt-pill{height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line2);background:transparent;color:var(--text2);font-size:12px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s;font-family:var(--ff)}
.rt-pill:hover{background:var(--bg2);color:var(--text1)}
.rt-pill.active{border-color:var(--lime);color:var(--lime);background:rgba(170,221,68,.06)}
.rt-tb-sep{width:1px;height:20px;background:var(--line2);flex-shrink:0;margin:0 2px}
.rt-sort{height:28px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text1);font-size:12px;padding:0 8px;outline:none;font-family:var(--ff);cursor:pointer}
.rt-osearch{height:28px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text0);font-size:12px;padding:0 10px;outline:none;font-family:var(--ff);margin-left:auto;width:165px}
.rt-osearch::placeholder{color:var(--text2)}
.rt-orders-list{flex:1;overflow-y:auto}
.rt-order-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);gap:12px;cursor:pointer;transition:background .12s}
.rt-order-row:hover{background:var(--bg2)}
.rt-ochev{font-size:12px;color:var(--text2);transition:transform .15s;flex-shrink:0;display:flex}
.rt-ochev.open{transform:rotate(90deg)}
.rt-o-student{width:150px;flex-shrink:0}
.rt-o-sname{font-size:13px;color:var(--text0);font-weight:600}
.rt-o-ssub{font-size:11px;color:var(--text2);margin-top:1px}
.rt-o-items{flex:1;font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-o-date{font-size:11px;color:var(--text2);width:60px;flex-shrink:0;text-align:right}
.rt-src{font-size:10px;padding:2px 7px;border-radius:3px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:54px;text-align:center}
.rt-src.pos{background:rgba(59,158,232,.12);color:var(--blue);border:1px solid rgba(59,158,232,.25)}
.rt-src.app{background:rgba(170,221,68,.1);color:var(--lime);border:1px solid rgba(170,221,68,.2)}
.rt-src.bundle{background:rgba(245,166,35,.1);color:var(--amber);border:1px solid rgba(245,166,35,.2)}
.rt-src.event{background:rgba(204,34,34,.1);color:#ee6666;border:1px solid rgba(204,34,34,.2)}
.rt-stat{font-size:11px;padding:2px 8px;border-radius:4px;flex-shrink:0;width:96px;text-align:center}
.rt-stat.pending{background:rgba(245,166,35,.1);color:var(--amber);border:1px solid rgba(245,166,35,.25)}
.rt-stat.fulfilled{background:rgba(170,221,68,.1);color:var(--lime);border:1px solid rgba(170,221,68,.2)}
.rt-stat.partial{background:rgba(59,158,232,.1);color:var(--blue);border:1px solid rgba(59,158,232,.2)}
.rt-stat.backordered{background:rgba(204,34,34,.08);color:#ee6666;border:1px solid rgba(204,34,34,.2)}
/* UNPAID — the money never moved. Deliberately the loudest chip on the row:
   solid red fill (every other chip is a tint), so "Fulfilled" can never be
   read as "paid" beside it. */
.rt-stat.unpaid{background:#cc2222;color:#fff;border:1px solid #e33;font-weight:800;letter-spacing:.3px}
.rt-stat.ordered{background:rgba(59,158,232,.1);color:var(--blue);border:1px solid rgba(59,158,232,.2)}
.rt-qa-wrap{flex-shrink:0;width:120px;text-align:right}
.rt-qa{height:26px;padding:0 10px;border-radius:4px;border:1px solid var(--line2);background:transparent;color:var(--text1);font-size:11px;cursor:pointer;white-space:nowrap;font-family:var(--ff);transition:background .12s}
.rt-qa:hover{background:var(--bg3)}
.rt-qa.ful{border-color:rgba(170,221,68,.3);color:var(--lime)}
.rt-qa.ful:hover{background:rgba(170,221,68,.08)}
.rt-order-detail{background:var(--bg0);border-bottom:1px solid var(--line);padding:12px 16px 12px 44px}
.rt-d-item{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:12px;border-bottom:1px solid var(--line)}
.rt-d-item:last-child{border-bottom:none}
.rt-d-nm{flex:1;color:var(--text0)}
.rt-d-vr{color:var(--text2)}
.rt-d-qt{color:var(--text2);width:28px;text-align:center}
.rt-d-pr{color:var(--text0);font-weight:600;width:52px;text-align:right}
.rt-d-meta{display:flex;gap:20px;font-size:11px;color:var(--text2);margin-top:8px}
.rt-d-meta b{color:var(--text1);font-weight:600}
.rt-d-acts{display:flex;gap:6px;margin-top:10px}
/* FD-CP87: live order purchase details (customer · line items · total) */
.rt-o-live-who{display:flex;flex-wrap:wrap;gap:18px;font-size:11.5px;color:var(--text2);margin:8px 0 4px}
.rt-o-live-who b{color:var(--text1);font-weight:600;margin-right:5px}
.rt-o-live-lines{margin-top:8px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.rt-o-live-line{display:flex;align-items:baseline;gap:10px;padding:7px 11px;font-size:12.5px;border-bottom:1px solid var(--line)}
.rt-o-live-lqty{color:var(--text2);flex:none;min-width:22px}
.rt-o-live-lname{flex:1;min-width:0;color:var(--text1);font-weight:500}
.rt-o-live-lstu{color:var(--text2);font-weight:400}
.rt-o-live-lprice{flex:none;color:var(--text1);font-weight:700;font-variant-numeric:tabular-nums}
.rt-o-live-total{display:flex;align-items:baseline;justify-content:space-between;padding:8px 11px;background:var(--bg2);font-size:12.5px;font-weight:800;color:var(--text1)}

/* ===================== CATALOG ===================== */
.rt-catalog{display:flex;flex-direction:column;width:100%;overflow:hidden}
.rt-cat-tb{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-shrink:0}
.rt-cs-wrap{position:relative}
.rt-cs-wrap .ic{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text2);pointer-events:none;display:flex}
.rt-cat-search{height:32px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text0);font-size:12px;padding:0 10px 0 30px;outline:none;font-family:var(--ff);width:196px}
.rt-cat-search::placeholder{color:var(--text2)}
.rt-pill.cat-on{border-color:var(--lime);color:var(--text0);background:rgba(170,221,68,.06)}
.rt-pill.pkg{color:var(--amber);border-color:rgba(245,166,35,.35)}
.rt-pill.pkg.cat-on{color:var(--text0);border-color:var(--lime)}
.rt-catalog-grid{flex:1;overflow-y:auto;padding:16px}
.rt-cat-sec{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;margin-top:20px}
.rt-cat-sec:first-child{margin-top:0}
.rt-cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;margin-bottom:4px}
.rt-cc{background:var(--bg1);border:1px solid var(--line);border-radius:10px;cursor:pointer;overflow:hidden;transition:border-color .12s,transform .12s;text-align:left;padding:0;font-family:var(--ff)}
.rt-cc:hover{border-color:var(--line2);transform:translateY(-1px)}
.rt-cc-img{width:100%;aspect-ratio:1;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:36px;position:relative}
.rt-cc-img.has-photo{background-size:cover;background-position:center}
.rt-cc-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%}
.rt-cc-dot.ok{background:var(--lime)}
.rt-cc-dot.low{background:var(--amber)}
.rt-cc-dot.out{background:var(--red)}
.rt-cc-body{padding:10px}
.rt-cc-name{font-size:12px;font-weight:700;color:var(--text0);margin-bottom:3px}
.rt-cc-pr-row{display:flex;align-items:baseline;gap:5px}
.rt-cc-price{font-size:13px;color:var(--lime);font-weight:800}
.rt-cc-cmp{font-size:11px;color:var(--text2);text-decoration:line-through}
.rt-cc-vars{font-size:11px;color:var(--text2);margin-top:2px}
.rt-cc-new{border-style:dashed;display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--text2)}
.rt-cc-new:hover{border-color:var(--lime);color:var(--lime)}

/* product / package edit */
.rt-edit{display:flex;flex-direction:column;width:100%;overflow:hidden}
.rt-edit-hdr{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-shrink:0}
.rt-edit-back{color:var(--text2);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:4px}
.rt-edit-back:hover{color:var(--text0)}
.rt-edit-title{font-size:14px;font-weight:700;flex:1}
.rt-edit-body{flex:1;overflow-y:auto;padding:20px;display:grid;grid-template-columns:236px 1fr;gap:20px;align-content:start}
.rt-img-main{width:100%;aspect-ratio:1;background:var(--bg2);border:1.5px dashed var(--line2);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:border-color .15s;position:relative;overflow:hidden}
.rt-img-main:hover{border-color:var(--lime)}
.rt-img-ov{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;opacity:0;transition:opacity .15s;color:#fff;font-size:12px}
.rt-img-main:hover .rt-img-ov{opacity:1}
.rt-img-thumbs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.rt-img-th{width:44px;height:44px;border-radius:6px;background:var(--bg2);border:1px solid var(--line);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px}
.rt-img-th.add{border-style:dashed;border-color:var(--line2);color:var(--text2)}
.rt-img-th.add:hover{border-color:var(--lime)}
.rt-img-hint{font-size:11px;color:var(--text2);margin-top:8px;line-height:1.4}
/* FD-CP19 product image gallery */
.rt-img-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rt-img-thumb{position:relative;aspect-ratio:1;border-radius:10px;background:var(--bg2) center/cover no-repeat;border:1px solid var(--line);overflow:hidden}
.rt-img-primary{position:absolute;left:5px;top:5px;background:var(--lime);color:#111;font-size:9.5px;font-weight:700;letter-spacing:.02em;padding:2px 6px;border-radius:5px}
.rt-img-rm{position:absolute;right:4px;top:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-size:12px;line-height:1;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.rt-img-rm:hover{background:var(--red,#cc2222)}
.rt-img-add{aspect-ratio:1;border-radius:10px;background:var(--bg2);border:1.5px dashed var(--line2);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s}
.rt-img-add:hover{border-color:var(--lime)}
.rt-img-add:disabled{opacity:.6;cursor:default}
.rt-img-err{font-size:11px;color:var(--red,#cc2222);margin-top:6px}
.rt-img-rec{margin-top:3px;opacity:.72;font-style:italic}
.rt-esec{background:var(--bg1);border:1px solid var(--line);border-radius:10px;padding:15px;margin-bottom:14px}
.rt-esec:last-child{margin-bottom:0}
.rt-esec-title{font-size:11px;font-weight:800;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.rt-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.rt-field:last-child{margin-bottom:0}
.rt-field label{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.rt-field input,.rt-field select,.rt-field textarea{background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text0);font-size:13px;padding:7px 10px;outline:none;font-family:var(--ff);width:100%;transition:border-color .15s}
.rt-field textarea{resize:vertical;min-height:66px;line-height:1.5}
.rt-field input:focus,.rt-field select:focus,.rt-field textarea:focus{border-color:var(--lime)}
.rt-field-hint{font-size:11px;color:var(--text2);margin-top:2px}
.rt-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.rt-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rt-compare-prev{display:none;align-items:center;gap:6px;font-size:12px;color:var(--lime);background:rgba(170,221,68,.07);border:1px solid rgba(170,221,68,.18);border-radius:6px;padding:7px 10px;margin-top:8px}
.rt-compare-prev.show{display:flex}
.rt-vt-tog{display:flex;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;overflow:hidden;width:fit-content;margin-bottom:12px}
.rt-vt-opt{padding:5px 12px;font-size:12px;cursor:pointer;color:var(--text2);transition:background .12s,color .12s}
.rt-vt-opt.active{background:var(--bg3);color:var(--text0)}
.rt-v-hdr{display:grid;grid-template-columns:1fr 62px 78px 22px;gap:8px;padding:3px 0;font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);margin-bottom:2px}
.rt-v-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.rt-v-row:last-child{border-bottom:none}
.rt-v-name{flex:1;font-size:12px;color:var(--text0)}
.rt-v-inp{height:26px;background:var(--bg2);border:1px solid var(--line2);border-radius:4px;color:var(--text0);font-size:12px;text-align:center;outline:none;font-family:var(--ff)}
.rt-v-rm{color:var(--text2);cursor:pointer;font-size:12px;display:flex}
.rt-v-rm:hover{color:var(--red)}
.rt-add-v{height:28px;padding:0 10px;border-radius:6px;border:1px dashed var(--line2);background:transparent;color:var(--text2);font-size:11px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-family:var(--ff);transition:border-color .12s,color .12s}
.rt-add-v:hover{border-color:var(--lime);color:var(--lime)}
.rt-tog-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rt-tog-row:last-child{margin-bottom:0}
.rt-tog-lbl{font-size:13px;color:var(--text0)}
.rt-tog-sub{font-size:11px;color:var(--text2);margin-top:1px}
.rt-sw{width:34px;height:18px;background:var(--lime);border-radius:9px;position:relative;cursor:pointer;flex-shrink:0;transition:background .15s;border:0}
.rt-sw::after{content:'';position:absolute;width:14px;height:14px;background:#15200a;border-radius:50%;top:2px;right:2px;transition:right .15s}
.rt-sw.off{background:var(--bg3)}
.rt-sw.off::after{right:18px;background:var(--text2)}
.rt-edit-divider{border-top:1px solid var(--line);margin:10px 0}

/* toast */
.rt-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--bg1);border:1px solid var(--line2);border-radius:8px;padding:10px 16px;font-size:13px;color:var(--text0);display:flex;align-items:center;gap:8px;z-index:999;transition:transform .25s ease;white-space:nowrap;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.rt-toast.show{transform:translateX(-50%) translateY(0)}
.rt-toast .ic{color:var(--lime);display:flex}

@media (max-width:1080px){
  .rt-edit-body{grid-template-columns:1fr}
}

/* ---------- Prompt B Group 2 — POS checkout additions ---------- */
/* 2e — family pre-pay credit row */
.rt-credit-row{display:flex;align-items:center;gap:9px;padding:8px 10px;margin-bottom:9px;border:1px solid rgba(155,114,230,.3);
  border-radius:8px;background:rgba(155,114,230,.07)}
.rt-credit-ic{color:#b79ae8;display:flex}
.rt-credit-lbl{flex:1;min-width:0;font-size:12px;font-weight:700;display:flex;flex-direction:column;gap:1px}
.rt-credit-lbl small{font-size:10.5px;color:var(--text2);font-weight:600}
.rt-credit-applied{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:#b79ae8;font-family:var(--mono)}
.rt-credit-inp{width:58px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:#b79ae8;
  font-family:var(--mono);font-size:12.5px;font-weight:700;padding:4px 6px;text-align:right}
.rt-credit-inp:focus{outline:none;border-color:#b79ae8}
.rt-credit-x{cursor:pointer;color:var(--text2);font-size:11px;padding:2px 4px}
.rt-credit-x:hover{color:var(--text0)}
/* 2c — fee visibility hint */
.rt-fee-staff{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--text2);
  border:1px dashed var(--line2);border-radius:4px;padding:0 4px;margin-left:6px}
/* 2b — cash tendered + change */
.rt-cash-row{display:flex;align-items:center;gap:9px;margin:9px 0 0}
.rt-cash-lbl{font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--text2)}
.rt-cash-inp{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text0)}
.rt-cash-inp input{width:72px;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--text0);
  font-family:var(--mono);font-size:13px;font-weight:700;padding:5px 7px;text-align:right}
.rt-cash-inp input:focus{outline:none;border-color:var(--lime)}
.rt-cash-change{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--text2)}
.rt-cash-change.ok{color:var(--lime)}

/* tuition modal — early/manual tuition payment (Staff Tuition Payment brief, step 2) */
.rt-tu-info{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:13px}
.rt-tu-fam{display:flex;align-items:center;gap:11px}
.rt-tu-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0}
.rt-tu-nm{font-size:14px;font-weight:700;color:var(--text0)}
.rt-tu-sub{font-size:12px;color:var(--text2);margin-top:1px}
.rt-tu-draftgrid{display:flex;gap:10px}
.rt-tu-draft{flex:1;background:var(--bg2);border:1px solid var(--line2);border-radius:8px;padding:11px 13px}
.rt-tu-draft.pastdue{background:rgba(245,166,35,.08);border-color:rgba(245,166,35,.4)}
.rt-tu-k{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text2)}
.rt-tu-draft.pastdue .rt-tu-k{color:var(--amber)}
.rt-tu-v{font-size:20px;font-weight:800;color:var(--text0);font-family:var(--mono);margin-top:3px}
.rt-tu-draft.pastdue .rt-tu-v{color:var(--amber)}
.rt-tu-d{font-size:11px;color:var(--text2);margin-top:2px}
.rt-tu-nodraft{font-size:12px;color:var(--text2);background:var(--bg2);border:1px solid var(--line2);border-radius:8px;padding:11px 13px}
.rt-tu-onfile{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;line-height:1.45;color:var(--text1);background:rgba(170,221,68,.06);border:1px solid rgba(170,221,68,.25);border-radius:8px;padding:9px 11px}
.rt-tu-onfile span{flex-shrink:0}
.rt-tu-onfile b{color:var(--lime)}
.rt-tu-amtblock{padding:16px 20px;border-bottom:1px solid var(--line)}
.rt-tu-amtlbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);margin-bottom:8px}
.rt-tu-amtinp{display:flex;align-items:center;gap:6px;font-size:24px;font-weight:800;color:var(--lime);font-family:var(--mono)}
.rt-tu-amtinp input{flex:1;background:var(--bg2);border:1px solid var(--line2);border-radius:8px;color:var(--text0);font-family:var(--mono);font-size:22px;font-weight:800;padding:8px 12px;outline:none}
.rt-tu-amtinp input:focus{border-color:var(--lime)}
.rt-tu-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.rt-tu-chip{height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--line2);background:var(--bg2);color:var(--text1);font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--ff);transition:border-color .12s,color .12s,background .12s}
.rt-tu-chip:hover{border-color:var(--text2);color:var(--text0)}
.rt-tu-chip.on{background:rgba(170,221,68,.1);border-color:var(--lime);color:var(--lime)}
.rt-tu-covers{margin-top:11px;font-size:12px;color:var(--lime);font-weight:600}
.rt-tu-note{padding:13px 20px;font-size:12px;line-height:1.5;color:var(--text1);background:var(--bg2);border-bottom:1px solid var(--line)}
.rt-tu-note i{color:var(--text2);font-style:italic}
.rt-tu-flag{display:block;margin-top:6px;font-size:11px;color:var(--text2);font-style:italic}
.rt-tu-foot{padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.rt-tu-foottot{font-size:18px;font-weight:800;color:var(--text0);font-family:var(--mono)}
/* 2a — manual CC entry */
.rt-ccform{display:flex;flex-direction:column;gap:7px;margin:9px 0 0;padding:9px 10px;border:1px solid var(--line2);
  border-radius:8px;background:var(--bg2)}
.rt-ccform-row{display:flex;gap:7px}
.rt-ccform .rt-sinput{height:30px;font-size:12.5px}
.rt-ccform .rt-sinput.mono{font-family:var(--mono)}
.rt-ccform-note{font-size:10px;color:var(--text2);line-height:1.4;text-wrap:pretty}

/* ---------- Prompt B Group 3 — Orders print rendering ---------- */
.rt-orders-foot{padding:9px 16px 14px;font-size:10.5px;color:var(--text2);text-wrap:pretty}
.rt-print-doc{display:none}
@media print{
  body{background:#fff!important}
  #root{display:none!important}
  .rt-print-doc{display:block;color:#111;font-family:Helvetica,Arial,sans-serif;padding:8px 2px}
  .rt-print-h{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:12px}
  .rt-print-h .t{font-size:19px;font-weight:800;letter-spacing:-.3px}
  .rt-print-h .s{font-size:10.5px;color:#555}
  .rt-print-tbl{width:100%;border-collapse:collapse;font-size:11px}
  .rt-print-tbl th{text-align:left;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#555;
    border-bottom:1px solid #999;padding:4px 8px 5px 0}
  .rt-print-tbl td{vertical-align:top;border-bottom:1px solid #ddd;padding:6px 8px 6px 0}
  .rt-print-tbl td small{display:block;color:#666;font-size:9.5px;margin-top:1px}
  .rt-print-tbl td .li{display:flex;justify-content:space-between;gap:10px;padding:1px 0}
  .rt-print-tbl .mono{font-family:"SF Mono",Menlo,Consolas,monospace;white-space:nowrap}
  .rt-print-tbl tr{break-inside:avoid}
  .rt-print-f{margin-top:12px;font-size:9.5px;color:#777}
}

/* FD-CP57 — the persistent charge-failure banner (unmissable; stays until dismissed) */
.rt-chargefail { background: rgba(204,34,34,.14); border: 2px solid #CC2222; border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; animation: rtcfPulse 1.6s ease-in-out 3; }
.rt-cf-head { display: flex; align-items: center; gap: 10px; }
.rt-cf-ic { font-size: 22px; line-height: 1; }
.rt-cf-title { font-size: 16px; font-weight: 900; letter-spacing: .04em; color: #ff6b6b; }
.rt-cf-amt { margin-left: auto; font-family: var(--mono, monospace); font-size: 18px; font-weight: 900; color: #ff6b6b; }
.rt-cf-detail { margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--m3-text); line-height: 1.45; }
.rt-cf-acts { display: flex; gap: 8px; margin-top: 10px; align-items: center; }
.rt-cf-dismiss { background: transparent; border: 1px solid rgba(204,34,34,.55); border-radius: 8px; color: var(--m3-text); font-size: 12px; font-weight: 700; padding: 7px 12px; cursor: pointer; font-family: var(--ff); }
.rt-cf-dismiss:hover { background: rgba(204,34,34,.18); }
.rt-cf-orders { background: #CC2222; border: 1px solid #CC2222; border-radius: 8px; color: #fff; font-size: 12px; font-weight: 800; padding: 7px 12px; cursor: pointer; font-family: var(--ff); }
.rt-cf-orders:hover { background: #b31d1d; }
@keyframes rtcfPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(204,34,34,.0); } 50% { box-shadow: 0 0 0 6px rgba(204,34,34,.25); } }
