/* ============================================================================
   CVN Computers — Admin backend
   Standalone tool at /admin · matches the public site theme (styles.css tokens)
   ========================================================================== */

body[data-page="admin"]{background:var(--bg-2)}
.admin-hidden{display:none !important}

/* ---- toast (reuse site toast if present, else local) -------------------- */
.atoast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(140%);z-index:300;
  background:var(--ink);color:var(--bg);padding:.85rem 1.3rem;border-radius:var(--radius-pill);font-weight:600;
  font-size:.9rem;box-shadow:var(--shadow-lg);transition:transform .45s var(--ease-out);display:flex;align-items:center;gap:.6rem;max-width:92vw}
.atoast.show{transform:translateX(-50%) translateY(0)}
.atoast.err{background:oklch(0.55 0.2 25);color:#fff}
.atoast.ok{background:var(--brand-deep);color:#fff}

/* ============================================================================
   LOGIN
   ========================================================================== */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}
.login-wrap::before{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(900px 500px at 80% -10%, oklch(0.5 0.12 var(--brand-h) / .35), transparent 60%),
    radial-gradient(700px 500px at 10% 110%, oklch(0.45 0.1 var(--brand-h) / .3), transparent 55%)}
.login-card{position:relative;z-index:1;width:min(420px,100%);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:clamp(1.8rem,4vw,2.6rem)}
.login-card .brand-row{display:flex;align-items:center;gap:.7rem;margin-bottom:1.6rem}
.login-card .mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:#fff;box-shadow:var(--shadow-brand);padding:5px;overflow:hidden}
.mark img{width:100%;height:100%;object-fit:contain;display:block}
.login-card .brand-row b{font-family:var(--font-display);font-size:1.15rem;display:block;line-height:1.1}
.login-card .brand-row small{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.login-card h1{font-size:1.5rem;margin-bottom:.4rem}
.login-card .sub{color:var(--ink-3);font-size:.92rem;margin-bottom:1.6rem}
.login-card .lock-note{display:flex;gap:.5rem;align-items:center;font-size:.82rem;color:var(--ink-3);margin-top:1.4rem;
  padding-top:1.2rem;border-top:1px solid var(--line)}
.login-card .lock-note svg{width:15px;height:15px;color:var(--brand-ink)}

/* ============================================================================
   FORM PRIMITIVES (shared admin)
   ========================================================================== */
.afield{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.afield label{font-size:.82rem;font-weight:700;color:var(--ink-2)}
.afield label .opt{color:var(--ink-3);font-weight:400}
.afield input[type=text],.afield input[type=email],.afield input[type=password],.afield input[type=number],
.afield input[type=url],.afield select,.afield textarea{
  padding:.8rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);
  color:var(--ink);font-size:.95rem;width:100%;transition:border-color .2s,background .2s}
.afield textarea{resize:vertical;min-height:90px;font-family:inherit;line-height:1.6}
.afield input:focus,.afield select:focus,.afield textarea:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.afield .hint{font-size:.76rem;color:var(--ink-3)}
.afield .hint svg{width:.95em;height:.95em;vertical-align:-.13em;margin-right:.28em;opacity:.85}
.afield select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.6rem}
.arow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.afield.err input,.afield.err select,.afield.err textarea{border-color:oklch(0.6 0.2 25)}

/* segmented control */
.aseg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px;gap:2px}
.aseg button{padding:.5rem 1rem;border-radius:var(--radius-pill);font-weight:600;font-size:.85rem;color:var(--ink-3);transition:.2s}
.aseg button.on{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-sm)}

/* ============================================================================
   APP SHELL  — left sidebar + main column
   ========================================================================== */
#appView{display:flex;align-items:stretch;min-height:100vh}
.iconbtn{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);transition:.2s}
.iconbtn:hover{color:var(--brand-ink);border-color:var(--brand)}
.iconbtn svg{width:18px;height:18px}

/* ---- sidebar ---- */
.asidebar{position:fixed;top:0;left:0;bottom:0;height:100vh;width:252px;flex:none;z-index:60;
  display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line)}
.asidebar__brand{display:flex;align-items:center;gap:.7rem;padding:1.05rem 1.1rem;border-bottom:1px solid var(--line);flex:none}
.asidebar__brand .mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:#fff;box-shadow:var(--shadow-brand);padding:4px;overflow:hidden}
.asidebar__brand .who{line-height:1.15;min-width:0}
.asidebar__brand .who b{font-family:var(--font-display);font-size:1rem;display:block}
.asidebar__brand .who small{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.asidebar__close{display:none;margin-left:auto;width:34px;height:34px;border-radius:9px;font-size:1.5rem;line-height:1;color:var(--ink-3)}
.asidebar__close:hover{color:var(--ink)}

/* vertical tabs */
.atabs{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.15rem;padding:.8rem .7rem}
.atab{position:relative;display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;
  padding:.68rem .8rem;border-radius:var(--radius-sm);font-weight:600;font-size:.93rem;color:var(--ink-3);transition:.15s}
.atab svg{width:18px;height:18px;flex:none}
.atab:hover{background:var(--surface-2);color:var(--ink)}
.atab.on{background:var(--brand-soft);color:var(--brand-ink)}
.atab--link{margin-top:.5rem;border:1px dashed var(--line-2);color:var(--brand-ink);text-decoration:none}
.atab--link:hover{background:var(--brand-soft);border-color:transparent;color:var(--brand-ink)}
.atab__ext{margin-left:auto;width:14px!important;height:14px!important;opacity:.6}
.atab .badge-n{margin-left:auto;font-family:var(--font-mono);font-size:.68rem;background:var(--surface-3);color:var(--ink-2);padding:.1em .5em;border-radius:var(--radius-pill);min-width:1.5em;text-align:center}
.atab.on .badge-n{background:var(--brand);color:var(--on-brand)}

/* safety: never let a nav icon fall back to the 300×150 default size */
.atabs svg{max-width:20px;max-height:20px}
/* master-category groups (dynamic dropdowns) */
.atab-group{display:flex;flex-direction:column}
.atab-group__head{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.62rem .8rem;border-radius:var(--radius-sm);
  font-family:var(--font-mono);font-weight:700;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);transition:.15s}
.atab-group__head>svg:first-child{width:17px;height:17px;flex:none}
.atab-group__head>span{flex:1;min-width:0}
.atab-group__chev{width:13px;height:13px;opacity:.55;transition:transform .2s}
.atab-group__head:hover{background:var(--surface-2);color:var(--ink-2)}
.atab-group__head.on{color:var(--brand-ink)}
.atab-group__menu{display:none;flex-direction:column;gap:.1rem;margin:.1rem 0 .35rem 1.35rem;padding-left:.55rem;border-left:1px solid var(--line)}
.atab-group.active>.atab-group__menu,.atab-group.open>.atab-group__menu{display:flex}
.atab-group.active>.atab-group__head>.atab-group__chev,.atab-group.open>.atab-group__head>.atab-group__chev{transform:rotate(180deg)}
.atab-group__menu .atab{font-size:.9rem;padding:.5rem .7rem}
@media (min-width:901px){
  .atab-group:hover>.atab-group__menu{display:flex}
  .atab-group:hover>.atab-group__head>.atab-group__chev{transform:rotate(180deg)}
}
/* portal quick links */
.atab-links{margin-top:.6rem;padding-top:.7rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.15rem}
.atab-cat{font-family:var(--font-mono);font-weight:700;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:.2rem .8rem .4rem}
.atab-link{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.6rem .8rem;border-radius:var(--radius-sm);
  font-weight:600;font-size:.9rem;color:var(--brand-ink);text-decoration:none;transition:.15s}
.atab-link svg{width:18px;height:18px;flex:none}
.atab-link:hover{background:var(--brand-soft)}
.atab-link .atab__ext{margin-left:auto;width:14px;height:14px;opacity:.55}

/* sidebar footer: user + actions */
.asidebar__foot{flex:none;border-top:1px solid var(--line);padding:.8rem;display:flex;flex-direction:column;gap:.7rem}
.asidebar__user{display:flex;align-items:center;gap:.6rem;min-width:0}
.asidebar__avatar{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;
  font-weight:700;font-family:var(--font-display);font-size:.82rem;background:linear-gradient(145deg,var(--brand),var(--brand-deep))}
.asidebar__uinfo{min-width:0;line-height:1.2}
.asidebar__uinfo b{font-family:var(--font-display);font-size:.92rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asidebar .roletag{display:inline-block;margin-top:.15rem;max-width:100%;font-family:var(--font-mono);font-size:.57rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:.2em .55em;border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--brand-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
.asidebar .roletag.poster{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.asidebar__actions{display:flex;gap:.5rem}
.asidebar__actions .iconbtn{flex:1}

/* main column */
.amain{flex:1;min-width:0;display:flex;flex-direction:column;margin-left:252px}
.amain>main{flex:1}
.asidebar__scrim{display:none}

/* mobile top bar (hidden on desktop) */
.atopbar-m{display:none}

@media (max-width:900px){
  .asidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;transform:translateX(-100%);
    transition:transform .3s var(--ease-out);box-shadow:var(--shadow-lg)}
  .amain{margin-left:0}
  #appView.nav-open .asidebar{transform:none}
  .asidebar__close{display:grid;place-items:center}
  .asidebar__scrim{display:block;position:fixed;inset:0;z-index:55;background:oklch(0.14 0.02 220 / .5);
    opacity:0;pointer-events:none;transition:opacity .3s}
  #appView.nav-open .asidebar__scrim{opacity:1;pointer-events:auto}
  .atopbar-m{display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem;position:sticky;top:0;z-index:40;
    background:var(--glass);backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--glass-line)}
  .atopbar-m .mark{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;
    background:#fff;padding:3px;overflow:hidden}
  .atopbar-m b{font-family:var(--font-display);font-size:.98rem}
}

.apanel{max-width:1180px;margin-inline:auto;padding:clamp(1.4rem,3vw,2.2rem) clamp(16px,3vw,28px) 4rem;width:100%}
.apanel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.apanel-head h2{font-size:1.5rem}
.apanel-head .sub{color:var(--ink-3);font-size:.9rem;margin-top:.2rem}

/* ============================================================================
   LIST / TABLE rows
   ========================================================================== */
.alist{display:flex;flex-direction:column;gap:.7rem}
.arow-card{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:.8rem 1rem;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}
.arow-card:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.arow-thumb{width:64px;height:48px;border-radius:9px;object-fit:cover;flex:none;background:var(--surface-3);
  background-image:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 8px,var(--surface-3) 8px,var(--surface-3) 16px)}
.arow-thumb.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-family:var(--font-display);
  background:linear-gradient(145deg,var(--brand),var(--brand-deep))}
.arow-thumb.avatar.has-photo{background:none;padding:0;overflow:hidden}
.arow-thumb.avatar.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.avatar.has-photo{background:none;padding:0;overflow:hidden}
.avatar.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.arow-main{flex:1;min-width:0}
.arow-main b{font-family:var(--font-display);font-weight:600;font-size:1.02rem;display:block;line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arow-main .meta{font-size:.82rem;color:var(--ink-3);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.2rem}
.arow-main .meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-3);opacity:.5}
.arow-actions{display:flex;align-items:center;gap:.5rem;flex:none}

/* status pill */
.statuspill{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.28em .7em;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:.4em}
.statuspill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.statuspill.active{background:oklch(0.95 0.06 150);color:oklch(0.45 0.13 150)}
.statuspill.inactive{background:var(--surface-3);color:var(--ink-3)}
[data-theme="dark"] .statuspill.active{background:oklch(0.4 0.08 150);color:oklch(0.9 0.1 150)}

/* dropdown menu */
.amenu{position:relative}
.amenu__btn{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);transition:.2s}
.amenu__btn:hover{color:var(--ink);border-color:var(--line-2)}
.amenu__btn svg{width:18px;height:18px}
.amenu__pop{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:.4rem;z-index:20;display:none}
.amenu.open .amenu__pop{display:block;animation:tw-in .2s var(--ease-out)}
.amenu__pop .lbl{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:.5rem .6rem .3rem}
.amenu__pop button{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.55rem .6rem;border-radius:8px;
  font-size:.88rem;font-weight:600;color:var(--ink-2);transition:.15s}
.amenu__pop button:hover{background:var(--surface-2);color:var(--ink)}
.amenu__pop button.on{color:var(--brand-ink)}
.amenu__pop button svg{width:16px;height:16px;flex:none}
.amenu__pop button.danger{color:oklch(0.58 0.2 25)}
.amenu__pop button.danger:hover{background:oklch(0.58 0.2 25 / .1)}
.amenu__pop hr{border:0;height:1px;background:var(--line);margin:.35rem 0}

/* empty — aligned with the shared cvn-state kit (medallion icon, friendly copy) */
.aempty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;
  padding:clamp(2.4rem,6vw,3.6rem) 1.25rem;color:var(--ink-3);border:none;border-radius:var(--radius-lg);
  animation:cvn-state-in .45s var(--ease-out) both}
.aempty svg{width:34px;height:34px;color:var(--brand-ink);margin:0;stroke-width:1.75}
.aempty>svg:first-child{box-sizing:content-box;width:34px;height:34px;padding:21px;margin-bottom:1.15rem;
  border-radius:22px;background:var(--brand-soft);display:block}
.aempty h3{font-family:var(--font-display);font-weight:600;font-size:clamp(1.15rem,2vw,1.4rem);
  letter-spacing:-.02em;color:var(--ink);line-height:1.2;margin:0}
.aempty p{max-width:42ch;color:var(--ink-3);font-size:.98rem;line-height:1.6;text-wrap:pretty;margin:.2rem auto 0}
.aempty .btn{margin-top:1.1rem}

/* ============================================================================
   EDITOR DRAWER  (product + post)
   ========================================================================== */
.editor{position:fixed;inset:0;z-index:200;display:none}
.editor.open{display:block}
.editor__scrim{position:absolute;inset:0;background:oklch(0.14 0.02 220 / .55);backdrop-filter:blur(4px)}
.editor__panel{position:absolute;top:0;right:0;bottom:0;width:min(820px,100%);background:var(--bg);
  box-shadow:var(--shadow-lg);border-left:1px solid var(--line);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .4s var(--ease-out)}
.editor.open .editor__panel{transform:none}
.editor__head{display:flex;align-items:center;gap:1rem;padding:1rem 1.4rem;border-bottom:1px solid var(--line);flex:none;background:var(--surface)}
.editor__head h2{font-size:1.2rem;margin-right:auto}
.editor__head .close{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);font-size:1.3rem}
.editor__head .close:hover{color:var(--ink)}
.editor__body{flex:1;overflow-y:auto;padding:1.4rem clamp(1rem,3vw,1.8rem)}
.editor__foot{flex:none;display:flex;align-items:center;gap:.8rem;padding:1rem 1.4rem;border-top:1px solid var(--line);background:var(--surface)}
.editor__foot .spacer{margin-left:auto}
.editor__sec{margin-bottom:1.6rem}
.editor__sec>h3{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  margin-bottom:.9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}

/* image uploader */
.imgdrop{border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);padding:1.3rem;text-align:center;background:var(--surface-2);cursor:pointer;transition:.2s}
.imgdrop:hover,.imgdrop.drag{border-color:var(--brand);background:var(--brand-soft)}
.imgdrop svg{width:26px;height:26px;color:var(--brand-ink);margin:0 auto .5rem}
.imgdrop p{font-size:.88rem;color:var(--ink-2)}
.imgdrop p b{color:var(--brand-ink)}
.imgdrop small{display:block;color:var(--ink-3);font-size:.74rem;margin-top:.3rem;font-family:var(--font-mono)}
.imggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.7rem;margin-top:.9rem}
.imgcell{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface-3)}
.imgcell img{width:100%;height:100%;object-fit:cover}
.imgcell .rm{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;
  background:oklch(0.2 0.02 220 / .7);color:#fff;font-size:1rem;backdrop-filter:blur(4px)}
.imgcell .rm:hover{background:oklch(0.55 0.2 25)}
.imgcell .badge-1{position:absolute;bottom:4px;left:4px;font-family:var(--font-mono);font-size:.6rem;font-weight:700;
  background:var(--brand);color:var(--on-brand);padding:.15em .5em;border-radius:5px}

/* tag input */
.taginput{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);min-height:48px}
.taginput:focus-within{border-color:var(--brand);background:var(--surface)}
.taginput .tg{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-mono);font-size:.74rem;font-weight:600;
  background:var(--brand-soft);color:var(--brand-ink);padding:.3em .3em .3em .7em;border-radius:var(--radius-pill)}
.taginput .tg button{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:oklch(0.6 0.1 var(--brand-h) / .25);color:var(--brand-ink);font-size:.8rem}
.taginput input{flex:1;min-width:120px;border:none;background:transparent;outline:none;font-size:.92rem;color:var(--ink);padding:.3rem}

/* warning bar field highlight */
.warnfield{border-radius:var(--radius-sm);border:1px solid oklch(0.78 0.15 65 / .4);background:oklch(0.78 0.15 65 / .08);padding:1rem}
.warnfield label{color:var(--accent-strong)}

/* ============================================================================
   BLOCK EDITOR (posts)
   ========================================================================== */
.blocks{display:flex;flex-direction:column;gap:.8rem}
.block{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}
.block__bar{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--surface-2);border-bottom:1px solid var(--line)}
.block__type{font-family:var(--font-mono);font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-right:auto}
.block__bar .mini{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--ink-3)}
.block__bar .mini:hover{color:var(--ink);border-color:var(--line-2)}
.block__bar .mini:disabled{opacity:.3;cursor:not-allowed}
.block__bar .mini svg{width:15px;height:15px}
.block__bar .mini.danger:hover{color:oklch(0.58 0.2 25);border-color:oklch(0.58 0.2 25)}
.block__body{padding:.8rem}
.block__body textarea,.block__body input[type=text]{width:100%;border:1.5px solid var(--line);border-radius:8px;background:var(--surface-2);
  padding:.6rem .8rem;color:var(--ink);font-size:.95rem;font-family:inherit}
.block__body textarea:focus,.block__body input:focus{outline:none;border-color:var(--brand);background:var(--surface)}

/* rich text contenteditable */
.rt-tools{display:flex;gap:.25rem;margin-bottom:.5rem}
.rt-tools button{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);font-weight:700;font-size:.85rem}
.rt-tools button:hover{color:var(--brand-ink);border-color:var(--brand)}
.rt-tools button svg{width:15px;height:15px}
.rt-edit{min-height:70px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface-2);padding:.7rem .9rem;
  color:var(--ink);font-size:.98rem;line-height:1.6;outline:none}
.rt-edit:focus{border-color:var(--brand);background:var(--surface)}
.rt-edit:empty::before{content:attr(data-ph);color:var(--ink-3)}
.rt-edit a{color:var(--brand-ink);text-decoration:underline}

/* add-block menu */
.addblock{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--line-2)}
.addblock button{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .9rem;border-radius:var(--radius-pill);
  background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-weight:600;font-size:.84rem;transition:.2s}
.addblock button:hover{border-color:var(--brand);color:var(--brand-ink)}
.addblock button svg{width:15px;height:15px}

/* list block items */
.listitems{display:flex;flex-direction:column;gap:.4rem}
.listitems .li{display:flex;gap:.5rem;align-items:center}
.listitems .li input{flex:1}
.listitems .li button{width:30px;height:30px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3);flex:none}
.listitems .li button:hover{color:oklch(0.58 0.2 25)}

/* subscribers drawer table */
.subtable{width:100%;border-collapse:collapse;font-size:.9rem}
.subtable th{text-align:left;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);padding:.6rem .8rem;border-bottom:1px solid var(--line);font-weight:600}
.subtable td{padding:.7rem .8rem;border-bottom:1px solid var(--line);color:var(--ink-2)}
.subtable tr:hover td{background:var(--surface-2)}
.prefbadge{font-family:var(--font-mono);font-size:.66rem;font-weight:700;padding:.2em .6em;border-radius:var(--radius-pill);
  background:var(--brand-soft);color:var(--brand-ink)}

/* credentials reveal box */
.credbox{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.2rem;margin-top:1rem}
.credbox .line{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;font-size:.9rem}
.credbox .line span:first-child{color:var(--ink-3)}
.credbox .line code{font-family:var(--font-mono);color:var(--ink);background:var(--surface-3);padding:.15em .5em;border-radius:6px;font-size:.85rem}
.credbox .copyrow{margin-top:.6rem}

/* preview (post) */
.postprev .article__body{font-size:1rem}

@media (max-width:680px){
  .arow{grid-template-columns:1fr}
  .editor__panel{width:100%}
  .arow-card{flex-wrap:wrap}
}

/* ============================================================================
   CONTENT editor (Content tab)
   ========================================================================== */
.content-wrap{display:grid;grid-template-columns:210px 1fr;gap:clamp(1rem,2.5vw,2rem);align-items:start}
.content-nav{display:flex;flex-direction:column;gap:.25rem;position:sticky;top:120px}
.content-nav__btn{display:flex;align-items:center;gap:.7rem;padding:.7rem .85rem;border-radius:var(--radius-sm);
  font-weight:600;font-size:.92rem;color:var(--ink-3);text-align:left;transition:.15s}
.content-nav__btn svg{width:18px;height:18px;flex:none}
.content-nav__btn:hover{background:var(--surface-2);color:var(--ink)}
.content-nav__btn.on{background:var(--brand-soft);color:var(--brand-ink)}
.content-body{min-width:0}
.content-sec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.content-sec-head h3{font-size:1.3rem}
.content-sec-head p{color:var(--ink-3);font-size:.9rem;margin-top:.2rem;max-width:60ch}

.crows{display:flex;flex-direction:column;gap:.7rem}
.crow{display:flex;align-items:flex-start;gap:.7rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface-2);padding:.8rem .85rem;transition:border-color .15s,background .15s}
.crow:hover{border-color:var(--line-2);background:var(--surface)}
.crow__rank{flex:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;margin-top:1px}
.crow__ic{flex:none;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);margin-top:1px}
.crow__ic svg{width:21px;height:21px}
.crow__fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}
.crow__title{font-weight:600;font-size:.98rem;padding:.5rem .7rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink)}
.crow__desc{padding:.45rem .7rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-size:.86rem}
.crow__area{padding:.5rem .7rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-size:.9rem;
  min-height:64px;resize:vertical;font-family:inherit;line-height:1.55;width:100%}
.crow__title:focus,.crow__desc:focus,.crow__area:focus{outline:none;border-color:var(--brand)}
.crow__meta{display:flex;flex-wrap:wrap;gap:.6rem}
.crow__del,.crow .svc-srow__del{flex:none}

.cf{display:flex;flex-direction:column;gap:.25rem}
.cf>span{font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.cf>span em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;opacity:.75}
.cf--block{margin-top:.2rem}
.cf--block>span{margin-bottom:.1rem}
.cf input,.cf select,.cf textarea{padding:.5rem .65rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font-size:.9rem;font-family:inherit}
.cf textarea{min-height:64px;resize:vertical;line-height:1.55}
.cf input:focus,.cf select:focus,.cf textarea:focus{outline:none;border-color:var(--brand)}
.cf select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:1.8rem}

.crev-head{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);margin-bottom:1.2rem}
.crev-google{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);margin-bottom:1.2rem}
.crev-google .cf input{font-family:var(--font-mono)}
.crev-google__status{flex-basis:100%;font-size:.82rem;line-height:1.5;min-height:1.2em;color:var(--ink-3)}
.crev-google__status.is-ok{color:oklch(0.58 0.14 150)}
.crev-google__status.is-err{color:oklch(0.58 0.2 25)}
.crev-google__status.is-wait{color:var(--ink-3)}
.crev-row1{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}
.content-subh{font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--ink);padding-bottom:.5rem;border-bottom:1px solid var(--line);margin-bottom:.9rem}
.content-block{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem}
.content-block .content-subh{border-bottom:none;padding-bottom:0;margin-bottom:.7rem}
.crev-row1 .crow__title{flex:1;min-width:160px}
.war-html{min-height:240px;font-family:var(--font-mono);font-size:.84rem;line-height:1.6}
.prog-em{flex:none;font-size:1.4rem;line-height:1;margin-top:2px}
.prog-full,.war-full,.war-soon{display:flex;flex-direction:column;gap:.6rem;padding:.9rem;margin:.2rem 0;border:1px dashed var(--line-2);border-radius:var(--radius-sm)}

@media (max-width:760px){
  .content-wrap{grid-template-columns:1fr}
  .content-nav{position:static;flex-direction:row;flex-wrap:wrap;overflow-x:auto}
}

/* demo-mode banner */
.demobar{background:oklch(0.78 0.15 65 / .14);border-bottom:1px solid oklch(0.78 0.15 65 / .35);
  color:var(--accent-strong);font-size:.82rem;text-align:center;padding:.5rem 1rem;font-weight:600}
.demobar b{color:var(--ink)}
.demobar code{font-family:var(--font-mono);font-size:.92em;background:var(--surface);padding:.05em .4em;border-radius:5px;color:var(--ink);font-weight:500}
.demobar a{color:var(--brand-ink);font-weight:700;text-decoration:underline}
.demobar--err{background:oklch(0.6 0.2 25 / .12);border-bottom-color:oklch(0.6 0.2 25 / .4);color:oklch(0.5 0.2 25);
  text-align:left;line-height:1.5;padding:.7rem 1.1rem}
[data-theme="dark"] .demobar--err{color:oklch(0.8 0.16 28)}
.demobar--err button{color:inherit;opacity:.7}.demobar--err button:hover{opacity:1}

/* ============================================================================
   USER PERMISSIONS (per-area access)
   ========================================================================== */
.permset{display:inline-flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
.permset__tag{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.02em;
  padding:.25em .6em;border-radius:var(--radius-pill);background:oklch(0.78 0.15 65 / .16);color:var(--accent-strong)}
.perm-areas{margin-top:.3rem;display:flex;flex-direction:column;gap:.6rem}
.perm-areas__lbl{font-size:.82rem;font-weight:700;color:var(--ink-2);margin-bottom:.1rem}
.perm-area{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.perm-area:hover{border-color:var(--line-2)}
.perm-area:has(.perm-switch:checked){border-color:var(--brand);background:var(--brand-soft)}
.perm-area__txt{flex:1;display:flex;flex-direction:column;gap:.15rem}
.perm-area__txt b{font-size:.96rem;color:var(--ink);font-weight:600}
.perm-area__txt small{font-size:.8rem;color:var(--ink-3)}
.perm-switch{position:absolute;opacity:0;pointer-events:none}
.perm-track{flex:none;width:44px;height:26px;border-radius:var(--radius-pill);background:var(--line-2);position:relative;transition:background .2s}
.perm-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;
  box-shadow:var(--shadow-sm);transition:transform .2s}
.perm-switch:checked + .perm-track{background:var(--brand)}
.perm-switch:checked + .perm-track::after{transform:translateX(18px)}
.perm-switch:focus-visible + .perm-track{outline:2px solid var(--brand);outline-offset:2px}

/* ============================================================================
   SERVICES editor (collapsible categories + tidy service rows)
   ========================================================================== */
.svc-cats{display:flex;flex-direction:column;gap:.8rem}
.svc-cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);
  overflow:hidden;transition:border-color .2s,box-shadow .2s}
.svc-cat.open{border-color:var(--line-2);box-shadow:var(--shadow)}

.svc-cat__bar{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;cursor:default}
.svc-cat.open .svc-cat__bar{border-bottom:1px solid var(--line);background:var(--surface-2)}
.svc-cat__chev{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);flex:none;transition:transform .2s,color .2s}
.svc-cat.open .svc-cat__bar > .svc-cat__chev:first-child{transform:rotate(90deg)}
.svc-cat__chev:hover{color:var(--brand-ink);border-color:var(--brand)}
.svc-cat__chev svg{width:17px;height:17px}
.svc-cat__bar > .svc-cat__chev:last-child{display:none}
.svc-cat__ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none;
  background:var(--brand-soft);color:var(--brand-ink)}
.svc-cat__ic svg{width:21px;height:21px}
.svc-cat__meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.svc-cat__name{font-family:var(--font-display);font-weight:600;font-size:1.08rem;color:var(--ink);
  background:transparent;border:1.5px solid transparent;border-radius:8px;padding:.25rem .45rem;margin:-.25rem -.45rem;width:100%;
  transition:border-color .15s,background .15s}
.svc-cat__name:hover{border-color:var(--line)}
.svc-cat__name:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.svc-cat__sub{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-3);letter-spacing:.02em;padding-left:.05rem}
.svc-cat__count{flex:none;font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--brand-ink);
  background:var(--brand-soft);min-width:30px;text-align:center;padding:.3em .55em;border-radius:var(--radius-pill)}

.svc-cat__body{padding:1.1rem .9rem .9rem}
.svc-cat__props{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem;padding-bottom:1.1rem;border-bottom:1px dashed var(--line-2)}
.svc-rows{display:flex;flex-direction:column;gap:.6rem}
.svc-cat__foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1rem;flex-wrap:wrap}
.svc-delcat{display:inline-flex;align-items:center;gap:.45rem;font-size:.84rem;font-weight:600;color:var(--ink-3);
  padding:.5rem .8rem;border-radius:var(--radius-pill);border:1px solid var(--line);transition:.2s}
.svc-delcat:hover{color:oklch(0.58 0.2 25);border-color:oklch(0.58 0.2 25)}
.svc-delcat svg{width:15px;height:15px}

/* service row */
.svc-srow{display:flex;align-items:flex-start;gap:.7rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface-2);padding:.7rem .8rem;transition:border-color .15s,background .15s}
.svc-srow:hover{border-color:var(--line-2);background:var(--surface)}
.svc-srow__rank{flex:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;margin-top:1px}
.svc-rank-btn{width:30px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--surface);
  border:1px solid var(--line);color:var(--ink-3);transition:.15s}
.svc-rank-btn:hover{color:var(--brand-ink);border-color:var(--brand)}
.svc-rank-btn svg{width:15px;height:15px}
.svc-srow__num{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--ink-3);
  background:var(--surface-3);width:30px;height:26px;border-radius:7px;display:grid;place-items:center}
.svc-srow__fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}
.svc-srow__name{font-weight:600;font-size:.98rem;padding:.5rem .7rem;border-radius:8px;background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink)}
.svc-srow__desc{padding:.45rem .7rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);
  color:var(--ink-2);font-size:.86rem}
.svc-srow__name:focus,.svc-srow__desc:focus{outline:none;border-color:var(--brand)}
.svc-srow__del{flex:none;align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;margin-top:1px;
  padding:.5rem .75rem;border-radius:8px;background:oklch(0.58 0.2 25 / .1);border:1px solid oklch(0.58 0.2 25 / .35);
  color:oklch(0.55 0.2 25);font-weight:600;font-size:.82rem;transition:.15s}
.svc-srow__del:hover{background:oklch(0.58 0.2 25);color:#fff;border-color:transparent}
.svc-srow__del svg{width:15px;height:15px}
[data-theme="dark"] .svc-srow__del{color:oklch(0.72 0.16 25)}
[data-theme="dark"] .svc-srow__del:hover{color:#fff}
@media (max-width:680px){.svc-srow__del span{display:none}}

.svc-srow__price{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem .7rem;margin-top:.1rem}
.pf{display:flex;flex-direction:column;gap:.25rem}
.pf>span{font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.pf>span em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;opacity:.7}
.pf__in{display:inline-flex;align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:8px;padding:0 .6rem}
.pf__in i{font-style:normal;color:var(--ink-3);font-family:var(--font-mono);font-size:.85rem}
.pf__in input{width:84px;border:none;background:transparent;color:var(--ink);padding:.5rem .2rem;outline:none;font-family:var(--font-mono);font-size:.9rem}
.pf__in:focus-within{border-color:var(--brand)}
.pf.off{opacity:.4}
.svc-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;color:var(--ink-2);cursor:pointer;padding-bottom:.55rem}
.svc-toggle input{width:16px;height:16px;accent-color:var(--brand)}
.svc-mode{padding:.5rem .6rem;border-radius:8px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);
  font-size:.84rem;appearance:none;min-width:150px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:1.8rem}
.svc-mode:focus{outline:none;border-color:var(--brand)}
.svc-cat__props select{padding:.7rem .8rem;border-radius:8px;background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2rem}
@media (max-width:680px){
  .svc-cat__props{flex-direction:column}
  .svc-cat__props .afield{width:100%!important}
}

/* ============================================================================
   INVENTORY
   ========================================================================== */
.inv-headbtns{display:flex;gap:.6rem;flex-wrap:wrap}
.badge-n--warn{background:oklch(0.78 0.15 65 / .2)!important;color:var(--accent-strong)!important}
.iconbtn--sm{width:34px;height:34px;border-radius:9px}
.iconbtn--sm svg{width:16px;height:16px}

/* stat cards */
.inv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin-bottom:1.4rem}
.inv-stat{display:flex;align-items:center;gap:.85rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--shadow-sm)}
.inv-stat__ic{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:var(--brand-soft);color:var(--brand-ink)}
.inv-stat__ic svg{width:20px;height:20px}
.inv-stat b{font-family:var(--font-display);font-size:1.35rem;line-height:1;display:block}
.inv-stat span{font-size:.78rem;color:var(--ink-3);margin-top:.25rem;display:block}
.inv-stat.warn .inv-stat__ic{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.inv-stat.warn b{color:var(--accent-strong)}
.inv-stat.danger .inv-stat__ic{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
.inv-stat.danger b{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .inv-stat.danger b,[data-theme="dark"] .inv-stat.danger .inv-stat__ic{color:oklch(0.78 0.16 28)}

/* demand & aging */
.dm-controls{display:flex;flex-wrap:wrap;gap:1.1rem;margin-bottom:1.2rem}
.dm-ctl{display:flex;flex-direction:column;gap:.35rem}
.dm-ctl>span{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.dm-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;padding:.7rem 1rem;border-top:1px solid var(--line)}
.dm-row[data-risk="out"]{background:oklch(0.6 0.2 25 / .05)}
.dm-row[data-risk="soon"]{background:oklch(0.75 0.14 70 / .06)}
.dm-row__m{flex:1;min-width:180px;display:flex;flex-direction:column;gap:.12rem}
.dm-row__m b{font-size:.9rem;font-weight:600}
.dm-row__m span{font-size:.76rem;color:var(--ink-3)}
.dm-row__n{flex:none;min-width:72px;text-align:right;display:flex;flex-direction:column;gap:.1rem}
.dm-row__n b{font-family:var(--font-mono);font-size:.86rem;font-weight:600}
.dm-row__n span{font-size:.7rem;color:var(--ink-3)}
.dm-row__q b{color:var(--brand-ink)}
.dm-row .btn{flex:none}

/* toolbar */.inv-toolbar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1.1rem}
.inv-search{position:relative;flex:1;min-width:220px}
.inv-search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3)}
.inv-search input{width:100%;padding:.72rem 1rem .72rem 2.5rem;border-radius:var(--radius-pill);background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;transition:border-color .2s}
.inv-search input:focus{outline:none;border-color:var(--brand)}

/* rows */
.inv-list{display:flex;flex-direction:column;gap:.6rem}
/* NOTE: finance.css also defines a generic `.inv-row` (invoice editor grid) that
   loads after this file. Scope inventory rows under #panel-inventory so they win. */
#panel-inventory .inv-row{display:flex;grid-template-columns:none}
#panel-inventory .inv-row.st-crow{display:grid}
#panel-inventory .inv-row button{font-size:inherit;color:inherit}
.inv-row{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:.75rem 1rem;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}
.inv-row:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.inv-row.is-low{border-left:3px solid oklch(0.78 0.15 65)}
.inv-row.is-out{border-left:3px solid oklch(0.6 0.2 25)}
.inv-row__main{flex:1;min-width:0}
.inv-row__main b{font-family:var(--font-display);font-weight:600;font-size:1rem;display:block;line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-row__codes{font-size:.8rem;color:var(--ink-3);display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.25rem}
.inv-row__codes .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-3);opacity:.5}
.mono{font-family:var(--font-mono);font-size:.92em}
.inv-tag{font-family:var(--font-mono);font-size:.64rem;font-weight:700;letter-spacing:.04em;padding:.2em .55em;border-radius:var(--radius-pill)}
.inv-tag.low{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.inv-tag.out{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
[data-theme="dark"] .inv-tag.out{color:oklch(0.8 0.16 28)}

/* stepper */
.inv-stepper{display:inline-flex;align-items:center;gap:.15rem;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--radius-pill);padding:3px;flex:none}
.inv-stepper button{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:1.15rem;font-weight:700;
  color:var(--ink-2);background:var(--surface);border:1px solid var(--line);line-height:1;transition:.15s}
.inv-stepper button:hover:not(:disabled){color:var(--brand-ink);border-color:var(--brand)}
.inv-stepper button:disabled{opacity:.3;cursor:not-allowed}
.inv-stepper__n{min-width:2.2ch;text-align:center;font-family:var(--font-mono);font-weight:700;font-size:1rem;color:var(--ink)}
.inv-row__val{text-align:right;flex:none;min-width:90px}
.inv-row__val b{font-family:var(--font-mono);font-weight:700;font-size:.95rem;display:block}
.inv-row__val span{font-size:.72rem;color:var(--ink-3);font-family:var(--font-mono)}
.inv-row__act{display:flex;align-items:center;gap:.45rem;flex:none}
@media (max-width:760px){
  .inv-row{flex-wrap:wrap}
  .inv-row__main{flex-basis:100%;order:-1}
  .inv-row__val{min-width:0}
}

/* ---- adjust drawer ---- */
.adj-hero{display:flex;align-items:center;gap:1.1rem;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.4rem}
.adj-hero__now{text-align:center;flex:none;padding-right:1.1rem;border-right:1px solid var(--line)}
.adj-hero__now span{display:block;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.adj-hero__now b{font-family:var(--font-display);font-size:2.2rem;line-height:1;display:block;margin-top:.1rem}
.adj-hero__now b.is-low{color:var(--accent-strong)}.adj-hero__now b.is-out{color:oklch(0.58 0.2 25)}
.adj-hero__meta{min-width:0}
.adj-hero__meta b{font-family:var(--font-display);font-size:1.02rem;display:block;line-height:1.25}
.adj-hero__meta span{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-3)}
.adj-types{display:flex;gap:.5rem;flex-wrap:wrap}
.adj-types button{display:flex;flex-direction:column;align-items:center;gap:.2rem;flex:1;min-width:74px;padding:.65rem .4rem;
  border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:.82rem;transition:.15s}
.adj-types button i{font-style:normal;font-size:1.05rem;font-weight:800;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3)}
.adj-types button:hover{border-color:var(--line-2)}
.adj-types button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.adj-types button.on.up i{background:oklch(0.55 0.13 150);color:#fff}
.adj-types button.on.down i{background:oklch(0.58 0.2 25);color:#fff}
.adj-types button.on.flat i{background:var(--brand);color:#fff}
.adj-preview{padding:.8rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);
  display:flex;align-items:baseline;gap:.5rem}
.adj-preview b{font-family:var(--font-display);font-size:1.35rem;line-height:1}
.adj-preview .up{color:oklch(0.5 0.13 150);font-weight:700}
.adj-preview .down{color:oklch(0.58 0.2 25);font-weight:700}
.adj-preview .flat{color:var(--ink-3)}
.btn--block{width:100%;justify-content:center;margin-top:1rem}
.adj-bcprev{display:flex;justify-content:center;align-items:center;min-height:60px;padding:.6rem;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:1.1rem}
.adj-bcprev svg{max-width:100%;height:auto}
.adj-bcprev__empty{color:#999;font-size:.85rem;font-family:var(--font-mono)}
.adj-hist{display:flex;flex-direction:column;gap:.4rem}
.adj-hist__empty{color:var(--ink-3);font-size:.88rem;padding:.6rem 0}
.adj-hrow{display:flex;align-items:center;gap:.8rem;padding:.6rem .2rem;border-bottom:1px solid var(--line)}
.adj-hrow:last-child{border-bottom:0}

/* ---- inventory sub-nav ---- */
.inv-subnav{margin-bottom:1.4rem;flex-wrap:wrap}
.inv-subnav button{display:inline-flex;align-items:center;gap:.4rem}
.inv-subnav button svg{width:16px;height:16px}

/* ---- extra pill tones ---- */
.rep-pill[data-tone="muted"]{background:var(--surface-3);color:var(--ink-3)}
.rep-pill[data-tone="bad"]{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-pill[data-tone="bad"]{background:oklch(0.6 0.2 25 / .24);color:oklch(0.8 0.16 28)}

/* ---- reorder banner ---- */
.inv-banner{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:1.2rem}
.inv-banner svg{width:22px;height:22px;flex:none}
.inv-banner__txt{flex:1;min-width:0}
.inv-banner__txt b{display:block;font-family:var(--font-display);font-size:.98rem;line-height:1.2}
.inv-banner__txt span{display:block;font-size:.82rem;color:var(--ink-3);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-banner__act{flex:none}
.inv-banner--warn{border-color:oklch(0.78 0.15 65 / .5);background:oklch(0.9 0.09 75 / .16)}
.inv-banner--warn>svg{color:var(--accent-strong)}
.inv-banner--ok{border-style:dashed}
.inv-banner--ok>svg{color:oklch(0.55 0.13 150)}
[data-theme="dark"] .inv-banner--warn{background:oklch(0.6 0.12 75 / .16)}

/* ---- serialized units ---- */
.sn-row__sn{flex:none;min-width:120px}
.sn-row__sn .mono{font-weight:700;font-size:.92rem;color:var(--ink)}
@media (max-width:760px){.sn-row__sn{min-width:0;flex-basis:100%;order:-1}}
.sn-statusgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:.5rem}
.sn-statusgrid button{padding:.6rem .5rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--ink-2);font-weight:600;font-size:.85rem;cursor:pointer;transition:.15s}
.sn-statusgrid button:hover{border-color:var(--line-2);color:var(--ink)}
.sn-statusgrid button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.sn-statusgrid button.on.good{border-color:oklch(0.6 0.13 150);background:oklch(0.6 0.13 150 / .12);color:oklch(0.44 0.13 150)}
.sn-statusgrid button.on.warn{border-color:var(--accent);background:oklch(0.78 0.15 65 / .13);color:var(--accent-strong)}
.sn-statusgrid button.on.bad{border-color:oklch(0.6 0.2 25);background:oklch(0.6 0.2 25 / .1);color:oklch(0.55 0.2 25)}

/* ---- stock-takes ---- */
.st-row__ic{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.st-row__ic svg{width:20px;height:20px}
.st-neg{color:oklch(0.55 0.2 25)}.st-pos{color:oklch(0.46 0.13 150)}
[data-theme="dark"] .st-neg{color:oklch(0.8 0.16 28)}[data-theme="dark"] .st-pos{color:oklch(0.82 0.14 150)}
.st-scopebar{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink-3);margin-bottom:1rem}
.st-scopebar .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-3);opacity:.5}
.st-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:1.4rem}
.st-stats .inv-stat{padding:.8rem .9rem}
.st-stats .inv-stat b{font-size:1.5rem}
.st-count{display:flex;flex-direction:column;gap:.4rem}
.st-crow{display:grid;grid-template-columns:1fr auto auto 64px;align-items:center;gap:.9rem;
  padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.st-crow.has-var{border-color:oklch(0.78 0.15 65 / .55);background:oklch(0.9 0.09 75 / .1)}
.st-crow__main{min-width:0}
.st-crow__main b{display:block;font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-crow__main .mono{font-size:.76rem;color:var(--ink-3)}
.st-crow__exp{text-align:center;flex:none}
.st-crow__exp span{display:block;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.st-crow__exp b{font-family:var(--font-mono);font-size:1.05rem}
.st-crow__cnt{flex:none;width:84px}
.st-crow__cnt label{display:block;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.15rem}
.st-crow__cnt input{width:100%;padding:.4rem .5rem;text-align:center;font-family:var(--font-mono);font-weight:700;
  border:1.5px solid var(--line);border-radius:8px;background:var(--surface-2)}
.st-crow__cnt input:focus{border-color:var(--brand);outline:none}
.st-crow__var{text-align:right;font-family:var(--font-mono);font-weight:700;font-size:.95rem}
.st-crow__var .up{color:oklch(0.46 0.13 150)}.st-crow__var .down{color:oklch(0.55 0.2 25)}.st-crow__var .flat{color:var(--ink-3)}
.st-await{color:var(--ink-3);opacity:.6}
@media (max-width:640px){.st-crow{grid-template-columns:1fr auto auto;grid-auto-rows:auto}.st-crow__var{grid-column:3}}

/* ---- serial picker (shared: POS / Repairs / RMA) ---- */
.sn-picklist{display:flex;flex-direction:column;gap:.4rem;max-height:46vh;overflow:auto}
.sn-pickrow{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.6rem .8rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:.15s}
.sn-pickrow:hover{border-color:var(--brand);background:var(--brand-soft)}
.sn-pickrow .mono{font-weight:700;font-size:.9rem;flex:1;min-width:0}
.sn-pickrow small{color:var(--ink-3);font-size:.78rem}

/* ---- POS cart line serial ---- */
.pos-line__sn{display:inline-flex;align-items:center;gap:.35rem;margin-top:.3rem;font-size:.74rem;
  color:var(--brand-ink);cursor:pointer;font-weight:600}
.pos-line__sn svg{width:13px;height:13px}
.pos-line__sn:hover{text-decoration:underline}
.pos-line__snlist{font-family:var(--font-mono);color:var(--ink-2);font-weight:500}
.pos-line__sn em{font-style:normal;color:var(--accent-strong)}
.pos-line__snadd{color:var(--brand-ink)}

/* ---- repairs part / RMA serial field ---- */
.rp-snwrap,.rma-snwrap{display:flex;align-items:center;gap:.4rem}
.rp-snwrap input,.rma-snwrap input{flex:1;min-width:0}
.rp-sntag,.rma-sntag{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;
  color:oklch(0.46 0.13 150);white-space:nowrap}
.rp-sntag svg,.rma-sntag svg{width:12px;height:12px}
[data-theme="dark"] .rp-sntag,[data-theme="dark"] .rma-sntag{color:oklch(0.82 0.14 150)}
.adj-hrow__d{font-family:var(--font-mono);font-weight:700;font-size:.9rem;min-width:44px;text-align:center;padding:.2em .3em;border-radius:7px}
.adj-hrow__d.up{background:oklch(0.55 0.13 150 / .15);color:oklch(0.42 0.13 150)}
.adj-hrow__d.down{background:oklch(0.6 0.2 25 / .13);color:oklch(0.52 0.2 25)}
.adj-hrow__d.flat{background:var(--surface-3);color:var(--ink-3)}
[data-theme="dark"] .adj-hrow__d.up{color:oklch(0.8 0.14 150)}[data-theme="dark"] .adj-hrow__d.down{color:oklch(0.8 0.16 28)}
.adj-hrow__mid{flex:1;min-width:0}
.adj-hrow__mid b{font-size:.9rem;display:block}
.adj-hrow__mid span{font-size:.82rem;color:var(--ink-2);display:block}
.adj-hrow__mid small{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3)}
.adj-hrow time{font-size:.74rem;color:var(--ink-3);flex:none}

/* ---- centered modal ---- */
.invmodal .invmodal__box{position:relative;z-index:1;margin:auto;top:50%;transform:translateY(-50%);
  width:min(560px,100%);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.invmodal__body{padding:1.2rem clamp(1rem,3vw,1.5rem);overflow-y:auto}

/* ---- scan ---- */
.scanwrap{position:relative;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;background:#0c0f14;
  display:flex;align-items:center;justify-content:center}
.scanwrap video{width:100%;height:100%;object-fit:cover}
.scan-reticle{position:absolute;inset:16% 12%;border:2px solid oklch(0.85 0.12 var(--brand-h) / .9);border-radius:14px;
  box-shadow:0 0 0 100vmax oklch(0.08 0.02 220 / .35);pointer-events:none}
.scan-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:.78rem;
  background:oklch(0.1 0.02 220 / .7);color:#fff;padding:.35em .8em;border-radius:var(--radius-pill);white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}
.scan-hint.hit{background:var(--brand);color:#fff}
.scan-nocam{padding:1.6rem;text-align:center;color:oklch(0.75 0.02 220)}
.scan-nocam svg{width:38px;height:38px;margin:0 auto .8rem;color:oklch(0.6 0.02 220)}
.scan-nocam p{font-size:.9rem;line-height:1.55;max-width:42ch;margin:0 auto}
.scan-nocam b{color:#fff}
.scan-field{margin:1.1rem 0 .4rem}
.scan-result{display:none}
.scan-result.show{display:block;margin:.4rem 0 1rem;animation:tw-in .2s var(--ease-out)}
.scan-card{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;border:1.5px solid oklch(0.55 0.13 150 / .5);
  background:oklch(0.55 0.13 150 / .07);border-radius:var(--radius);padding:.8rem}
.scan-card img,.scan-card__ph{width:56px;height:44px;border-radius:8px;object-fit:cover;flex:none;background:var(--surface-3)}
.scan-card__main{flex:1;min-width:140px}
.scan-card__main b{font-family:var(--font-display);font-size:1rem;display:block}
.scan-card__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink-3);margin-top:.2rem}
.scan-card__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-3);opacity:.5}
.scan-card__act{display:flex;gap:.4rem;flex-wrap:wrap;flex-basis:100%}
.scan-unknown{border:1.5px solid oklch(0.6 0.2 25 / .45);background:oklch(0.6 0.2 25 / .07);border-radius:var(--radius);padding:.9rem 1rem}
.scan-unknown__hd b{display:block;font-size:.96rem}
.scan-unknown__hd span{display:block;font-size:.84rem;color:var(--ink-3);margin-top:.15rem}
.scan-assign{display:flex;gap:.5rem;margin-top:.7rem;flex-wrap:wrap}
.scan-assign select{flex:1;min-width:180px;padding:.6rem .8rem;border-radius:var(--radius-sm);background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink);font-size:.9rem;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:1.9rem}
.scan-log{display:flex;flex-direction:column;gap:.15rem;max-height:170px;overflow-y:auto}
.scan-log__row{display:flex;align-items:center;gap:.6rem;font-size:.84rem;color:var(--ink-2);padding:.3rem .1rem;border-bottom:1px solid var(--line)}
.scan-log__row time{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);flex:none}
.scan-log__row.ok{color:var(--ink)}
.scan-log__no{color:oklch(0.58 0.2 25);font-weight:600}

/* ---- labels ---- */
.lbl-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.55rem}
.lbl-presets button{text-align:left;padding:.7rem .85rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:var(--surface-2);transition:.15s}
.lbl-presets button b{display:block;font-size:.9rem;color:var(--ink)}
.lbl-presets button span{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);margin-top:.15rem}
.lbl-presets button:hover{border-color:var(--line-2)}
.lbl-presets button.on{border-color:var(--brand);background:var(--brand-soft)}
.lbl-presets button.on b{color:var(--brand-ink)}
.lbl-opts{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:.9rem}
.lbl-chk{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;color:var(--ink-2);cursor:pointer}
.lbl-chk input{width:16px;height:16px;accent-color:var(--brand)}
.lbl-tools{display:flex;gap:.5rem;margin-bottom:.7rem}
.lbl-list{display:flex;flex-direction:column;gap:.5rem}
.lbl-item{display:flex;align-items:center;gap:.9rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface-2);padding:.55rem .75rem}
.lbl-item__bc{flex:none;width:90px;height:34px;background:#fff;border-radius:6px;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;padding:2px}
.lbl-item__bc svg{max-width:100%;max-height:100%}
.lbl-item__main{flex:1;min-width:0}
.lbl-item__main b{font-size:.9rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbl-item__main span{font-size:.76rem;color:var(--ink-3)}
.lbl-copies{display:inline-flex;align-items:center;gap:.2rem;flex:none}
.lbl-copies button{width:28px;height:28px;border-radius:7px;background:var(--surface);border:1px solid var(--line);
  color:var(--ink-2);font-size:1rem;font-weight:700;line-height:1}
.lbl-copies button:hover{border-color:var(--brand);color:var(--brand-ink)}
.lbl-copies input{width:48px;text-align:center;padding:.4rem;border-radius:7px;background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink);font-family:var(--font-mono);font-weight:600}
.lbl-copies input:focus{outline:none;border-color:var(--brand)}

/* ============================================================================
   REPAIRS / DEVICE INTAKE
   ========================================================================== */
/* toolbar + search */
.rep-toolbar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.rep-search{position:relative;flex:1;min-width:240px}
.rep-search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3)}
.rep-search input{width:100%;padding:.72rem 1rem .72rem 2.5rem;border-radius:var(--radius-pill);background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;transition:border-color .2s}
.rep-search input:focus{outline:none;border-color:var(--brand)}

/* filter chips */
.rep-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}
.rep-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .55rem .45rem .9rem;border-radius:var(--radius-pill);
  background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-weight:600;font-size:.86rem;transition:.15s}
.rep-chip:hover{border-color:var(--line-2);color:var(--ink)}
.rep-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.rep-chip__n{font-family:var(--font-mono);font-size:.72rem;font-weight:700;background:var(--surface-3);color:var(--ink-3);
  min-width:1.6em;text-align:center;padding:.1em .45em;border-radius:var(--radius-pill)}
.rep-chip.on .rep-chip__n{background:var(--brand);color:var(--on-brand)}

/* ticket rows */
.rep-card .arow-main b{display:flex;align-items:center;gap:.55rem;white-space:normal}
.rep-ticket{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.03em;color:var(--ink-3);
  background:var(--surface-3);padding:.15em .5em;border-radius:6px;flex:none}
.rep-card .meta .rep-flag{display:inline-flex;align-items:center;gap:.25em;color:var(--accent-strong);font-weight:600}
.rep-card .meta .rep-flag svg{width:12px;height:12px}
.rep-card .meta .rep-tech{display:inline-flex;align-items:center;gap:.3em;color:var(--brand-ink);font-weight:600}
.rep-card .meta .rep-quote{font-weight:700;color:var(--ink)}
.rep-card .meta .rep-warr{display:inline-flex;align-items:center;gap:.3em;font-weight:600}
.rep-card .meta .rep-warr svg{width:12px;height:12px}
.rep-card .meta .rep-warr[data-tone="good"]{color:oklch(0.5 0.13 150)}
.rep-card .meta .rep-warr[data-tone="warn"]{color:var(--accent-strong)}
.rep-card .meta .rep-warr[data-tone="info"]{color:var(--brand-ink)}
[data-theme="dark"] .rep-card .meta .rep-warr[data-tone="good"]{color:oklch(0.82 0.14 150)}

/* warranty segmented control */
.rep-warranty{display:flex;flex-wrap:wrap;gap:.4rem}
.rep-warranty button{flex:1;min-width:fit-content;padding:.6rem .8rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:.86rem;white-space:nowrap;transition:.15s}
.rep-warranty button:hover{border-color:var(--line-2);color:var(--ink)}
.rep-warranty button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.rep-warranty button.on[data-tone="good"]{border-color:oklch(0.6 0.13 150);background:oklch(0.6 0.13 150 / .12);color:oklch(0.44 0.13 150)}
.rep-warranty button.on[data-tone="warn"]{border-color:var(--accent);background:oklch(0.78 0.15 65 / .13);color:var(--accent-strong)}
[data-theme="dark"] .rep-warranty button.on[data-tone="good"]{color:oklch(0.82 0.14 150)}
.rep-card .meta .rep-tech svg{width:12px;height:12px}
.rep-card .meta .rep-ready{display:inline-flex;align-items:center;gap:.3em;font-weight:600}
.rep-card .meta .rep-ready svg{width:12px;height:12px}
.rep-card .meta .rep-ready[data-state="over"]{color:oklch(0.58 0.2 25)}
.rep-card .meta .rep-ready[data-state="today"]{color:var(--accent-strong)}
[data-theme="dark"] .rep-card .meta .rep-ready[data-state="over"]{color:oklch(0.8 0.16 28)}

/* assigned technician + ready date fields */
.rep-workrow{margin-top:1.1rem}
.rep-workrow .afield{margin-bottom:0}
.rep-quotefield{margin-top:1.1rem;margin-bottom:0}
.rep-quoteinput{max-width:200px}
.rep-quoteinput input{width:120px;border:none;background:transparent;color:var(--ink);padding:.55rem .2rem;outline:none;font-family:var(--font-mono);font-size:.95rem}
.rep-techfield input,.afield input[type="date"]{padding:.8rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink);font-size:.95rem;width:100%;font-family:inherit;transition:border-color .2s,background .2s}
.rep-techfield input:focus,.afield input[type="date"]:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.afield input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}
[data-theme="dark"] .afield input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1)}
.rep-datewrap{display:flex;align-items:center;gap:.5rem}
.rep-datewrap input[type="date"]{flex:1}
.rep-dateclear{flex:none;font-size:.8rem;font-weight:600;color:var(--ink-3);padding:.5rem .8rem;border-radius:var(--radius-pill);
  border:1px solid var(--line);transition:.15s}
.rep-dateclear:hover{color:var(--ink);border-color:var(--line-2)}
@media (max-width:680px){.rep-workrow{grid-template-columns:1fr}}
.rep-advance svg{width:1em;height:1em}
@media (max-width:680px){.rep-advance{display:none}}

/* status pill tones (shared with .statuspill base) */
.rep-pill[data-tone]{border-radius:var(--radius-pill)}
.rep-pill[data-tone="new"]{background:oklch(0.94 0.04 255 / .9);color:oklch(0.45 0.14 255)}
.rep-pill[data-tone="prog"]{background:var(--brand-soft);color:var(--brand-ink)}
.rep-pill[data-tone="good"]{background:oklch(0.95 0.06 150 / .9);color:oklch(0.44 0.13 150)}
.rep-pill[data-tone="warn"]{background:oklch(0.9 0.09 75 / .55);color:var(--accent-strong)}
.rep-pill[data-tone="done"]{background:var(--surface-3);color:var(--ink-3)}
[data-theme="dark"] .rep-pill[data-tone="new"]{background:oklch(0.4 0.08 255 / .35);color:oklch(0.85 0.1 255)}
[data-theme="dark"] .rep-pill[data-tone="good"]{background:oklch(0.4 0.08 150 / .3);color:oklch(0.85 0.12 150)}
[data-theme="dark"] .rep-pill[data-tone="warn"]{background:oklch(0.6 0.12 75 / .22)}

/* editor header ticket chip */
.ticket-chip{font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--brand-ink);
  background:var(--brand-soft);padding:.3em .7em;border-radius:var(--radius-pill);margin-right:.4rem}

/* data-backup toggle */
.rep-backup{display:flex;align-items:center;gap:.9rem;margin-top:1rem;padding:.85rem 1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.rep-backup:has(input:checked){border-color:oklch(0.78 0.15 65 / .6);background:oklch(0.78 0.15 65 / .1)}
.rep-backup input{position:absolute;opacity:0;pointer-events:none}
.rep-backup__txt{flex:1;display:flex;flex-direction:column;gap:.1rem}
.rep-backup__txt b{font-size:.95rem;color:var(--ink);font-weight:600}
.rep-backup__txt small{font-size:.8rem;color:var(--ink-3)}
.rep-backup__badge{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:var(--surface-3);color:var(--ink-3);transition:.15s}
.rep-backup__badge svg{width:17px;height:17px}
.rep-backup:has(input:checked) .rep-backup__badge{background:var(--accent);color:#241500}

/* status stepper */
.rep-steps{display:flex;flex-direction:column;gap:.35rem}
.rep-step{display:flex;align-items:center;gap:.85rem;text-align:left;padding:.7rem .8rem;border-radius:var(--radius-sm);
  border:1.5px solid transparent;background:transparent;position:relative;transition:.15s}
.rep-step::before{content:"";position:absolute;left:calc(.8rem + 15px);top:-.35rem;width:2px;height:.35rem;background:var(--line-2)}
.rep-step:first-child::before{display:none}
.rep-step__dot{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface-2);border:1.5px solid var(--line-2);color:var(--ink-3);transition:.15s}
.rep-step__dot svg{width:16px;height:16px}
.rep-step__txt{flex:1;display:flex;flex-direction:column;gap:.05rem}
.rep-step__txt b{font-size:.94rem;font-weight:600;color:var(--ink-2)}
.rep-step__txt small{font-size:.78rem;color:var(--ink-3)}
.rep-step__now{flex:none;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--on-brand);background:var(--brand);padding:.25em .6em;border-radius:var(--radius-pill)}
.rep-step:hover{background:var(--surface-2)}
.rep-step.done .rep-step__dot{background:oklch(0.55 0.13 150 / .15);border-color:oklch(0.55 0.13 150 / .5);color:oklch(0.48 0.13 150)}
.rep-step.done .rep-step__txt b{color:var(--ink-2)}
.rep-step.on{background:var(--brand-soft);border-color:var(--brand)}
.rep-step.on .rep-step__dot{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.rep-step.on .rep-step__txt b{color:var(--brand-ink)}
[data-theme="dark"] .rep-step.done .rep-step__dot{color:oklch(0.82 0.14 150)}

/* device-received (separate from the pipeline) */
.rep-recv{display:flex;align-items:center;gap:.9rem;margin-bottom:.8rem;padding:.85rem 1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.rep-recv:has(input:checked){border-color:oklch(0.55 0.13 150 / .55);background:oklch(0.55 0.13 150 / .09)}
.rep-recv input{position:absolute;opacity:0;pointer-events:none}
.rep-recv__badge{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3);transition:.15s}
.rep-recv__badge svg{width:18px;height:18px}
.rep-recv:has(input:checked) .rep-recv__badge{background:oklch(0.55 0.13 150);color:#fff}
.rep-recv__txt{flex:1;display:flex;flex-direction:column;gap:.1rem}
.rep-recv__txt b{font-size:.95rem;color:var(--ink);font-weight:600}
.rep-recv__txt small{font-size:.8rem;color:var(--ink-3)}
.rep-recv__check{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);color:transparent;transition:.15s}
.rep-recv__check svg{width:15px;height:15px}
.rep-recv:has(input:checked) .rep-recv__check{border-color:oklch(0.55 0.13 150);background:oklch(0.55 0.13 150);color:#fff}
.rep-recv__date{margin:-.2rem 0 .9rem;padding-left:.2rem}
.rep-recv__date>label{display:block;font-size:.8rem;color:var(--ink-3);margin-bottom:.35rem}

/* parts & materials */
.rep-parthelp{margin:0 0 .9rem;font-size:.86rem;line-height:1.5;color:var(--ink-3)}
.rep-parts{display:flex;flex-direction:column;gap:.7rem}
.rep-parts-empty{padding:.9rem 1rem;border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.86rem;color:var(--ink-3)}
.rep-deps{display:flex;flex-direction:column;gap:.5rem}
.rep-dep-sum{display:flex;gap:1.4rem;padding:.7rem .95rem;border-radius:var(--radius-sm);background:var(--brand-soft);margin-bottom:.2rem}
.rep-dep-sum__r span{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600}
.rep-dep-sum__r b{font-family:var(--font-mono);font-size:1.05rem;font-weight:700}
.rep-dep-sum__owe b{color:oklch(0.6 0.16 55)}
.rep-dep{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border:1.5px solid var(--line);border-left-width:4px;border-radius:var(--radius-sm);background:var(--surface-2)}
.rep-dep[data-tone="good"]{border-left-color:oklch(0.62 0.14 150)}
.rep-dep[data-tone="warn"]{border-left-color:oklch(0.72 0.15 65)}
.rep-dep[data-tone="bad"]{border-left-color:oklch(0.6 0.2 25)}
.rep-dep__m{flex:1;min-width:0}
.rep-dep__m b{display:block;font-size:.9rem}
.rep-dep__m small{color:var(--ink-3);font-size:.8rem}
.rep-dep__amt{font-family:var(--font-mono);font-weight:700}
.rep-part{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:.85rem .9rem;display:flex;flex-direction:column;gap:.7rem}
.rep-part__top{display:flex;gap:.6rem;align-items:center}
.rp-desc{flex:1;padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.92rem;font-weight:600;outline:none}
.rp-desc:focus{border-color:var(--brand)}
.rep-part__del{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;transition:.15s}
.rep-part__del svg{width:15px;height:15px}
.rep-part__del:hover{border-color:oklch(0.58 0.2 25 / .5);color:oklch(0.58 0.2 25);background:oklch(0.58 0.2 25 / .08)}
.rep-part__grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .7rem}
.rp-f{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.rp-f>span{font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3)}
.rp-f>span em{font-style:normal;font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3);opacity:.75}
.rp-f--wide{grid-column:span 2}
.rp-f--qty{max-width:90px}
.rp-f input{padding:.5rem .6rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.9rem;outline:none;width:100%}
.rp-f input:focus{border-color:var(--brand)}
.rp-money{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding-left:.6rem}
.rp-money:focus-within{border-color:var(--brand)}
.rp-money i{font-style:normal;color:var(--ink-3);font-family:var(--font-mono);font-size:.9rem}
.rp-money input{border:none;background:transparent;padding:.5rem .3rem;font-family:var(--font-mono)}
.rp-money input:focus{border:none}
.rp-margin{display:flex;flex-direction:column;gap:.1rem;justify-content:center;align-items:flex-end;padding:.15rem .1rem}
.rp-margin span{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.rp-margin b{font-family:var(--font-mono);font-size:.95rem;font-weight:700}
.rp-margin[data-tone="good"] b{color:oklch(0.5 0.13 150)}
.rp-margin[data-tone="bad"] b{color:oklch(0.58 0.2 25)}
[data-theme="dark"] .rp-margin[data-tone="good"] b{color:oklch(0.8 0.14 150)}
[data-theme="dark"] .rp-margin[data-tone="bad"] b{color:oklch(0.72 0.17 25)}
.rep-part__status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;border-top:1px solid var(--line);padding-top:.7rem}
.rep-co{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.6rem .8rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);margin-bottom:.4rem}
.rep-co[data-state="approved"]{border-color:oklch(0.55 0.13 150 / .45)}
.rep-co[data-state="declined"]{border-color:oklch(0.6 0.2 25 / .4)}
.rep-co__m{flex:1;min-width:170px;display:flex;flex-direction:column;gap:.12rem}
.rep-co__m b{font-size:.88rem;font-weight:600}
.rep-co__m span{font-size:.76rem;color:var(--ink-3)}
.rep-co__amt{flex:none;font-family:var(--font-mono);font-size:.88rem}
.rep-co-add{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}
.rep-co-add>input[type="text"]{flex:1;min-width:200px;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.86rem;outline:none}
.rep-co-add>input[type="text"]:focus{border-color:var(--brand)}
.rep-co-add .rp-money{flex:none;width:120px}
.rep-part__stock{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--line)}
.rp-stock-note{flex:1;min-width:170px;display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-3)}
.rp-stock-note svg{width:14px;height:14px;flex:none}
.rep-part__stock[data-state="taken"] .rp-stock-note{color:oklch(0.48 0.13 150)}
.rep-part__stock[data-state="short"] .rp-stock-note{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-part__stock[data-state="taken"] .rp-stock-note{color:oklch(0.82 0.14 150)}
[data-theme="dark"] .rep-part__stock[data-state="short"] .rp-stock-note{color:oklch(0.8 0.16 28)}
.rp-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-2);font-size:.82rem;font-weight:600;cursor:pointer;transition:.15s}
.rp-chip svg{width:14px;height:14px}
.rp-chip:hover{border-color:var(--line-2);background:var(--surface-3)}
.rp-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.rp-chip--recv.on{border-color:oklch(0.55 0.13 150 / .6);background:oklch(0.55 0.13 150 / .12);color:oklch(0.42 0.13 150)}
[data-theme="dark"] .rp-chip--recv.on{color:oklch(0.82 0.14 150)}
.rp-posted{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;font-size:.76rem;font-weight:600;color:oklch(0.5 0.13 150)}
.rp-posted svg{width:14px;height:14px}
.rp-eta-pill,.rp-track-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;color:var(--ink-3)}
.rp-eta-pill svg,.rp-track-pill svg{width:14px;height:14px}
.rp-track-pill{font-family:var(--font-mono)}
[data-theme="dark"] .rp-posted{color:oklch(0.82 0.14 150)}
.rep-parts-sum{display:flex;flex-wrap:wrap;gap:.4rem .6rem;margin-top:.9rem}
.rp-sumrow{flex:1;min-width:120px;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .8rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rp-sumrow span{font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3)}
.rp-sumrow b{font-family:var(--font-mono);font-size:1.05rem;font-weight:700;color:var(--ink)}
.rp-sumrow--profit[data-tone="good"]{border-color:oklch(0.55 0.13 150 / .5);background:oklch(0.55 0.13 150 / .09)}
.rp-sumrow--profit[data-tone="good"] b{color:oklch(0.46 0.13 150)}
.rp-sumrow--profit[data-tone="bad"]{border-color:oklch(0.58 0.2 25 / .5);background:oklch(0.58 0.2 25 / .08)}
.rp-sumrow--profit[data-tone="bad"] b{color:oklch(0.55 0.2 25)}
.rp-sumrow--profit b em{font-style:normal;font-size:.8rem;opacity:.75;margin-left:.25rem}
[data-theme="dark"] .rp-sumrow--profit[data-tone="good"] b{color:oklch(0.82 0.14 150)}
.rep-parts-acct{margin-top:.9rem;padding:.9rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rep-acct__hd{display:flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.rep-acct__hd svg{width:16px;height:16px;color:var(--ink-3)}
.rep-parts-acct p{margin:.5rem 0 .8rem;font-size:.83rem;line-height:1.5;color:var(--ink-3)}
.rep-acct__posted{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.7rem;font-size:.83rem;font-weight:600;color:oklch(0.5 0.13 150)}
.rep-acct__posted svg{width:15px;height:15px}
[data-theme="dark"] .rep-acct__posted{color:oklch(0.82 0.14 150)}
.rep-acct__note{display:block;margin-top:.5rem;font-size:.78rem;color:var(--ink-3)}
/* list-row badges */
.rep-await{display:inline-flex;align-items:center;gap:.3rem;color:oklch(0.55 0.16 55);font-weight:600}
.rep-await svg{width:13px;height:13px}
[data-theme="dark"] .rep-await{color:oklch(0.78 0.14 65)}
.rep-partspill{display:inline-flex;align-items:center;gap:.3rem;font-weight:600}
.rep-partspill svg{width:13px;height:13px}
.rep-partspill[data-tone="good"]{color:oklch(0.5 0.13 150)}
.rep-partspill[data-tone="prog"]{color:var(--ink-3)}
[data-theme="dark"] .rep-partspill[data-tone="good"]{color:oklch(0.82 0.14 150)}
.rep-partETA{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;color:var(--ink-3)}
.rep-partETA svg{width:13px;height:13px}
.rep-partETA[data-state="today"]{color:oklch(0.55 0.16 55)}
.rep-partETA[data-state="over"]{color:oklch(0.58 0.2 25)}
[data-theme="dark"] .rep-partETA[data-state="today"]{color:oklch(0.78 0.14 65)}
[data-theme="dark"] .rep-partETA[data-state="over"]{color:oklch(0.72 0.17 25)}

/* services picker */
.rep-svc-pick{position:relative}
.rep-svc-pick>input{width:100%;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;transition:.15s}
.rep-svc-pick>input:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rep-svc-drop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:.35rem;display:none;max-height:300px;overflow-y:auto}
.rep-svc-drop.open{display:block;animation:tw-in .15s var(--ease-out)}
.rep-svc-drop button{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;text-align:left;
  padding:.55rem .65rem;border-radius:8px;transition:.12s}
.rep-svc-drop button:hover{background:var(--brand-soft)}
.rep-svc-drop button span{display:flex;flex-direction:column;gap:.05rem;min-width:0}
.rep-svc-drop button b{font-size:.9rem;font-weight:600;color:var(--ink)}
.rep-svc-drop button small{font-size:.74rem;color:var(--ink-3)}
.rep-svc-drop button i{flex:none;font-style:normal;font-family:var(--font-mono);font-size:.82rem;font-weight:600;color:var(--brand-ink)}
.rep-svc-drop__none{padding:.7rem .65rem;font-size:.86rem;color:var(--ink-3)}

/* customer picker (repairs intake) */
.rep-custpick{position:relative;margin-bottom:.9rem}
.rep-custpick>input{width:100%;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;transition:.15s}
.rep-custpick>input:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rep-cust-drop button svg{width:16px;height:16px;color:var(--ink-3);flex:none}
.rep-cust-new{border-top:1px solid var(--line);margin-top:.3rem;padding-top:.55rem!important;
  justify-content:flex-start!important;color:var(--brand-ink)!important;font-weight:600}
.rep-cust-new .rep-cust-new__ic{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;
  background:var(--brand-soft);margin-right:.15rem;flex:none}
.rep-cust-new .rep-cust-new__ic svg{width:13px;height:13px;color:var(--brand-ink)}
.rep-cust-link{display:none;align-items:center;gap:.65rem;padding:.6rem .75rem;margin-bottom:.9rem;border-radius:var(--radius-sm);
  background:var(--brand-soft);border:1px solid var(--line-2)}
.rep-cust-link.on{display:flex}
.rep-cust-link__ic{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;flex:none}
.rep-cust-link__ic svg{width:14px;height:14px}
.rep-cust-link__txt{font-size:.82rem;color:var(--ink-2);line-height:1.4;flex:1;min-width:0}
.rep-cust-link__txt b{color:var(--ink);font-weight:700}
.rep-cust-link__x{flex:none;font-size:.78rem;font-weight:600;color:var(--ink-3);padding:.3em .75em;border-radius:var(--radius-pill);border:1px solid var(--line)}
.rep-cust-link__x:hover{color:oklch(0.58 0.2 25);border-color:oklch(0.58 0.2 25)}

/* service-call inline new customer */
.sc-custrow{display:flex;gap:.5rem;align-items:stretch}
.sc-custrow select{flex:1;min-width:0}
.sc-custrow .btn{flex:none;white-space:nowrap}
.sc-newcust{margin-top:.7rem;padding:.9rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px dashed var(--line-2)}
.sc-newcust .arow{margin-bottom:.6rem}
.sc-newcust__foot{display:flex;gap:.5rem;margin-top:.2rem}

/* linked-customer chip on repair rows */
.rep-linked{display:inline-flex;align-items:center;gap:.3em;color:var(--brand-ink);font-weight:600;cursor:pointer}
.rep-linked:hover{text-decoration:underline}
.rep-linked svg{width:13px;height:13px}
.rep-cnotes{display:inline-flex;align-items:center;gap:.3em;color:var(--ink-3);font-weight:600;cursor:default}
.rep-cnotes svg{width:13px;height:13px}
.cust-co svg{width:13px;height:13px}
.cust-coderow{display:flex;gap:.5rem;align-items:stretch}
.cust-coderow input{flex:1;min-width:0;font-family:var(--font-mono);text-transform:uppercase}
.cust-coderow .btn{flex:none;white-space:nowrap}

.rep-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.rep-chip-svc{display:inline-flex;align-items:center;gap:.5em;padding:.4em .4em .4em .8em;border-radius:var(--radius-pill);
  background:var(--surface-2);border:1.5px solid var(--line);font-size:.85rem}
.rep-chip-svc b{font-weight:600;color:var(--ink)}
.rep-chip-svc i{font-style:normal;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3)}
.rep-chip-svc button{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--surface-3);color:var(--ink-2);font-size:.9rem;line-height:1}
.rep-chip-svc button:hover{background:oklch(0.58 0.2 25);color:#fff}
.rep-estimate{display:flex;align-items:baseline;gap:.6rem;margin-top:.9rem}
.rep-estimate span{font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.rep-estimate b{font-family:var(--font-display);font-size:1.25rem;color:var(--ink)}
.rep-estimate b em{font-style:normal;font-size:.8rem;font-weight:500;color:var(--ink-3)}

/* smart quote */
.rep-smartquote{margin-top:.9rem}
.rsq{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:1rem 1.1rem}
.rsq--empty{display:flex;align-items:center;gap:.6rem;color:var(--ink-3);font-size:.86rem;padding:.85rem 1rem}
.rsq--empty svg{width:17px;height:17px;flex:none;color:var(--brand-ink)}
.rsq__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.85rem}
.rsq__badge{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--brand-ink)}
.rsq__badge svg{width:14px;height:14px;fill:currentColor;stroke:none}
.rsq__rate{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.rsq__rate .pf__in input{width:52px;text-align:right}
.rsq__rate .pf__in em{font-style:normal;color:var(--ink-3);font-family:var(--font-mono);font-size:.78rem;padding-left:.1rem}
.rsq__lines{display:flex;flex-direction:column;gap:.1rem}
.rsq__line{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
.rsq__name{flex:1;min-width:0;font-size:.9rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rsq__name em{font-style:normal;font-weight:500;font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-left:.3rem}
.rsq__hrs{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-3);font-size:.78rem;font-family:var(--font-mono)}
.rsq__hrs--muted{font-family:inherit;font-size:.78rem}
.rsq-hr{width:52px;text-align:right;background:var(--surface);border:1.5px solid var(--line);border-radius:7px;padding:.32rem .4rem;color:var(--ink);font-family:var(--font-mono);font-size:.82rem;outline:none}
.rsq-hr:focus{border-color:var(--brand)}
.rsq__hrs em{font-style:normal;white-space:nowrap}
.rsq__lt{font-family:var(--font-mono);font-size:.86rem;color:var(--ink-2);min-width:64px;text-align:right}
.rsq__markups{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}
.rsq__mklabel{font-family:var(--font-mono);font-size:.64rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-right:.2rem}
.rsq-mk{display:inline-flex;align-items:center;gap:.15rem;padding:.3rem .5rem .3rem .7rem;border-radius:var(--radius-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:.82rem;font-weight:600;transition:.15s var(--ease)}
.rsq-mk__t{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:.1rem 0}
.rsq-mk__p{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.76rem;color:var(--ink-3)}
.rsq-mk__p input{width:34px;text-align:right;border:0;background:transparent;color:inherit;font:inherit;padding:.1rem .1rem;outline:none;-moz-appearance:textfield}
.rsq-mk__p input::-webkit-outer-spin-button,.rsq-mk__p input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rsq-mk:hover{border-color:var(--brand)}
.rsq-mk:hover .rsq-mk__t{color:var(--brand-ink)}
.rsq-mk.on{background:var(--brand);border-color:transparent;color:var(--on-brand)}
.rsq-mk.on .rsq-mk__p{color:var(--on-brand);opacity:.85}
.rsq__line--parts .rsq__name{color:var(--ink-2)}
.rsq__line--parts b{font-family:var(--font-mono);font-size:.86rem;color:var(--ink-2);min-width:64px;text-align:right}
.rsq__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.85rem}
.rsq__sum{display:flex;flex-direction:column;gap:.1rem}
.rsq__sum>span{font-family:var(--font-mono);font-size:.64rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.rsq__sum>b{font-family:var(--font-display);font-size:1.6rem;line-height:1.05;color:var(--brand-ink)}
.rsq__sum small{font-size:.76rem;color:var(--ink-3)}
.rsq__sum small b{font-weight:600;color:var(--ink-2)}
.rsq__note{display:flex;align-items:center;gap:.45rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.8rem;color:var(--ink-3)}
.rsq__note svg{width:14px;height:14px;flex:none;color:oklch(0.62 0.16 150)}
.rsq__note b{font-weight:600;color:var(--ink-2)}
@media (max-width:520px){.rsq__lt,.rsq__line--parts b{min-width:0}.rsq__foot{align-items:stretch}}

/* included presets */
.rep-presets{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.rep-presets button{font-family:var(--font-mono);font-size:.76rem;font-weight:600;color:var(--ink-3);
  padding:.35em .7em;border-radius:var(--radius-pill);border:1px dashed var(--line-2);transition:.15s}
.rep-presets button:hover{color:var(--brand-ink);border-color:var(--brand);border-style:solid}

/* custom fields */
.rep-cfields{display:flex;flex-direction:column;gap:.5rem}
.rep-cfield{display:flex;gap:.5rem;align-items:center}
.rep-cfield__k{flex:0 0 34%;min-width:110px;padding:.6rem .75rem;border-radius:8px;background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink);font-size:.9rem;font-weight:600}
.rep-cfield__v{flex:1;min-width:0;padding:.6rem .75rem;border-radius:8px;background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink-2);font-size:.9rem}
.rep-cfield__k:focus,.rep-cfield__v:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rep-cfield__del{flex:none;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;
  background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3);transition:.15s}
.rep-cfield__del:hover{color:oklch(0.58 0.2 25);border-color:oklch(0.58 0.2 25)}
.rep-cfield__del svg{width:15px;height:15px}

/* work notes log */
.rep-notes{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1rem}
.rep-note{border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius-sm);
  background:var(--surface-2);padding:.7rem .85rem}
.rep-note__hd{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:.25rem}
.rep-note__hd b{font-size:.85rem;font-weight:700;color:var(--ink)}
.rep-note__hd time{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);flex:none}
.rep-note p{font-size:.9rem;color:var(--ink-2);line-height:1.55;white-space:pre-wrap}

.rep-empty-line{display:block;font-size:.86rem;color:var(--ink-3);padding:.3rem 0}
/* customer chat (Live Repair Chat, staff side) */
.rep-chat{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto;padding:.4rem;margin-bottom:.7rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rep-cmsg{max-width:82%;padding:.5rem .7rem;border-radius:12px;font-size:.9rem;line-height:1.45}
.rep-cmsg__b{white-space:pre-wrap;color:var(--ink)}
.rep-cmsg__m{font-size:.7rem;color:var(--ink-3);margin-top:.25rem;font-family:var(--font-mono)}
.rep-cmsg--cust{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.rep-cmsg--shop{align-self:flex-end;background:var(--brand);border-bottom-right-radius:4px}
.rep-cmsg--shop .rep-cmsg__b{color:var(--on-brand)}
.rep-cmsg--shop .rep-cmsg__m{color:var(--on-brand);opacity:.75;text-align:right}
.rep-chat-compose{display:flex;gap:.5rem;align-items:flex-end}
.rep-chat-compose textarea{flex:1;min-height:44px;resize:vertical}
.rep-chat-compose .btn{flex:none;white-space:nowrap}
.rep-chat-attach{flex:none;width:38px;align-self:stretch;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.rep-chat-attach:hover{background:var(--surface-2);color:var(--ink)}
.rep-chat-attach.has-img{border-color:var(--brand);color:var(--brand)}
.rep-chat-attach svg{width:16px;height:16px}
.rep-chat-canned{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .55rem}
.rep-canned-chip{font-size:.78rem;padding:.3rem .6rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer}
.rep-canned-chip:hover{border-color:var(--brand);color:var(--brand);background:var(--surface-2)}
.rep-cmsg__img{display:block;max-width:200px;max-height:200px;border-radius:8px;margin-bottom:.3rem}
.rep-cmsg__rcpt{font-size:.68rem;margin-top:.2rem;text-align:right}
.rep-cmsg--shop .rep-cmsg__rcpt{color:var(--on-brand);opacity:.8}
.rep-chatnew{display:inline-flex;align-items:center;gap:.25rem;color:oklch(0.55 0.15 25);font-weight:600}
.rep-chatnew svg{width:13px;height:13px}
.rep-typing{display:inline-flex;gap:4px;align-items:center;padding:.6rem .75rem !important}
.rep-typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-3);opacity:.5;animation:repTyping 1.2s infinite ease-in-out}
.rep-typing span:nth-child(2){animation-delay:.15s}
.rep-typing span:nth-child(3){animation-delay:.3s}
@keyframes repTyping{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:.9}}
@media (max-width:680px){
  .rep-cfield{flex-wrap:wrap}
  .rep-cfield__k{flex-basis:100%}
}

/* ---- dashboard summary ---- */
.rep-dash{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem;margin-bottom:1.4rem}
@media (max-width:1080px){.rep-dash{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.rep-dash{grid-template-columns:repeat(2,1fr)}}
.rep-stat{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.9rem 1rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:.15s;position:relative}
.rep-stat:not([disabled]){cursor:pointer}
.rep-stat:not([disabled]):hover{border-color:var(--line-2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.rep-stat__ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;margin-bottom:.35rem;
  background:var(--surface-3);color:var(--ink-3)}
.rep-stat__ic svg{width:16px;height:16px}
.rep-stat__n{font-family:var(--font-display);font-size:1.55rem;line-height:1;color:var(--ink)}
.rep-stat__l{font-size:.76rem;color:var(--ink-3);font-weight:500}
.rep-stat[data-tone="brand"] .rep-stat__ic{background:var(--brand-soft);color:var(--brand-ink)}
.rep-stat[data-tone="prog"] .rep-stat__ic{background:var(--brand-soft);color:var(--brand-ink)}
.rep-stat[data-tone="good"] .rep-stat__ic{background:oklch(0.6 0.13 150 / .15);color:oklch(0.46 0.13 150)}
.rep-stat[data-tone="warn"] .rep-stat__ic{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.rep-stat[data-tone="warn"] .rep-stat__n{color:var(--accent-strong)}
.rep-stat[data-tone="danger"] .rep-stat__ic{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
.rep-stat[data-tone="danger"] .rep-stat__n{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-stat[data-tone="good"] .rep-stat__ic{color:oklch(0.82 0.14 150)}
[data-theme="dark"] .rep-stat[data-tone="danger"] .rep-stat__n{color:oklch(0.8 0.16 28)}

/* ---- priority: control + card ---- */
.rep-priority,.rep-warranty{display:flex;flex-wrap:wrap;gap:.4rem}
.rep-priority button{flex:1;min-width:fit-content;padding:.6rem .8rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:.86rem;transition:.15s}
.rep-priority button:hover{border-color:var(--line-2);color:var(--ink)}
.rep-priority button.on[data-tone="low"]{border-color:var(--line-2);background:var(--surface-3);color:var(--ink)}
.rep-priority button.on[data-tone="normal"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.rep-priority button.on[data-tone="high"]{border-color:var(--accent);background:oklch(0.78 0.15 65 / .14);color:var(--accent-strong)}
.rep-priority button.on[data-tone="urgent"]{border-color:oklch(0.58 0.2 25);background:oklch(0.6 0.2 25 / .12);color:oklch(0.52 0.2 25)}
[data-theme="dark"] .rep-priority button.on[data-tone="urgent"]{color:oklch(0.8 0.16 28)}
.rep-prisec{padding-bottom:1.2rem;border-bottom:1px solid var(--line);margin-bottom:0}

.rep-card{border-left:3px solid transparent}
.rep-card[data-priority="high"]{border-left-color:var(--accent)}
.rep-card[data-priority="urgent"]{border-left-color:oklch(0.58 0.2 25)}
.rep-card .meta .rep-pri{display:inline-flex;align-items:center;gap:.3em;font-weight:700}
.rep-card .meta .rep-pri svg{width:12px;height:12px}
.rep-card .meta .rep-pri[data-tone="high"]{color:var(--accent-strong)}
.rep-card .meta .rep-pri[data-tone="urgent"]{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-card .meta .rep-pri[data-tone="urgent"]{color:oklch(0.8 0.16 28)}

/* ---- device PIN ---- */
.rep-pinwrap{display:flex;gap:.5rem;align-items:center}
.rep-pinwrap input{flex:1;padding:.8rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);
  border:1.5px solid var(--line);color:var(--ink);font-size:.95rem;font-family:var(--font-mono);letter-spacing:.06em}
.rep-pinwrap input:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rep-pineye{flex:none;width:42px;height:42px;border-radius:var(--radius-sm);display:grid;place-items:center;
  background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink-3);transition:.15s}
.rep-pineye:hover{color:var(--ink);border-color:var(--line-2)}
.rep-pineye.on{color:var(--brand-ink);border-color:var(--brand);background:var(--brand-soft)}
.rep-pineye svg{width:18px;height:18px}

/* ---- photos of device ---- */
.rep-imgdrop svg{width:24px;height:24px}
.rep-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem;margin-top:.8rem}
.rep-photos:empty{display:none}
.rep-photo{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface-3)}
.rep-photo img{width:100%;height:100%;object-fit:cover;display:block}
.rep-photo button{position:absolute;top:.3rem;right:.3rem;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;
  background:rgba(0,0,0,.62);color:#fff;transition:.15s;backdrop-filter:blur(4px)}
.rep-photo button:hover{background:oklch(0.58 0.2 25)}
.rep-photo button svg{width:14px;height:14px}

/* ---- before/after photo groups (required) ---- */
.rep-photogrp{margin-top:1rem}
.rep-photogrp:first-child{margin-top:0}
.rep-photogrp__hd{display:flex;align-items:center;gap:.55rem;margin-bottom:.5rem}
.rep-photogrp__hd b{font-size:.9rem;font-weight:600;color:var(--ink-2)}
.rep-photoreq{margin-left:auto}
.rep-photoreq__need{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.2em .6em;border-radius:var(--radius-pill);background:oklch(0.6 0.2 25 / .13);color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-photoreq__need{background:oklch(0.6 0.2 25 / .22);color:oklch(0.8 0.16 28)}
.rep-photoreq__ok{display:inline-flex;align-items:center;gap:.25em;font-family:var(--font-mono);font-size:.68rem;font-weight:700;
  padding:.2em .55em;border-radius:var(--radius-pill);background:oklch(0.6 0.13 150 / .15);color:oklch(0.44 0.13 150)}
.rep-photoreq__ok svg{width:12px;height:12px}
[data-theme="dark"] .rep-photoreq__ok{color:oklch(0.82 0.14 150)}

/* ---- auto-notify toggle ---- */
.rep-autonotify{display:flex;align-items:center;gap:.9rem;margin:.9rem 0 0;padding:.85rem 1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.rep-autonotify:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.rep-autonotify input{position:absolute;opacity:0;pointer-events:none}
.rep-autonotify__badge{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3);transition:.15s}
.rep-autonotify__badge svg{width:18px;height:18px}
.rep-autonotify:has(input:checked) .rep-autonotify__badge{background:var(--brand);color:var(--on-brand)}
.rep-autonotify__txt{flex:1;display:flex;flex-direction:column;gap:.1rem}
.rep-autonotify__txt b{font-size:.95rem;color:var(--ink);font-weight:600}
.rep-autonotify__txt small{font-size:.8rem;color:var(--ink-3)}
.rep-autonotify__check{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);color:transparent;transition:.15s}
.rep-autonotify__check svg{width:15px;height:15px}
.rep-autonotify:has(input:checked) .rep-autonotify__check{border-color:var(--brand);background:var(--brand);color:var(--on-brand)}

/* ---- SLA panel (editor) ---- */
.rep-sla{display:flex;align-items:center;gap:.8rem;margin-top:.7rem;padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rep-sla__ic{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3)}
.rep-sla__ic svg{width:17px;height:17px}
.rep-sla__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}
.rep-sla__top{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.rep-sla__b b{font-size:.9rem;font-weight:600;color:var(--ink)}
.rep-sla__b small{font-size:.8rem;color:var(--ink-3)}
.rep-sla__target{font-family:var(--font-mono);font-size:.74rem;font-weight:600;color:var(--ink-3)}
.rep-sla__bar{height:5px;border-radius:4px;background:var(--surface-3);overflow:hidden}
.rep-sla__bar i{display:block;height:100%;border-radius:4px;background:var(--brand);transition:width .3s}
.rep-sla[data-state="ok"] .rep-sla__ic{background:oklch(0.6 0.13 150 / .15);color:oklch(0.46 0.13 150)}
.rep-sla[data-state="ok"] .rep-sla__bar i{background:oklch(0.55 0.13 150)}
.rep-sla[data-state="warn"]{border-color:oklch(0.78 0.15 65 / .5)}
.rep-sla[data-state="warn"] .rep-sla__ic{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.rep-sla[data-state="warn"] .rep-sla__bar i{background:var(--accent)}
.rep-sla[data-state="warn"] .rep-sla__target{color:var(--accent-strong)}
.rep-sla[data-state="over"]{border-color:oklch(0.6 0.2 25 / .5);background:oklch(0.6 0.2 25 / .07)}
.rep-sla[data-state="over"] .rep-sla__ic{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
.rep-sla[data-state="over"] .rep-sla__bar i{background:oklch(0.58 0.2 25)}
.rep-sla[data-state="over"] .rep-sla__target{color:oklch(0.55 0.2 25)}
.rep-sla[data-state="done"] .rep-sla__ic{background:var(--surface-3);color:var(--ink-3)}
[data-theme="dark"] .rep-sla[data-state="over"] .rep-sla__target{color:oklch(0.8 0.16 28)}

/* ---- SLA / auto / diag pills in list rows ---- */
.rep-sla-pill,.rep-auto-pill,.rep-diagfail,.rep-diagtpl{display:inline-flex;align-items:center;gap:.3em;font-size:.76rem;font-weight:600}
.rep-sla-pill svg,.rep-auto-pill svg,.rep-diagfail svg,.rep-diagtpl svg{width:13px;height:13px}
.rep-diagtpl{color:var(--ink-3)}
.rep-sla-pill[data-state="ok"]{color:oklch(0.46 0.13 150)}
.rep-sla-pill[data-state="warn"]{color:var(--accent-strong)}
.rep-sla-pill[data-state="over"]{color:oklch(0.55 0.2 25)}
.rep-auto-pill{color:var(--brand-ink)}
.rep-diagfail{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rep-sla-pill[data-state="over"],[data-theme="dark"] .rep-diagfail{color:oklch(0.8 0.16 28)}
[data-theme="dark"] .rep-sla-pill[data-state="ok"]{color:oklch(0.82 0.14 150)}

/* ---- technician diagnostic checklist ---- */
.rep-diag{display:flex;flex-direction:column;gap:.4rem}
.rep-diag__tpl{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.6rem}
.rep-diag__tpl label{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.rep-diag__tpl select{padding:.42rem .6rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
.rep-diag__tpl select:focus{outline:none;border-color:var(--brand)}
.rep-diag__tplhint{font-size:.76rem;color:var(--ink-3)}
.rep-diag__hd{display:flex;align-items:center;gap:.7rem;margin-bottom:.35rem}
.rep-diag__prog{flex:1;height:6px;border-radius:4px;background:var(--surface-3);overflow:hidden}
.rep-diag__prog i{display:block;height:100%;border-radius:4px;background:var(--brand);transition:width .25s}
.rep-diag__prog i[data-tone="good"]{background:oklch(0.55 0.13 150)}
.rep-diag__prog i[data-tone="bad"]{background:oklch(0.58 0.2 25)}
.rep-diag__count{flex:none;font-family:var(--font-mono);font-size:.74rem;font-weight:600;color:var(--ink-3)}
.rep-diag__allpass{flex:none;font-size:.76rem;font-weight:600;color:var(--brand-ink);background:none;border:0;cursor:pointer;padding:.2rem .4rem;border-radius:6px}
.rep-diag__allpass:hover{background:var(--brand-soft)}
.rep-diag-row{padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);transition:border-color .15s}
.rep-diag-row[data-state="fail"]{border-color:oklch(0.6 0.2 25 / .45);background:oklch(0.6 0.2 25 / .05)}
.rep-diag-row[data-state="pass"]{border-color:oklch(0.55 0.13 150 / .4)}
.rep-diag-row[data-need]{border-color:oklch(0.7 0.16 70)}
.rep-diag-row[data-need] .rep-diag-row__note{border-color:oklch(0.7 0.16 70);background:var(--surface)}
.rep-diag-row[data-need] .rep-diag-row__note::placeholder{color:oklch(0.55 0.14 70);font-weight:600}
.rep-diag-row__main{display:flex;align-items:center;gap:.6rem}
.rep-diag-row__label{flex:1;font-size:.88rem;color:var(--ink-2);font-weight:500}
.rep-diag-row__seg{flex:none;display:flex;gap:.2rem;background:var(--surface-3);border-radius:8px;padding:.15rem}
.rep-diag-row__seg button{font-size:.74rem;font-weight:600;color:var(--ink-3);background:none;border:0;cursor:pointer;padding:.28rem .55rem;border-radius:6px;transition:.12s}
.rep-diag-row__seg button:hover{color:var(--ink)}
.rep-diag-row__seg button.on[data-tone="good"]{background:oklch(0.55 0.13 150);color:#fff}
.rep-diag-row__seg button.on[data-tone="bad"]{background:oklch(0.58 0.2 25);color:#fff}
.rep-diag-row__seg button.on[data-tone="muted"]{background:var(--ink-3);color:var(--surface)}
.rep-diag-row__del{flex:none;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:none;border:0;color:var(--ink-3);cursor:pointer}
.rep-diag-row__del:hover{background:var(--surface-3);color:oklch(0.55 0.2 25)}
.rep-diag-row__del svg{width:14px;height:14px}
.rep-diag-row__note{width:100%;margin-top:.45rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:.82rem;outline:none}
.rep-diag-row__note:focus{border-color:var(--brand)}
.rep-diag-row__note:placeholder-shown{background:transparent;border-color:transparent}
.rep-diag-row:hover .rep-diag-row__note:placeholder-shown{border-color:var(--line)}
.rep-diag-add{display:flex;gap:.5rem;margin-top:.6rem}
.rep-diag-add input{flex:1;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.86rem;outline:none}
.rep-diag-add input:focus{border-color:var(--brand)}
.rep-diag-add .btn--sm{flex:none}

/* ---- pickup date "Today" button spacing ---- */
.rep-datewrap .btn--sm{flex:none}

/* ---- notify-customer modal ---- */
.rep-notify{position:relative;z-index:1;margin:auto;max-width:520px;width:calc(100% - 2rem);top:50%;transform:translateY(-50%);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:1.6rem;display:flex;flex-direction:column;gap:.9rem}
.rep-notify__hd{display:flex;gap:.9rem;align-items:flex-start}
.rep-notify__ic{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.rep-notify__ic svg{width:20px;height:20px}
.rep-notify__hd h3{font-size:1.12rem;line-height:1.2}
.rep-notify__hd p{color:var(--ink-3);font-size:.86rem;margin-top:.2rem}
.rep-notify__hd p b{color:var(--ink)}
.rep-notify__to{font-size:.85rem;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);
  border-radius:10px;padding:.55rem .8rem}
.rep-notify__to span{font-family:var(--font-mono);font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-right:.5rem}
.rep-notify__to b{color:var(--ink)}
.rep-notify__f{display:flex;flex-direction:column;gap:.35rem}
.rep-notify__f>span{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.rep-notify__f input,.rep-notify__f textarea{width:100%;padding:.7rem .85rem;border-radius:var(--radius-sm);
  background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;font-family:inherit;line-height:1.55}
.rep-notify__f textarea{resize:vertical}
.rep-notify__f input:focus,.rep-notify__f textarea:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rep-notify__opt{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--ink-2);cursor:pointer}
.rep-notify__act{display:flex;align-items:center;gap:.7rem;margin-top:.3rem}
.rep-notify__act .spacer{flex:1}
.rep-notify__act .btn svg{width:1em;height:1em;margin-right:.15em}

/* email note in the log */
.rep-note[data-kind="email"]{border-left-color:oklch(0.6 0.13 150)}

/* ---- repeat-customer badge on cards ---- */
.rep-card .meta .rep-repeat{display:inline-flex;align-items:center;gap:.3em;font-weight:600;color:var(--brand-ink)}
.rep-card .meta .rep-repeat svg{width:12px;height:12px}

/* ---- customer history in editor ---- */
.rep-cust-hist{margin-top:1rem}
.rep-cust-hist:empty{display:none}
.rep-hist-none{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--ink-3);
  padding:.6rem .8rem;border:1px dashed var(--line-2);border-radius:var(--radius-sm)}
.rep-hist-none svg{width:15px;height:15px;color:oklch(0.55 0.13 150);flex:none}
.rep-hist-hd{display:flex;align-items:center;gap:.45rem;font-size:.84rem;color:var(--ink-2);margin-bottom:.5rem}
.rep-hist-hd svg{width:15px;height:15px;color:var(--brand-ink)}
.rep-hist-hd b{color:var(--ink)}
.rep-hist-list{display:flex;flex-direction:column;gap:.4rem}
.rep-hist-row{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.55rem .7rem;
  border:1px solid var(--line);border-radius:10px;background:var(--surface-2);transition:.15s}
.rep-hist-row:hover{border-color:var(--brand);background:var(--brand-soft)}
.rep-hist-tk{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--ink-2);flex:none}
.rep-hist-dev{flex:1;min-width:0;font-size:.86rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-hist-when{font-size:.76rem;color:var(--ink-3);flex:none}
.rep-hist-row .rep-pill{flex:none;transform:scale(.9)}
.rep-hist-sub{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:.9rem 0 .45rem}
.rep-hist-row--past{opacity:.72}
.rep-hist-row--past .rep-hist-dev{color:var(--ink-2)}
@media (max-width:560px){.rep-hist-when{display:none}}

/* ============================================================================
   REFURBISHMENT
   ========================================================================== */
.rf-toolbar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.rf-search{position:relative;flex:1;min-width:240px}
.rf-search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3)}
.rf-search input{width:100%;padding:.72rem 1rem .72rem 2.5rem;border-radius:var(--radius-pill);background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink);font-size:.92rem;transition:border-color .2s}
.rf-search input:focus{outline:none;border-color:var(--brand)}
.rf-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}

/* list rows */
.rf-card .arow-thumb.avatar{background:linear-gradient(145deg,var(--accent),oklch(0.6 0.16 45));color:#241500}
.rf-card .arow-thumb.avatar svg{width:22px;height:22px}
.rf-ref{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.03em;color:var(--ink-3);
  background:var(--surface-3);padding:.15em .5em;border-radius:6px;flex:none}
.rf-card .arow-main b{display:flex;align-items:center;gap:.55rem;white-space:normal}
.rf-card .meta .rep-quote{font-weight:700;color:var(--ink)}
.rf-card .meta .rep-tech,.rf-card .meta .rf-shelf{display:inline-flex;align-items:center;gap:.3em;font-weight:600}
.rf-card .meta .rep-tech{color:var(--brand-ink)}
.rf-card .meta .rf-shelf{color:var(--ink-2)}
.rf-card .meta .rep-tech svg,.rf-card .meta .rf-shelf svg{width:12px;height:12px}
.rf-card .meta .rf-days{display:inline-flex;align-items:center;gap:.3em;font-weight:600}
.rf-card .meta .rf-days svg{width:12px;height:12px}
.rf-card .meta .rf-days[data-age="ok"]{color:var(--ink-2)}
.rf-card .meta .rf-days[data-age="warn"]{color:var(--accent-strong)}
.rf-card .meta .rf-days[data-age="over"]{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rf-card .meta .rf-days[data-age="over"]{color:oklch(0.72 0.19 25)}
.rf-card .meta .rf-days[data-age="done"]{color:oklch(0.5 0.12 150)}
[data-theme="dark"] .rf-card .meta .rf-days[data-age="done"]{color:oklch(0.78 0.14 150)}
.rf-card .arow-actions .btn--primary.btn--sm svg{width:1em;height:1em}

/* progress bar (list + editor) */
.rf-prog{display:flex;align-items:center;gap:.6rem;flex:none;min-width:150px}
.rf-prog__bar{flex:1;height:7px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden;min-width:70px}
.rf-prog__fill{height:100%;border-radius:inherit;background:var(--brand);transition:width .3s var(--ease-out)}
.rf-prog__fill.full{background:oklch(0.55 0.13 150)}
.rf-prog__n{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--ink-3);flex:none;white-space:nowrap}
@media (max-width:760px){.rf-prog{flex-basis:100%;order:1}}

/* editor: progress header */
.rf-phead{display:flex;align-items:center;gap:1.1rem;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:.9rem 1.2rem;margin-bottom:1.4rem}
.rf-phead__txt{flex:none;text-align:left}
.rf-phead__txt b{font-family:var(--font-display);font-size:1.5rem;line-height:1;display:block}
.rf-phead__txt span{font-size:.76rem;color:var(--ink-3)}
.rf-phead__days{flex:none;text-align:center;padding-left:1.1rem;border-left:1px solid var(--line)}
.rf-phead__days b{font-family:var(--font-display);font-size:1.5rem;line-height:1;display:block}
.rf-phead__days span{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.rf-phead__days[data-age="warn"] b{color:var(--accent-strong)}
.rf-phead__days[data-age="over"] b{color:oklch(0.55 0.2 25)}
.rf-phead__days[data-age="ok"] b,.rf-phead__days[data-age="done"] b{color:var(--ink)}

/* editor: converted banner */
.rf-converted{display:flex;align-items:flex-start;gap:.6rem;font-size:.86rem;line-height:1.5;color:oklch(0.44 0.13 150);
  background:oklch(0.55 0.13 150 / .1);border:1px solid oklch(0.55 0.13 150 / .4);border-radius:var(--radius-sm);
  padding:.8rem 1rem;margin-bottom:1.4rem}
.rf-converted svg{width:17px;height:17px;flex:none;margin-top:1px}
.rf-converted b{color:inherit}
[data-theme="dark"] .rf-converted{color:oklch(0.82 0.14 150)}

/* editor: initial details grid */
.rf-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:680px){.rf-detail-grid{grid-template-columns:1fr}}
/* editor: device type picker */
.rf-typepick{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}
@media (max-width:680px){.rf-typepick{grid-template-columns:repeat(3,1fr)}}
@media (max-width:440px){.rf-typepick{grid-template-columns:repeat(2,1fr)}}
.rf-typebtn{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.7rem .4rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:.82rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.rf-typebtn svg{width:22px;height:22px}
.rf-typebtn:hover{border-color:var(--brand);color:var(--ink)}
.rf-typebtn.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
/* list row: device-type chip */
.rf-type{font-weight:700;font-size:.7rem;letter-spacing:.02em;text-transform:uppercase;color:var(--brand-ink);background:var(--brand-soft);padding:.1rem .45rem;border-radius:6px}
.rf-typefilters{margin-top:-.35rem}
.rf-typefilters .rep-chip{display:inline-flex;align-items:center;gap:.35rem}
.rf-chip-ic{display:inline-flex}.rf-chip-ic svg{width:15px;height:15px}
/* refurb panel-head action buttons */
.apanel-head__actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
/* checklist editor */
.rf-chk__intro{color:var(--ink-2);font-size:.9rem;line-height:1.5;margin:0 0 1rem}
.rf-chk__types{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.1rem}
.rf-chktab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:.85rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.rf-chktab svg{width:17px;height:17px}
.rf-chktab i{font-style:normal;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);background:var(--surface-2);padding:.02rem .35rem;border-radius:5px}
.rf-chktab:hover{border-color:var(--brand);color:var(--ink)}
.rf-chktab.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.rf-chktab.on i{background:var(--surface);color:var(--brand-ink)}
.rf-chktab--add{border-style:dashed;color:var(--ink-3)}
.rf-chk__typehd{display:flex;align-items:flex-end;gap:.7rem;margin-bottom:.3rem}
.rf-chk__steps{display:flex;flex-direction:column;gap:.5rem;margin:.9rem 0}
.rf-chk__step{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.rf-chk__num{flex:none;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--ink-3);width:1.5em;text-align:right;padding-top:.55rem}
.rf-chk__fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}
.rf-chk__fields input{width:100%}
.rf-chk__fields input[data-f="hint"]{font-size:.82rem;color:var(--ink-2)}
.rf-chk__badge{flex:none;align-self:center;font-size:.66rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--brand-ink);background:var(--brand-soft);padding:.15rem .4rem;border-radius:6px;white-space:nowrap}
.rf-chk__cap{flex:none;align-self:center;width:auto;max-width:11rem;font-size:.8rem;padding:.35rem .5rem}
.rf-chk__ops{flex:none;display:flex;gap:.2rem;align-items:center}
.rf-chk__ops button{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink-3);border:1px solid transparent;cursor:pointer;background:transparent}
.rf-chk__ops button svg{width:16px;height:16px}
.rf-chk__ops button:hover:not([disabled]){background:var(--surface-3);color:var(--ink)}
.rf-chk__ops button.danger:hover:not([disabled]){color:var(--danger,#c0392b)}
.rf-chk__ops button[disabled]{opacity:.3;cursor:default}
.rf-costinput{max-width:100%}
.rf-costinput input{flex:1;width:auto;border:none;background:transparent;color:var(--ink);padding:.55rem .2rem;outline:none;
  font-family:var(--font-mono);font-size:.95rem}

/* editor: test bench, cosmetic rubric, job costing */.rf-bench__hd{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem}
.rf-bench{display:flex;flex-direction:column;gap:.3rem}
.rf-brow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rf-brow[data-state="pass"]{border-color:oklch(0.55 0.13 150 / .4)}
.rf-brow[data-state="fail"]{border-color:oklch(0.6 0.2 25 / .45);background:oklch(0.6 0.2 25 / .05)}
.rf-brow__l{flex:1;min-width:130px;font-size:.88rem;font-weight:500;color:var(--ink-2)}
.rf-brow__v{flex:none;width:120px;padding:.3rem .5rem;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:.8rem;font-family:var(--font-mono);outline:none}
.rf-brow__v:focus{border-color:var(--brand)}
.rf-brow__seg{flex:none;display:flex;gap:.2rem;background:var(--surface-3);border-radius:8px;padding:.15rem}
.rf-brow__seg button{font-size:.74rem;font-weight:600;color:var(--ink-3);background:none;border:0;cursor:pointer;padding:.28rem .55rem;border-radius:6px;transition:.12s}
.rf-brow__seg button.on[data-tone="good"]{background:oklch(0.55 0.13 150);color:#fff}
.rf-brow__seg button.on[data-tone="bad"]{background:oklch(0.58 0.2 25);color:#fff}
.rf-brow__seg button.on[data-tone="muted"]{background:var(--ink-3);color:var(--surface)}
.rf-brow__note{width:100%;margin:-.1rem 0 .2rem;padding:.4rem .6rem;border:1px solid oklch(0.7 0.16 70);border-radius:7px;background:var(--surface);color:var(--ink);font-size:.82rem;outline:none}
.rf-bench__by{margin-top:.6rem;font-size:.76rem;color:var(--ink-3)}
.rf-rubric{display:flex;flex-direction:column;gap:.45rem}
.rf-rrow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.rf-rrow__l{flex:none;min-width:120px;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.rf-rrow__seg{display:flex;gap:.3rem;flex-wrap:wrap}
.rf-rrow__seg button{font-size:.76rem;font-weight:600;padding:.34rem .6rem;border-radius:var(--radius-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;transition:.12s}
.rf-rrow__seg button:hover{border-color:var(--brand)}
.rf-rrow__seg button.on[data-lvl="0"]{background:oklch(0.55 0.13 150);border-color:transparent;color:#fff}
.rf-rrow__seg button.on[data-lvl="1"]{background:oklch(0.62 0.12 120);border-color:transparent;color:#fff}
.rf-rrow__seg button.on[data-lvl="2"]{background:oklch(0.72 0.15 70);border-color:transparent;color:#25201a}
.rf-rrow__seg button.on[data-lvl="3"]{background:oklch(0.58 0.2 25);border-color:transparent;color:#fff}
.rf-gradebox,.rf-pricebox{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:.9rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rf-gradebox__m,.rf-pricebox__m{flex:1;min-width:190px;display:flex;flex-direction:column;gap:.15rem}
.rf-gradebox__m b,.rf-pricebox__m b{font-size:.94rem}
.rf-gradebox__m span,.rf-pricebox__m span{font-size:.78rem;color:var(--ink-3)}
.rf-gradenow{font-size:.82rem;color:var(--ink-3)}
.rf-gradenow b{font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}
.rf-parts{display:flex;flex-direction:column;gap:.45rem}
.rf-prow{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}
.rf-prow__d{flex:1;min-width:170px;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.86rem;outline:none}
.rf-prow__d:focus{border-color:var(--brand)}
.rf-prow__f{display:flex;flex-direction:column;gap:.2rem;flex:none;width:96px}
.rf-prow__f>span{font-size:.7rem;font-weight:600;color:var(--ink-3)}
.rf-prow__f input{width:100%;padding:.5rem .6rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.86rem;outline:none}
.rf-timegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-top:1rem}
.rf-timegrid .afield{margin:0}
.rf-costsum{margin-top:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}
.rf-costsum__r{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .9rem;font-size:.86rem;border-top:1px solid var(--line)}
.rf-costsum__r:first-child{border-top:0}
.rf-costsum__r span{color:var(--ink-3)}
.rf-costsum__r b{font-family:var(--font-mono)}
.rf-costsum__tot{background:var(--surface-3)}
.rf-costsum__tot span{color:var(--ink);font-weight:700}
.rf-costsum__tot b{font-size:1rem;color:var(--brand-ink)}
.rf-pricebox--warn{border-color:oklch(0.72 0.15 70);background:oklch(0.72 0.15 70 / .08)}
.rf-pricebox__now{flex:none;display:flex;flex-direction:column;gap:.1rem;text-align:right}
.rf-pricebox__now span{font-size:.72rem;color:var(--ink-3)}
.rf-pricebox__now b{font-family:var(--font-display);font-size:1.05rem}
.rf-pricebox__now em{font-size:.74rem;color:var(--ink-3);font-style:normal}
.rf-guard{display:flex;align-items:flex-start;gap:.55rem;margin-top:.7rem;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.82rem;line-height:1.45;
  color:oklch(0.5 0.16 60);background:oklch(0.72 0.15 70 / .12);border:1px solid oklch(0.72 0.15 70 / .45)}
.rf-guard svg{width:16px;height:16px;flex:none;margin-top:.1rem}
[data-theme="dark"] .rf-guard{color:oklch(0.85 0.13 75)}

/* editor: parts harvesting */
.rf-donor{display:flex;align-items:flex-start;gap:.7rem;padding:.8rem 1rem;border:1.5px dashed var(--line);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer}
.rf-donor input{margin-top:.15rem;flex:none}
.rf-donor b{display:block;font-size:.9rem}
.rf-donor small{display:block;font-size:.78rem;color:var(--ink-3);margin-top:.15rem;line-height:1.4}
.rf-hrow{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap;padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.rf-hrow.is-stocked{border-color:oklch(0.55 0.13 150 / .45);background:oklch(0.55 0.13 150 / .05)}
.rf-hrow__d{flex:1;min-width:170px;padding:.5rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.86rem;outline:none}
.rf-hrow__d:focus{border-color:var(--brand)}
.rf-hrow__d:disabled{background:transparent;border-color:transparent;font-weight:600}
.rf-hrow__alloc{flex:none;display:flex;flex-direction:column;gap:.15rem;min-width:88px;text-align:right}
.rf-hrow__alloc>span{font-size:.7rem;font-weight:600;color:var(--ink-3)}
.rf-hrow__alloc b{font-family:var(--font-mono);font-size:.86rem;color:var(--brand-ink)}
.rf-hactions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.8rem}
.rf-hsum{flex:1;min-width:150px;font-size:.8rem;color:var(--ink-3)}

/* editor: checklist */
.rf-steps{display:flex;flex-direction:column;gap:.5rem}.rf-step{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;transition:border-color .15s,background .15s}
.rf-step.done{border-color:oklch(0.55 0.13 150 / .5);background:oklch(0.55 0.13 150 / .05)}
.rf-step__row{display:flex;align-items:center;gap:.3rem;padding:.75rem .85rem}
.rf-step__check{display:flex;align-items:center;gap:.85rem;flex:1;min-width:0;text-align:left}
.rf-step__box{flex:none;width:26px;height:26px;border-radius:8px;border:1.5px solid var(--line-2);display:grid;place-items:center;
  background:var(--surface-2);color:transparent;transition:.15s}
.rf-step__box svg{width:16px;height:16px}
.rf-step.done .rf-step__box{background:oklch(0.55 0.13 150);border-color:oklch(0.55 0.13 150);color:#fff}
.rf-step__row:hover .rf-step__box{border-color:var(--brand)}
.rf-step.done .rf-step__row:hover .rf-step__box{border-color:oklch(0.55 0.13 150)}
.rf-step__num{flex:none;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--ink-3);width:1.5em;text-align:right}
.rf-step__notebtn{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--ink-3);
  border:1.5px solid transparent;transition:.15s;margin-left:.2rem}
.rf-step__notebtn svg{width:16px;height:16px}
.rf-step__notebtn:hover{background:var(--surface-3);color:var(--ink)}
.rf-step.has-note .rf-step__notebtn{color:var(--brand-ink);background:var(--brand-soft)}
.rf-step__note{display:none;padding:0 .85rem .85rem 3.4rem}
.rf-step__note.open{display:block}
@media (max-width:680px){.rf-step__note{padding-left:.85rem}}
.rf-step__note textarea{width:100%;min-height:56px;resize:vertical;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface-2);color:var(--ink);font-family:inherit;font-size:.86rem;padding:.55rem .7rem;line-height:1.45}
.rf-step__note textarea:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.rf-step__txt{flex:1;min-width:0}
.rf-step__txt b{display:block;font-size:.94rem;font-weight:600;color:var(--ink)}
.rf-step__txt small{display:block;font-size:.78rem;color:var(--ink-3);margin-top:.1rem}
.rf-step__req{flex:none;font-family:var(--font-mono);font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.3em .6em;border-radius:var(--radius-pill);background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.rf-step__req.ok{background:oklch(0.55 0.13 150 / .16);color:oklch(0.46 0.13 150)}
[data-theme="dark"] .rf-step__req.ok{color:oklch(0.82 0.14 150)}
.rf-step__fields{padding:0 .85rem .9rem 3.4rem;display:flex;flex-direction:column;gap:.7rem}
@media (max-width:680px){.rf-step__fields{padding-left:.85rem}}
.rf-specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media (max-width:680px){.rf-specs-grid{grid-template-columns:1fr}}
.rf-step__fields .afield label{font-size:.78rem}

/* editor: serial tag count helper */
.rf-serial-count{display:block;margin-top:.4rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--ink-3)}
.rf-serial-count.ok{color:oklch(0.46 0.13 150)}
[data-theme="dark"] .rf-serial-count.ok{color:oklch(0.82 0.14 150)}

/* editor: convert button gating */
#rfConvertBtn[disabled]{opacity:.45;cursor:not-allowed}
#rfConvertBtn svg{width:1em;height:1em}

/* aging alert banner */
.rf-alert{margin:0 0 1.2rem}
.rf-alert:empty{display:none}
.rf-alert__box{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;border-radius:var(--radius-sm);cursor:pointer;
  background:oklch(0.78 0.15 65 / .12);border:1.5px solid oklch(0.78 0.15 65 / .5);transition:.15s}
.rf-alert__box:hover{background:oklch(0.78 0.15 65 / .18)}
.rf-alert__box:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rf-alert__ic{flex:none;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:oklch(0.78 0.15 65 / .22);color:var(--accent-strong)}
.rf-alert__ic svg{width:18px;height:18px}
.rf-alert__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.rf-alert__txt b{font-size:.94rem;color:var(--ink)}
.rf-alert__txt span{font-size:.82rem;color:var(--ink-2)}
.rf-alert__cta{flex:none;font-size:.84rem;font-weight:700;color:var(--accent-strong);white-space:nowrap}
@media (max-width:620px){.rf-alert__cta{display:none}}

/* view toggle: units vs technicians */
.rf-viewtabs{display:inline-flex;gap:.2rem;padding:.25rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);margin:0 0 1.3rem}
.rf-viewtabs button{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .95rem;border-radius:var(--radius-pill);font-size:.86rem;font-weight:600;color:var(--ink-3);transition:.15s}
.rf-viewtabs button svg{width:15px;height:15px}
.rf-viewtabs button:hover{color:var(--ink)}
.rf-viewtabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
[data-theme="dark"] .rf-viewtabs button.on{background:var(--surface-3)}

/* technician workload */
.rf-workload{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}
.rf-wl{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:1rem}
.rf-wl__head{display:flex;align-items:center;gap:.8rem}
.rf-wl__av{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.95rem;
  background:linear-gradient(145deg,var(--brand),var(--brand-strong));color:#fff}
.rf-wl__av.un{background:var(--surface-3);color:var(--ink-3)}
.rf-wl__id{flex:1;min-width:0}
.rf-wl__id b{display:block;font-size:.98rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rf-wl__id span{font-size:.78rem;color:var(--ink-3)}
.rf-wl__prog{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;width:88px}
.rf-wl__prog .rf-prog__bar{width:100%}
.rf-wl__prog span{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--ink-3)}
.rf-wl__stats{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:.85rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rf-wl__stat{text-align:center}
.rf-wl__stat b{display:block;font-family:var(--font-display);font-size:1.15rem;line-height:1.1;color:var(--ink)}
.rf-wl__stat span{font-size:.64rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.rf-wl__stat[data-tone="good"] b{color:oklch(0.55 0.13 150)}
.rf-wl__stat[data-tone="warn"] b{color:var(--accent-strong)}
[data-theme="dark"] .rf-wl__stat[data-tone="good"] b{color:oklch(0.78 0.14 150)}
.rf-wl__units{display:flex;flex-wrap:wrap;gap:.4rem}
.rf-wl__chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--ink-2);
  padding:.32rem .6rem;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);transition:.15s}
.rf-wl__chip:hover{border-color:var(--brand);color:var(--ink)}
.rf-wl__chip i{font-style:normal;font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3)}
.rf-wl__chip[data-tone="good"]{border-color:oklch(0.55 0.13 150 / .5);color:oklch(0.46 0.13 150)}
.rf-wl__chip[data-tone="warn"]{border-color:oklch(0.78 0.15 65 / .55);color:var(--accent-strong)}
[data-theme="dark"] .rf-wl__chip[data-tone="good"]{color:oklch(0.8 0.14 150)}

/* completed refurbs history */
.rf-hist-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:0 0 1.3rem}
.rf-hist-sum>div{padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rf-hist-sum b{display:block;font-family:var(--font-display);font-size:1.3rem;line-height:1.1;color:var(--ink)}
.rf-hist-sum span{font-size:.68rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.rf-hist-sum>div[data-tone="good"] b{color:oklch(0.55 0.13 150)}
.rf-hist-sum>div[data-tone="warn"] b{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rf-hist-sum>div[data-tone="good"] b{color:oklch(0.8 0.14 150)}

.rf-hist-list{display:flex;flex-direction:column;gap:.6rem}
.rf-hist-row{display:flex;align-items:center;gap:1.1rem;padding:.9rem 1.1rem;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.rf-hist-date{flex:none;width:118px}
.rf-hist-date b{display:block;font-size:.9rem;color:var(--ink)}
.rf-hist-date .rf-ref{margin-top:.2rem;display:inline-block}
.rf-hist-main{flex:1;min-width:0}
.rf-hist-main>b{font-size:.98rem;color:var(--ink)}
.rf-hist-main .meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.25rem;font-size:.8rem;color:var(--ink-3)}
.rf-hist-main .rep-tech{display:inline-flex;align-items:center;gap:.3em;font-weight:600;color:var(--brand-ink)}
.rf-hist-main .rep-tech svg{width:12px;height:12px}
.rf-hist-nums{flex:none;display:flex;gap:1.4rem}
.rf-hist-nums>div{text-align:right}
.rf-hist-nums span{display:block;font-size:.66rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.rf-hist-nums b{font-family:var(--font-mono);font-size:.92rem;color:var(--ink)}
.rf-hist-nums>div[data-tone="good"] b{color:oklch(0.5 0.13 150)}
.rf-hist-nums>div[data-tone="warn"] b{color:oklch(0.55 0.2 25)}
[data-theme="dark"] .rf-hist-nums>div[data-tone="good"] b{color:oklch(0.8 0.14 150)}
.rf-hist-actions{flex:none;display:flex;flex-direction:column;gap:.4rem}
@media (max-width:860px){
  .rf-hist-row{flex-wrap:wrap;gap:.7rem}
  .rf-hist-date{width:auto;order:1}
  .rf-hist-main{order:3;flex-basis:100%}
  .rf-hist-nums{order:2;margin-left:auto}
  .rf-hist-actions{order:4;flex-direction:row;flex-basis:100%}
}

/* ============================================================================
   REFURB MARKETPLACE SYNC
   ========================================================================== */
.mkt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;margin:0 0 1.2rem}
.mkt-head h3{font-size:1.12rem;font-weight:700;color:var(--ink);margin:0}
.mkt-head__sub{font-size:.86rem;color:var(--ink-3);margin:.3rem 0 0;max-width:56ch;line-height:1.45}
.mkt-head .btn svg{width:1em;height:1em}
@media (max-width:640px){.mkt-head{flex-direction:column}.mkt-head .btn{align-self:stretch;justify-content:center}}

.mkt-chans{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem;margin:0 0 1.5rem}
@media (max-width:720px){.mkt-chans{grid-template-columns:1fr}}
.mkt-chan{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.9rem}
.mkt-chan--off{background:var(--surface-2);border-style:dashed}
.mkt-chan__top{display:flex;align-items:center;gap:.8rem}
.mkt-chan__ic{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2)}
.mkt-chan__ic svg{width:22px;height:22px}
.mkt-chan__ic[data-ch="ebay"]{background:oklch(0.55 0.16 250 / .14);color:oklch(0.5 0.16 250)}
.mkt-chan__ic[data-ch="facebook"]{background:oklch(0.55 0.17 260 / .14);color:oklch(0.5 0.17 260)}
.mkt-chan__ic[data-ch="kijiji"]{background:oklch(0.6 0.15 155 / .16);color:oklch(0.5 0.14 155)}
[data-theme="dark"] .mkt-chan__ic[data-ch="ebay"]{color:oklch(0.75 0.15 250)}
[data-theme="dark"] .mkt-chan__ic[data-ch="facebook"]{color:oklch(0.75 0.15 260)}
[data-theme="dark"] .mkt-chan__ic[data-ch="kijiji"]{color:oklch(0.78 0.15 155)}
.mkt-chan__id{flex:1;min-width:0}
.mkt-chan__id b{display:block;font-size:1rem;font-weight:700;color:var(--ink)}
.mkt-chan__id span{font-size:.78rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.mkt-conn{flex:none;display:inline-flex;align-items:center;gap:.3em;font-size:.7rem;font-weight:700;letter-spacing:.02em;padding:.28em .6em;border-radius:var(--radius-pill)}
.mkt-conn svg{width:12px;height:12px}
.mkt-conn.on{background:oklch(0.55 0.13 150 / .16);color:oklch(0.44 0.13 150)}
[data-theme="dark"] .mkt-conn.on{color:oklch(0.82 0.14 150)}
.mkt-conn.off{background:var(--surface-3);color:var(--ink-3)}
.mkt-chan__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding:.75rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mkt-chan__stats>div{text-align:center}
.mkt-chan__stats b{display:block;font-family:var(--font-display);font-size:1.25rem;line-height:1.1;color:var(--ink)}
.mkt-chan__stats span{font-size:.64rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.mkt-chan__foot{display:flex;align-items:center;justify-content:space-between;gap:.7rem}
.mkt-chan__note{display:inline-flex;align-items:center;gap:.35em;font-size:.78rem;color:var(--ink-3)}
.mkt-chan__note svg{width:13px;height:13px;flex:none}
.mkt-chan__foot .btn svg{width:1em;height:1em}

/* auto-relist toggle */
.mkt-toggle{display:flex;align-items:center;justify-content:space-between;gap:.7rem;cursor:pointer;padding:.1rem 0}
.mkt-toggle__txt{display:inline-flex;align-items:center;gap:.4em;font-size:.82rem;font-weight:600;color:var(--ink-2)}
.mkt-toggle__txt svg{width:14px;height:14px;color:var(--ink-3)}
.mkt-toggle input{position:absolute;opacity:0;width:0;height:0}
.mkt-switch{flex:none;width:36px;height:20px;border-radius:var(--radius-pill);background:var(--surface-3);border:1.5px solid var(--line);position:relative;transition:.18s}
.mkt-switch::after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:var(--ink-3);transition:.18s}
.mkt-toggle input:checked+.mkt-switch{background:oklch(0.55 0.13 150);border-color:oklch(0.55 0.13 150)}
.mkt-toggle input:checked+.mkt-switch::after{transform:translateX(16px);background:#fff}
.mkt-toggle input:focus-visible+.mkt-switch{outline:2px solid var(--brand);outline-offset:2px}

.mkt-spin svg{animation:mkt-rot .8s linear infinite}
@keyframes mkt-rot{to{transform:rotate(360deg)}}

.mkt-statbar{margin:0 0 1.6rem;display:flex;gap:.8rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;scrollbar-width:thin}
.mkt-statbar .inv-stat{flex:0 0 auto;min-width:186px;scroll-snap-align:start}
.mkt-statbar::-webkit-scrollbar{height:8px}
.mkt-statbar::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}

.mkt-listhead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 .9rem}
.mkt-listhead h3{font-size:1rem;font-weight:700;color:var(--ink);margin:0}
.mkt-listhead__tools{display:flex;align-items:center;gap:.6rem}
.mkt-search{position:relative}
.mkt-search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--ink-3)}
.mkt-search input{padding:.55rem .8rem .55rem 2.1rem;border-radius:var(--radius-pill);background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font-size:.86rem;min-width:200px}
.mkt-search input:focus{outline:none;border-color:var(--brand)}
.mkt-select{padding:.55rem 2rem .55rem .8rem;border-radius:var(--radius-pill);background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font-size:.86rem;font-weight:600;cursor:pointer}
.mkt-select:focus{outline:none;border-color:var(--brand)}
@media (max-width:560px){.mkt-listhead__tools{width:100%}.mkt-search{flex:1}.mkt-search input{min-width:0;width:100%}}

.mkt-table{display:flex;flex-direction:column;border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.mkt-row{display:grid;grid-template-columns:auto 2.2fr .8fr .8fr .8fr .8fr 1.3fr auto;align-items:center;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.mkt-c-sel{display:flex;align-items:center;justify-content:center}
.mkt-c-sel input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}
.mkt-row.sel{background:var(--brand-soft)}
.mkt-row.sel:hover{background:var(--brand-soft)}
.mkt-row:last-child{border-bottom:none}
.mkt-row:not(.mkt-row--head):hover{background:var(--surface-2)}
.mkt-row--head{background:var(--surface-2);cursor:default;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.mkt-row--head:hover{background:var(--surface-2)}
.mkt-c-unit{display:flex;align-items:center;gap:.75rem;min-width:0}
.mkt-thumb{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),oklch(0.6 0.16 45));color:#241500}
.mkt-thumb svg{width:19px;height:19px}
.mkt-row--head .mkt-c-unit{padding-left:0}
.mkt-unit__id{min-width:0}
.mkt-unit__id b{display:flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-unit__spec{display:block;font-size:.75rem;color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.15rem}
.mkt-c-price b{font-family:var(--font-mono);font-size:.9rem;color:var(--ink)}
.mkt-badge{display:inline-flex;align-items:center;gap:.4em;font-size:.74rem;font-weight:600;padding:.32em .6em;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-2);border:1px solid transparent}
.mkt-badge svg{width:14px;height:14px;flex:none}
.mkt-badge i{font-style:normal}
.mkt-badge.off{color:var(--ink-3);opacity:.75}
.mkt-badge[data-tone="good"]{background:oklch(0.55 0.13 150 / .14);color:oklch(0.44 0.13 150);border-color:oklch(0.55 0.13 150 / .3)}
.mkt-badge[data-tone="done"]{background:var(--brand-soft);color:var(--brand-ink)}
.mkt-badge[data-tone="prog"]{background:oklch(0.7 0.12 250 / .16);color:oklch(0.5 0.14 250)}
.mkt-badge[data-tone="warn"]{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.mkt-badge[data-tone="new"]{background:var(--surface-3);color:var(--ink-3)}
[data-theme="dark"] .mkt-badge[data-tone="good"]{color:oklch(0.82 0.14 150)}
[data-theme="dark"] .mkt-badge[data-tone="prog"]{color:oklch(0.78 0.13 250)}
.mkt-c-perf{display:flex;gap:.9rem;flex-wrap:wrap}
.mkt-perf{font-size:.78rem;color:var(--ink-3)}
.mkt-perf b{font-family:var(--font-mono);color:var(--ink);font-weight:700}
.mkt-perf.hot b{color:var(--accent-strong)}
.mkt-perf.muted{color:var(--ink-3)}
.mkt-c-act{text-align:right}
@media (max-width:860px){
  .mkt-row--head{display:none}
  .mkt-row{grid-template-columns:1fr 1fr;gap:.6rem .8rem}
  .mkt-c-unit{grid-column:1 / -1}
  .mkt-c-price{order:3}
  .mkt-c-chan{order:4}
  .mkt-c-perf{grid-column:1 / -1;order:5}
  .mkt-c-act{grid-column:1 / -1;order:6;text-align:left}
  .mkt-c-act .btn{width:100%}
}

/* drawer */
.mkt-dr-sum{display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.4rem}
.mkt-dr-sum__main{min-width:0}
.mkt-dr-sum__main>b{font-size:1.05rem;color:var(--ink)}
.mkt-dr-specs{display:flex;flex-wrap:wrap;gap:.4rem .5rem;margin-top:.6rem}
.mkt-spec{display:inline-flex;align-items:center;gap:.4em;font-size:.76rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.25em .7em}
.mkt-spec span{color:var(--ink-3)}
.mkt-spec b{color:var(--ink);font-weight:600}
.mkt-dr-sum__price{flex:none;text-align:right}
.mkt-dr-sum__price span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}
.mkt-dr-sum__price b{font-family:var(--font-display);font-size:1.4rem;color:var(--ink)}
.mkt-dr-sum__price small{display:block;font-size:.72rem;color:var(--ink-3);font-family:var(--font-mono);margin-top:.15rem}
.mkt-dr-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:560px){.mkt-dr-grid{grid-template-columns:1fr}}
.mkt-dr-chans{display:flex;flex-direction:column;gap:.8rem}
.mkt-dr-chan{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.85rem}
.mkt-dr-chan.off{background:var(--surface-2);border-style:dashed}
.mkt-dr-chan__hd{display:flex;align-items:center;gap:.7rem}
.mkt-dr-chan__hd .mkt-chan__ic{width:34px;height:34px;border-radius:9px}
.mkt-dr-chan__hd .mkt-chan__ic svg{width:19px;height:19px}
.mkt-dr-chan__id{flex:1;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.mkt-dr-chan__id b{font-size:.94rem;color:var(--ink)}
.mkt-dr-chan__sub{font-size:.76rem;color:var(--ink-3)}
.mkt-dr-chan__metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding:.75rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mkt-dr-chan__metrics>div{text-align:center}
.mkt-dr-chan__metrics b{display:block;font-family:var(--font-display);font-size:1.1rem;color:var(--ink)}
.mkt-dr-chan__metrics span{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}
.mkt-dr-chan__metrics .hot b{color:var(--accent-strong)}
.mkt-dr-chan__state{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.mkt-dr-chan__state.err{color:var(--accent-strong)}
.mkt-dr-chan__state.err svg{width:16px;height:16px;flex:none}
.mkt-dr-chan__msg{flex:1;min-width:0;display:inline-flex;align-items:center;gap:.4em;font-size:.82rem;color:var(--ink-3)}
.mkt-dr-chan__state.err .mkt-dr-chan__msg{color:var(--accent-strong)}
.mkt-dr-chan__msg svg{width:14px;height:14px;flex:none}
.mkt-dr-chan__state .btn svg{width:1em;height:1em}
.mkt-dr-chan__state .btn.danger{color:oklch(0.55 0.2 25)}
.mkt-check{display:inline-flex;align-items:center;gap:.55rem;font-size:.86rem;color:var(--ink-2);cursor:pointer}
.mkt-check input{width:17px;height:17px;accent-color:var(--brand);cursor:pointer}
.mkt-thumb img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.mkt-conn[data-tone="warn"]{background:oklch(0.8 0.15 85 / .2);color:oklch(0.5 0.13 75)}
[data-theme="dark"] .mkt-conn[data-tone="warn"]{color:oklch(0.85 0.14 85)}
.mkt-chan__stats>div[data-tone="warn"] b{color:oklch(0.58 0.2 25)}
.mkt-chan__hint{margin:.2rem 0 .9rem;font-size:.82rem;color:var(--ink-3);line-height:1.45}
.mkt-note{display:flex;gap:.7rem;align-items:flex-start;background:oklch(0.8 0.15 85 / .12);border:1.5px solid oklch(0.8 0.15 85 / .4);border-radius:var(--radius);padding:.85rem 1rem;margin:0 0 1.2rem;font-size:.86rem;color:var(--ink-2);line-height:1.5}
.mkt-note svg{flex:none;width:20px;height:20px;color:oklch(0.6 0.15 75);margin-top:.05rem}
.mkt-note b{color:var(--ink)}
.mkt-note--sm{margin:0 0 1rem;padding:.7rem .85rem;font-size:.82rem}
.mkt-sold{margin-top:1.6rem}
.mkt-sold__sum{font-size:.82rem;font-weight:700;color:var(--ink-3)}
.mkt-sold__table{margin-top:.6rem}
.mkt-sold__row{grid-template-columns:minmax(0,2.2fr) .9fr .8fr 1.1fr .9fr .9fr auto;align-items:center}
.mkt-sold__c{display:flex;flex-direction:column;gap:.05rem;font-size:.86rem;font-weight:600;color:var(--ink);min-width:0}
.mkt-sold__lbl{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.mkt-sold__delta{font-size:.72rem;font-weight:700}
.mkt-sold__delta[data-tone="good"]{color:oklch(0.6 0.15 155)}
.mkt-sold__delta[data-tone="under"]{color:oklch(0.6 0.2 25)}
@media(max-width:900px){.mkt-sold__row{grid-template-columns:1fr 1fr;row-gap:.5rem}}
.mkt-unit__id{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-width:0}
.mkt-stock{display:inline-flex;align-items:center;gap:.3em;margin-top:.2rem;font-size:.68rem;font-weight:700;letter-spacing:.01em;padding:.16em .5em;border-radius:var(--radius-pill);line-height:1.25}
.mkt-stock svg{width:12px;height:12px}
.mkt-stock.low{background:oklch(0.8 0.15 85 / .2);color:oklch(0.5 0.13 75)}
.mkt-stock.oos{background:oklch(0.62 0.2 25 / .16);color:oklch(0.55 0.2 25)}
[data-theme="dark"] .mkt-stock.low{color:oklch(0.85 0.14 85)}
[data-theme="dark"] .mkt-stock.oos{color:oklch(0.76 0.18 25)}

/* bulk action bar */
.mkt-bulk{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 .8rem;padding:.7rem 1.1rem;border:1.5px solid var(--brand);border-radius:var(--radius);background:var(--brand-soft)}
.mkt-bulk__info{font-size:.9rem;color:var(--ink)}
.mkt-bulk__info b{font-family:var(--font-display);font-size:1.05rem;margin-right:.15rem}
.mkt-bulk__actions{display:flex;align-items:center;gap:.5rem}
.mkt-bulk__actions .btn svg{width:1em;height:1em}

/* offers & messages inbox */
.mkt-inbox{margin:0 0 1.8rem}
.mkt-inbox__badge{font-size:.7rem;font-weight:700;padding:.2em .55em;border-radius:var(--radius-pill);background:oklch(0.78 0.15 65 / .2);color:var(--accent-strong);vertical-align:middle;margin-left:.4rem}
.mkt-inbox__tabs{display:inline-flex;gap:.2rem;padding:.22rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill)}
.mkt-itab{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:var(--radius-pill);font-size:.82rem;font-weight:600;color:var(--ink-3);transition:.15s}
.mkt-itab:hover{color:var(--ink)}
.mkt-itab.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
[data-theme="dark"] .mkt-itab.on{background:var(--surface-3)}
.mkt-itab__n{font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:.05em .45em;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-3)}
.mkt-itab.on .mkt-itab__n{background:var(--brand-soft);color:var(--brand-ink)}
.mkt-itab[data-tone="warn"] .mkt-itab__n{background:oklch(0.78 0.15 65 / .2);color:var(--accent-strong)}
.mkt-threads{display:flex;flex-direction:column;gap:.6rem}
.mkt-thread{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:border-color .15s}
.mkt-thread.unread{border-color:oklch(0.78 0.15 65 / .5)}
.mkt-thread.open{border-color:var(--brand)}
.mkt-thread__hd{display:grid;grid-template-columns:auto 1.5fr 1.1fr 2fr auto;align-items:center;gap:1rem;padding:.8rem 1rem;cursor:pointer}
.mkt-thread__hd:hover{background:var(--surface-2)}
.mkt-thread__hd>svg{width:16px;height:16px;color:var(--ink-3);transition:transform .18s}
.mkt-thread.open .mkt-thread__hd>svg{transform:rotate(180deg)}
.mkt-thread__av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.82rem;color:#fff;background:var(--ink-3)}
.mkt-thread__av[data-ch="ebay"]{background:oklch(0.5 0.16 250)}
.mkt-thread__av[data-ch="facebook"]{background:oklch(0.5 0.17 260)}
.mkt-thread__av[data-ch="kijiji"]{background:oklch(0.5 0.14 155)}
.mkt-thread__id{min-width:0}
.mkt-thread__id b{display:flex;align-items:center;gap:.4rem;font-size:.92rem;color:var(--ink)}
.mkt-thread__dot{width:7px;height:7px;border-radius:50%;background:var(--accent-strong);flex:none}
.mkt-thread__unit{display:inline-flex;align-items:center;gap:.3em;font-size:.75rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-thread__unit svg{width:12px;height:12px;flex:none}
.mkt-thread__mid{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}
.mkt-thread__offer{font-family:var(--font-mono);font-weight:700;font-size:.92rem;color:var(--ink)}
.mkt-thread__offer.under{color:var(--accent-strong)}
.mkt-thread__offer i{font-style:normal;font-size:.68rem;color:var(--ink-3);font-weight:500;margin-left:.2rem}
.mkt-thread__type{display:inline-flex;align-items:center;gap:.3em;font-size:.78rem;color:var(--ink-3);font-weight:600}
.mkt-thread__type svg{width:13px;height:13px}
.mkt-thread__st{font-size:.64rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.2em .5em;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-3)}
.mkt-thread__st[data-tone="good"]{background:oklch(0.55 0.13 150 / .16);color:oklch(0.46 0.13 150)}
.mkt-thread__st[data-tone="warn"]{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
.mkt-thread__st[data-tone="prog"]{background:oklch(0.7 0.12 250 / .16);color:oklch(0.5 0.14 250)}
[data-theme="dark"] .mkt-thread__st[data-tone="good"]{color:oklch(0.82 0.14 150)}
.mkt-thread__last{min-width:0}
.mkt-thread__last span{display:block;font-size:.82rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-thread__last time{font-size:.7rem;color:var(--ink-3);font-family:var(--font-mono)}
@media (max-width:820px){
  .mkt-thread__hd{grid-template-columns:auto 1fr auto}
  .mkt-thread__mid{grid-column:2 / -1;flex-direction:row;align-items:center;gap:.6rem}
  .mkt-thread__last{grid-column:2 / -1}
}
.mkt-thread__body{padding:.4rem 1rem 1rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.9rem}
.mkt-thread__conv{display:flex;flex-direction:column;gap:.5rem;padding-top:.9rem}
.mkt-msg{max-width:80%;padding:.55rem .8rem;border-radius:14px;font-size:.86rem;line-height:1.45}
.mkt-msg p{margin:0;color:inherit}
.mkt-msg time{display:block;font-size:.66rem;opacity:.7;margin-top:.25rem;font-family:var(--font-mono)}
.mkt-msg.them{align-self:flex-start;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px}
.mkt-msg.me{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.mkt-thread__offeract{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.8rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.mkt-thread__offeract .btn svg{width:1em;height:1em}
.mkt-thread__offeract .btn.danger{color:oklch(0.55 0.2 25)}
.mkt-counter{display:flex;align-items:center;gap:.4rem}
.mkt-counter .rf-costinput{max-width:120px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:0 .4rem}
.mkt-reply{display:flex;gap:.6rem;align-items:flex-end}
.mkt-reply textarea{flex:1;min-height:44px;resize:vertical;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:inherit;font-size:.86rem;padding:.55rem .7rem;line-height:1.4}
.mkt-reply textarea:focus{outline:none;border-color:var(--brand);background:var(--surface)}
.mkt-reply .btn svg{width:1em;height:1em}

/* quick reply templates */
.mkt-tmpls{display:flex;flex-wrap:wrap;gap:.4rem}
.mkt-tmpl{font-size:.76rem;font-weight:600;color:var(--ink-2);padding:.32rem .7rem;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);transition:.15s}
.mkt-tmpl:hover{border-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}

/* sold price vs list analytics */
.mkt-analytics{margin:0 0 1.8rem}
.mkt-an__chans{display:flex;gap:.4rem;flex-wrap:wrap}
.mkt-an__chchip{display:inline-flex;align-items:center;gap:.35em;font-size:.76rem;color:var(--ink-3);padding:.3rem .6rem;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line)}
.mkt-an__chchip svg{width:13px;height:13px}
.mkt-an__chchip b{color:var(--ink);font-family:var(--font-mono)}
.mkt-an__chchip i{font-style:normal;color:var(--ink-3)}
.mkt-an__chchip[data-ch="ebay"] svg{color:oklch(0.5 0.16 250)}
.mkt-an__chchip[data-ch="facebook"] svg{color:oklch(0.5 0.17 260)}
.mkt-an__chchip[data-ch="kijiji"] svg{color:oklch(0.5 0.14 155)}
.mkt-an__sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:0 0 1.1rem}
.mkt-an__sum>div{padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.mkt-an__sum b{display:block;font-family:var(--font-display);font-size:1.3rem;line-height:1.1;color:var(--ink)}
.mkt-an__sum span{font-size:.66rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.mkt-an__sum>div[data-tone="good"] b{color:oklch(0.55 0.13 150)}
.mkt-an__sum>div[data-tone="warn"] b{color:var(--accent-strong)}
[data-theme="dark"] .mkt-an__sum>div[data-tone="good"] b{color:oklch(0.8 0.14 150)}
.mkt-an__list-wrap{display:flex;flex-direction:column;gap:.7rem}
.mkt-an__row{display:grid;grid-template-columns:1.4fr 2fr .9fr;align-items:center;gap:1rem}
.mkt-an__unit b{display:block;font-size:.9rem;color:var(--ink)}
.mkt-an__meta{display:inline-flex;align-items:center;gap:.3em;font-size:.74rem;color:var(--ink-3)}
.mkt-an__meta svg{width:12px;height:12px}
.mkt-an__track{position:relative;height:26px;border-radius:7px;background:var(--surface-3);overflow:hidden}
.mkt-an__fill{height:100%;border-radius:inherit;background:oklch(0.55 0.13 150);transition:width .4s var(--ease-out)}
.mkt-an__fill[data-tone="warn"]{background:oklch(0.78 0.15 65)}
.mkt-an__fill[data-tone="under"]{background:oklch(0.6 0.2 25)}
.mkt-an__list{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.68rem;font-family:var(--font-mono);color:var(--ink-2)}
.mkt-an__nums{text-align:right}
.mkt-an__nums>b{font-family:var(--font-mono);font-size:.95rem;color:var(--ink)}
.mkt-an__delta{display:block;font-size:.7rem;font-family:var(--font-mono)}
.mkt-an__delta[data-tone="good"]{color:oklch(0.5 0.13 150)}
.mkt-an__delta[data-tone="warn"],.mkt-an__delta[data-tone="under"]{color:var(--accent-strong)}
[data-theme="dark"] .mkt-an__delta[data-tone="good"]{color:oklch(0.8 0.14 150)}
@media (max-width:680px){.mkt-an__row{grid-template-columns:1fr auto}.mkt-an__bar{grid-column:1 / -1;order:3}}

/* sync activity log */
.mkt-activity{margin-top:1.8rem}
.mkt-evlist{list-style:none;margin:0;padding:0;border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.mkt-ev{display:flex;align-items:flex-start;gap:.8rem;padding:.75rem 1.1rem;border-bottom:1px solid var(--line)}
.mkt-ev:last-child{border-bottom:none}
.mkt-ev__ic{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3)}
.mkt-ev__ic svg{width:16px;height:16px}
.mkt-ev[data-tone="good"] .mkt-ev__ic{background:oklch(0.55 0.13 150 / .16);color:oklch(0.46 0.13 150)}
.mkt-ev[data-tone="info"] .mkt-ev__ic{background:var(--brand-soft);color:var(--brand-ink)}
.mkt-ev[data-tone="warn"] .mkt-ev__ic{background:oklch(0.78 0.15 65 / .18);color:var(--accent-strong)}
[data-theme="dark"] .mkt-ev[data-tone="good"] .mkt-ev__ic{color:oklch(0.82 0.14 150)}
.mkt-ev__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}
.mkt-ev__txt{font-size:.88rem;color:var(--ink);line-height:1.4}
.mkt-ev__meta{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.mkt-ev__chan{display:inline-flex;align-items:center;gap:.3em;font-size:.72rem;font-weight:600;color:var(--ink-3)}
.mkt-ev__chan svg{width:12px;height:12px}
.mkt-ev__chan[data-ch="ebay"]{color:oklch(0.5 0.16 250)}
.mkt-ev__chan[data-ch="facebook"]{color:oklch(0.5 0.17 260)}
.mkt-ev__chan[data-ch="kijiji"]{color:oklch(0.5 0.14 155)}
[data-theme="dark"] .mkt-ev__chan[data-ch="ebay"]{color:oklch(0.75 0.15 250)}
[data-theme="dark"] .mkt-ev__chan[data-ch="facebook"]{color:oklch(0.75 0.15 260)}
[data-theme="dark"] .mkt-ev__chan[data-ch="kijiji"]{color:oklch(0.78 0.15 155)}
.mkt-ev__time{font-size:.72rem;color:var(--ink-3);font-family:var(--font-mono)}

/* home dashboard: refurbishment overview strip */
.rep-refdash{margin:0 0 1.6rem}
.rep-refdash:empty{display:none}
.rep-refdash__hd{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .7rem}
.rep-refdash__t{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-2)}
.rep-refdash__t svg{width:16px;height:16px;color:var(--ink-3)}
.rep-refdash__all{font-size:.82rem;font-weight:600;color:var(--brand-ink);padding:.2rem .1rem}
.rep-refdash__all:hover{color:var(--brand)}
.rep-refdash__cards{margin:0}

/* ============================================================================
   MASTER DASHBOARD
   ========================================================================== */
.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:0 0 1.6rem}
.dash-alert{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;margin:0 0 1.4rem;border-radius:var(--radius);border:1.5px solid oklch(0.62 0.2 25);background:oklch(0.62 0.2 25 / 0.08)}
.dash-alert__ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:oklch(0.62 0.2 25 / 0.16);color:oklch(0.55 0.22 25)}
.dash-alert__ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dash-alert__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.dash-alert__txt b{color:oklch(0.48 0.2 25);font-size:.95rem}
.dash-alert__txt span{color:var(--ink-2);font-size:.85rem}
.dash-alert__go{flex:none;padding:.5rem .9rem;border-radius:9px;border:none;cursor:pointer;font-weight:600;font-size:.85rem;color:#fff;background:oklch(0.55 0.22 25)}
.dash-alert__go:hover{background:oklch(0.5 0.22 25)}
.dash-alert__x{flex:none;width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:oklch(0.5 0.12 25);font-size:1.3rem;line-height:1;cursor:pointer}
.dash-alert__x:hover{background:oklch(0.62 0.2 25 / 0.16)}
.dash-kpi{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start;text-align:left;padding:1.2rem 1.3rem;
  border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:.15s;position:relative;overflow:hidden}
.dash-kpi::after{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand);opacity:0;transition:.15s}
.dash-kpi:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow)}
.dash-kpi:hover::after{opacity:1}
.dash-kpi__ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);margin-bottom:.55rem}
.dash-kpi__ic svg{width:20px;height:20px}
.dash-kpi__n{font-family:var(--font-display);font-size:2rem;line-height:1;color:var(--ink)}
.dash-kpi__l{font-size:.82rem;color:var(--ink-3);font-weight:500}
.dash-kpi[data-tone="warn"] .dash-kpi__ic{background:oklch(0.78 0.15 65 / .2);color:var(--accent-strong)}
.dash-kpi[data-tone="warn"] .dash-kpi__n{color:var(--accent-strong)}
.dash-kpi[data-tone="warn"]::after{background:var(--accent)}

.dash-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(370px,1fr));gap:1.1rem}
.dash-group{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:1.1rem}
.dash-group__hd{display:flex;align-items:center;gap:.7rem}
.dash-group__ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2)}
.dash-group__ic svg{width:18px;height:18px}
.dash-group__hd h3{flex:1;font-size:1.02rem;font-weight:700;color:var(--ink)}
.dash-group__open{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--brand-ink);white-space:nowrap;padding:.25rem .3rem}
.dash-group__open svg{width:14px;height:14px}
.dash-group__open:hover{color:var(--brand)}
.dash-group__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:.6rem}
.dash-stat{padding:.75rem .3rem;border-radius:var(--radius-sm);background:var(--surface-2);text-align:center;transition:.15s}
.dash-stat[data-filter]:hover{background:var(--surface-3)}
.dash-stat b{display:block;font-family:var(--font-display);font-size:1.35rem;line-height:1.1;color:var(--ink)}
.dash-stat span{font-size:.68rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.02em}
.dash-stat[data-tone="good"] b{color:oklch(0.55 0.13 150)}
.dash-stat[data-tone="warn"] b{color:var(--accent-strong)}
[data-theme="dark"] .dash-stat[data-tone="good"] b{color:oklch(0.8 0.14 150)}
@media (max-width:520px){.dash-groups{grid-template-columns:1fr}.dash-group{min-width:0}}

/* ============================================================================
   CUSTOMER CONTACT SYSTEM
   ========================================================================== */
/* view toggle (Customers / Referrals) */
.cust-viewtabs{display:inline-flex;gap:.2rem;padding:.25rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);margin:0 0 1.3rem}
.cust-viewtabs button{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .95rem;border-radius:var(--radius-pill);font-size:.86rem;font-weight:600;color:var(--ink-3);transition:.15s}
.cust-viewtabs button svg{width:15px;height:15px}
.cust-viewtabs button:hover{color:var(--ink)}
.cust-viewtabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
[data-theme="dark"] .cust-viewtabs button.on{background:var(--surface-3)}

/* list row meta tags */
.cust-card .arow-main b{white-space:normal}
.cust-card .meta .cust-tag{display:inline-flex;align-items:center;gap:.3em;font-weight:600}
.cust-card .meta svg{width:13px;height:13px;flex:none}
.cust-card .meta .cust-tag{white-space:nowrap}
.cust-card .meta .cust-tag svg{width:12px;height:12px}
.cust-card .meta .cust-ref{color:var(--brand-ink)}
.cust-card .meta .cust-made{color:oklch(0.5 0.13 150)}
[data-theme="dark"] .cust-card .meta .cust-made{color:oklch(0.8 0.14 150)}
.cust-card .meta .cust-reps{color:var(--ink-2)}
.cust-card .meta .cust-addr{display:inline-flex;align-items:center;gap:.3em;max-width:26ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cust-card .meta .cust-addr svg{margin-top:-1px}

/* referral leaderboard */
.cust-lead{display:flex;flex-direction:column;gap:.6rem}
.cust-lead__row{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem;box-shadow:var(--shadow-sm);transition:border-color .2s}
.cust-lead__row:hover{border-color:var(--line-2)}
.cust-lead__rank{flex:none;width:1.8rem;text-align:center;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink-3)}
.cust-lead__row:nth-child(1) .cust-lead__rank{color:var(--brand-ink)}
.cust-lead__av{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-family:var(--font-display);background:linear-gradient(145deg,var(--brand),var(--brand-deep))}
.cust-lead__main{flex:1;min-width:0}
.cust-lead__main b{font-family:var(--font-display);font-weight:600;font-size:1rem;display:block}
.cust-lead__names{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.cust-lead__count{flex:none;font-family:var(--font-mono);font-weight:700;font-size:.82rem;color:var(--brand-ink);background:var(--brand-soft);padding:.35em .8em;border-radius:var(--radius-pill);text-align:center;line-height:1.15}
.cust-lead__count span{display:block;font-size:.58rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:.1em}

/* chips (referred names / sources) */
.cust-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.cust-chip{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:600;color:var(--ink-2);padding:.32rem .7rem;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line)}
.cust-chip i{font-style:normal;font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3)}
.cust-chip.src{background:var(--brand-soft);border-color:transparent;color:var(--brand-ink)}
.cust-chip.src i{color:var(--brand-ink);opacity:.75}

.cust-subhd{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin:1.8rem 0 .9rem}
.cust-subhd svg{width:16px;height:16px;color:var(--ink-3)}

/* editor: referral picker */
.cust-refbox{display:flex;flex-direction:column;gap:.9rem}
.cust-madebox{margin-top:1rem}
.cust-made-none{font-size:.84rem;color:var(--ink-3);padding:.5rem 0}

/* editor: stat strip */
.cust-editstat{display:flex;gap:.9rem;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:1.4rem}
.cust-editstat>div{flex:1;min-width:90px}
.cust-editstat b{display:block;font-family:var(--font-display);font-size:1.5rem;line-height:1;color:var(--ink)}
.cust-editstat span{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em;margin-top:.2rem;display:block}

/* ============================================================================
   SERVICE CALL TRACKER
   ========================================================================== */
.sc-dash{grid-template-columns:repeat(5,1fr)}
@media (max-width:1080px){.sc-dash{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.sc-dash{grid-template-columns:repeat(2,1fr)}}

.sc-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.sc-dot--lg{width:14px;height:14px}

/* view toggle + toolbar */
.sc-viewtabs{margin-bottom:1rem}
.sc-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.sc-search{flex:1 1 260px;min-width:220px}
.sc-techlegend{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.sc-legend-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .8rem;border-radius:var(--radius-pill);
  background:var(--surface);border:1.5px solid var(--line);color:var(--ink-2);font-weight:600;font-size:.82rem;transition:.15s}
.sc-legend-chip:hover{border-color:var(--line-2);color:var(--ink)}
.sc-legend-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}

/* ---- calendar ---- */
.sc-cal-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}
.sc-cal-nav{display:flex;align-items:center;gap:.4rem}
.sc-cal-month{font-size:1.25rem;font-family:var(--font-display);margin:0}
.sc-cal-count{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3)}
.sc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.sc-cal-dow{gap:0;margin-bottom:.35rem}
.sc-cal-wk{text-align:center;font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);padding:.3rem 0}
.sc-cal-body{gap:6px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;padding:1px}
.sc-cal-cell{background:var(--surface);min-height:118px;padding:.35rem;display:flex;flex-direction:column;gap:.25rem}
.sc-cal-cell--empty{background:var(--surface-2);opacity:.5}
.sc-cal-cell--today{background:var(--brand-soft)}
.sc-cal-daynum{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--ink-2);padding:.1rem .15rem}
.sc-cal-cell--today .sc-cal-daynum{color:var(--brand-ink)}
.sc-cal-add{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--ink-3);opacity:0;transition:.15s}
.sc-cal-add svg{width:14px;height:14px}
.sc-cal-cell:hover .sc-cal-add{opacity:1}
.sc-cal-add:hover{background:var(--surface-3);color:var(--brand-ink)}
.sc-cal-events{display:flex;flex-direction:column;gap:3px;min-height:0}
.sc-evt{display:block;width:100%;text-align:left;font-size:.72rem;font-weight:600;color:var(--ink);
  padding:.22rem .4rem;border-radius:6px;background:color-mix(in oklab,var(--tc) 16%,var(--surface));
  border-left:3px solid var(--tc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.12s}
.sc-evt:hover{background:color-mix(in oklab,var(--tc) 28%,var(--surface))}
.sc-evt-t{font-family:var(--font-mono);font-size:.66rem;color:var(--ink-3)}
.sc-evt[data-status="completed"]{opacity:.6}
.sc-evt[data-status="cancelled"]{opacity:.5;text-decoration:line-through}
.sc-evt-more{font-size:.68rem;font-weight:600;color:var(--brand-ink);padding:.1rem .4rem;text-align:left}
.sc-evt-more:hover{text-decoration:underline}
@media (max-width:720px){.sc-cal-cell{min-height:84px}.sc-evt{font-size:.66rem}}

/* ---- list ---- */
.sc-sortbar{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-3);margin-bottom:.9rem}
.sc-sort{padding:.32rem .7rem;border-radius:var(--radius-pill);font-weight:600;font-size:.8rem;color:var(--ink-2);border:1.5px solid var(--line);background:var(--surface)}
.sc-sort:hover{border-color:var(--line-2)}
.sc-sort.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.sc-card .sc-when{flex:none;width:64px;text-align:center;display:flex;flex-direction:column;line-height:1.15}
.sc-card .sc-when b{font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}
.sc-card .sc-when small{font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3)}
.sc-tech-tag{display:inline-flex;align-items:center;gap:.4em;font-weight:600}
.sc-loc{display:inline-flex;align-items:center;gap:.3em;max-width:28ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-loc svg{width:13px;height:13px;flex:none}
.sc-card .arow-actions a.btn svg{width:1em;height:1em}

/* ---- map ---- */
.sc-map{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1rem;align-items:start}
@media (max-width:820px){.sc-map{grid-template-columns:1fr}}
.sc-map-list{display:flex;flex-direction:column;gap:.5rem;max-height:600px;overflow-y:auto}
.sc-map-item{display:flex;align-items:center;gap:.7rem;text-align:left;padding:.7rem .8rem;border-radius:var(--radius);
  border:1.5px solid var(--line);background:var(--surface);transition:.15s}
.sc-map-item:hover{border-color:var(--line-2)}
.sc-map-item.on{border-color:var(--tc);background:color-mix(in oklab,var(--tc) 10%,var(--surface))}
.sc-map-pin{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:color-mix(in oklab,var(--tc) 18%,var(--surface));color:var(--tc)}
.sc-map-pin svg{width:17px;height:17px}
.sc-map-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.sc-map-info b{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-map-info small{font-size:.78rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-map-meta{font-family:var(--font-mono);font-size:.66rem;color:var(--ink-3)}
.sc-map-view{position:sticky;top:1rem;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}
.sc-map-frame{width:100%;height:340px;border:0;display:block;background:var(--surface-2)}
.sc-map-card{padding:1rem 1.1rem}
.sc-map-card-hd{display:flex;align-items:center;gap:.7rem;justify-content:space-between;margin-bottom:.5rem}
.sc-map-card-hd b{font-family:var(--font-display);font-size:1.05rem}
.sc-map-addr{display:flex;align-items:flex-start;gap:.4em;font-size:.9rem;color:var(--ink-2);margin-bottom:.3rem}
.sc-map-addr svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--brand-ink)}
.sc-map-sub{font-size:.8rem;color:var(--ink-3);margin-bottom:.9rem}
.sc-map-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.sc-map-actions .btn svg{width:1em;height:1em}

/* ---- editor bits ---- */
.sc-link{font-size:.78rem;font-weight:600;color:var(--brand-ink);display:inline-flex;align-items:center;gap:.35em;margin-left:.5rem}
.sc-link svg{width:14px;height:14px}
.sc-link:hover{text-decoration:underline}
.afield label .sc-link{float:right;margin-left:0;font-weight:600}
.sc-cust-card-in{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.7rem}
.sc-cust-row{display:flex;align-items:center;gap:.7rem}
.sc-cust-av{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-family:var(--font-display);font-size:.85rem;background:linear-gradient(145deg,var(--brand),var(--brand-deep))}
.sc-cust-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.sc-cust-lines b{font-size:.95rem}
.sc-cust-lines small{font-size:.78rem;color:var(--ink-3)}
.sc-cust-addr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-loc-actions{display:flex;gap:.5rem;flex-wrap:wrap}.sc-loc-actions .btn svg{width:1em;height:1em}
.sc-areas{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}
.sc-areachip{font-size:.78rem;font-weight:600;padding:.35rem .7rem;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2)}
.sc-areachip:hover{border-color:var(--brand);color:var(--brand-ink)}

/* ---- technicians drawer ---- */
.sc-help{font-size:.88rem;color:var(--ink-3);line-height:1.55;margin-bottom:1.2rem}
.sc-tech-list{display:flex;flex-direction:column;gap:.9rem}
.sc-tech-item{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem}
.sc-tech-top{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}
.sc-tech-name{flex:1;padding:.6rem .8rem;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font-size:.95rem;font-weight:600}
.sc-tech-name:focus{outline:none;border-color:var(--brand)}
.sc-tech-del{flex:none;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--ink-3)}
.sc-tech-del:hover{color:oklch(0.55 0.2 25);border-color:oklch(0.55 0.2 25)}
.sc-tech-del svg{width:16px;height:16px}
.sc-tech-contact input{padding:.6rem .8rem;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font-size:.9rem}
.sc-tech-contact input:focus{outline:none;border-color:var(--brand)}
.sc-swatches{display:flex;gap:.4rem;margin-top:.7rem;flex-wrap:wrap}
.sc-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;transition:.15s}
.sc-swatch:hover{transform:scale(1.12)}
.sc-swatch.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink-3)}

/* ---- feed drawer ---- */
.sc-feed-url{display:flex;gap:.5rem}
.sc-feed-url input{flex:1;padding:.7rem .9rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);font-family:var(--font-mono);font-size:.8rem}
.sc-feed-url .btn{flex:none}
.sc-feed-btns{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.2rem}
.sc-feed-btns .btn svg{width:1em;height:1em}
.sc-feed-note{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--ink-2);line-height:1.55;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.85rem 1rem}
.sc-feed-note svg{width:18px;height:18px;flex:none;color:var(--brand-ink);margin-top:1px}
.sc-feed-note code{font-family:var(--font-mono);font-size:.9em;background:var(--surface-3);padding:.05em .4em;border-radius:5px}

/* ---- photos + signature ---- */
.sc-meta-ic{display:inline-flex;align-items:center;gap:.3em}
.sc-meta-ic svg{width:13px;height:13px}
.sc-meta-ic--ok{color:oklch(0.55 0.13 155);font-weight:600}
.sc-meta-ic--muted{color:var(--ink-3)}

/* ---- reminder emails (editor) ---- */
.sc-remind{margin-top:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:.9rem 1rem}
.sc-remind-hd{font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.7rem}
.sc-check{display:flex;align-items:flex-start;gap:.6rem;padding:.4rem 0;cursor:pointer;font-size:.9rem;color:var(--ink)}
.sc-check input{margin-top:.15rem;width:16px;height:16px;accent-color:var(--brand);flex:none}
.sc-check b{font-weight:600}
.sc-check small{color:var(--ink-3);font-weight:400}
.sc-check .sc-warn{color:oklch(0.6 0.15 55)}
.sc-check--dim{opacity:.7}
.sc-remind-foot{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}
.sc-remind-foot .btn{margin-left:auto}
.sc-remind-foot .btn svg{width:1em;height:1em}
.sc-remind-sent,.sc-remind-sched,.sc-remind-off{display:inline-flex;align-items:center;gap:.35em;font-size:.8rem}
.sc-remind-sent{color:oklch(0.55 0.13 155);font-weight:600}
.sc-remind-sent svg,.sc-remind-sched svg{width:14px;height:14px}
.sc-remind-sched{color:var(--ink-2)}
.sc-remind-off{color:var(--ink-3)}
.sc-sig{position:relative;border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);height:170px;overflow:hidden}
.sc-sig-canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
.sc-sig-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--ink-3);font-size:.95rem;pointer-events:none;letter-spacing:.02em}
.sc-sig-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.7rem}
.sc-sig-actions .btn svg{width:1em;height:1em}
.sc-sig-done{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1rem}
.sc-sig-preview{flex:none;width:200px;height:80px;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;overflow:hidden}
.sc-sig-preview img{max-width:100%;max-height:100%;object-fit:contain}
.sc-sig-meta{display:flex;align-items:center;gap:.55rem;color:var(--ink-2)}
.sc-sig-meta svg{width:20px;height:20px;flex:none;color:oklch(0.55 0.13 155)}
.sc-sig-meta b{display:block;font-size:.9rem;color:var(--ink)}
.sc-sig-meta small{font-size:.76rem;color:var(--ink-3)}
.sc-sig-done .btn{margin-left:auto}

/* ============================================================================
   MASTER SETTINGS DRAWER
   ========================================================================== */
#settingsEditor .editor__panel{width:min(1060px,100%)}
.set-scope{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.3rem .7rem}
.set-shell{display:grid;grid-template-columns:266px 1fr;height:100%}
.set-rail{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface);min-height:0}
.set-detail{overflow-y:auto;padding:1.5rem clamp(1.1rem,2.6vw,2rem) 2rem}

/* search */
.set-search{display:flex;align-items:center;gap:.5rem;padding:.9rem 1rem;border-bottom:1px solid var(--line);flex:none}
.set-search svg{width:16px;height:16px;color:var(--ink-3);flex:none}
.set-search input{border:none;background:transparent;color:var(--ink);font-size:.9rem;width:100%;outline:none}
.set-search__k{flex:none;font-family:var(--font-mono);font-size:.64rem;font-weight:700;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:.15rem .4rem}

/* command palette results */
.set-rail{position:relative}
.set-cmd{position:absolute;left:0;right:0;top:53px;bottom:0;background:var(--surface);z-index:5;overflow-y:auto;padding:.5rem .55rem .8rem;box-shadow:0 12px 24px -12px rgba(0,0,0,.25)}
.set-cmd__hint{font-size:.68rem;color:var(--ink-3);padding:.35rem .6rem .5rem;font-family:var(--font-mono)}
.set-cmd__hint kbd{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 .3rem;font-family:inherit}
.set-cmd__row{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.5rem .65rem;border-radius:9px;transition:background .12s}
.set-cmd__row.on{background:color-mix(in oklab,var(--brand) 13%,transparent)}
.set-cmd__lb{font-size:.9rem;font-weight:600;color:var(--ink)}
.set-cmd__row.on .set-cmd__lb{color:var(--brand-ink)}
.set-cmd__crumb{font-size:.7rem;color:var(--ink-3);font-family:var(--font-mono)}
.set-cmd__empty{font-size:.82rem;color:var(--ink-3);padding:1rem .6rem}

/* jump-to-field flash */
.set-f--flash{animation:setFieldFlash 1.6s var(--ease-out)}
@keyframes setFieldFlash{0%,40%{background:color-mix(in oklab,var(--brand) 16%,transparent)}100%{background:transparent}}
.set-f--flash{border-radius:10px;margin-inline:-.5rem;padding-inline:.5rem}

/* nav */
.set-nav{flex:1;overflow-y:auto;padding:.6rem .55rem 1rem}
.set-navgroup{margin-bottom:.5rem}
.set-navgroup__h{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);padding:.7rem .7rem .35rem}
.set-navbtn{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .65rem;border-radius:10px;
  color:var(--ink-2);font-size:.9rem;font-weight:600;transition:background .15s,color .15s;text-align:left}
.set-navbtn:hover{background:var(--surface-2);color:var(--ink)}
.set-navbtn.on{background:color-mix(in oklab,var(--brand) 12%,transparent);color:var(--brand-ink)}
.set-navbtn__ic{width:20px;height:20px;flex:none;display:grid;place-items:center}
.set-navbtn__ic svg{width:17px;height:17px}
.set-navbtn__lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-navbtn__ext{color:var(--ink-3);display:grid;place-items:center}
.set-navbtn__ext svg{width:13px;height:13px}
.set-navbtn__dot{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);
  color:var(--on-brand);font-size:.68rem;font-weight:800;display:grid;place-items:center}

/* activity */
.set-activity{border-top:1px solid var(--line);flex:none;max-height:44%;display:flex;flex-direction:column}
.set-activity__toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.8rem 1rem;color:var(--ink-2);
  font-size:.82rem;font-weight:700}
.set-activity__toggle svg{width:15px;height:15px;color:var(--ink-3)}
.set-activity__toggle.on{color:var(--ink)}
.set-act__list{overflow-y:auto;padding:0 .8rem .8rem}
.set-act__empty,.set-act__row{font-size:.78rem}
.set-act__empty{color:var(--ink-3);padding:.4rem .3rem 1rem}
.set-act__row{padding:.55rem .5rem;border-radius:8px;background:var(--surface-2);margin-bottom:.4rem}
.set-act__main{display:flex;align-items:baseline;gap:.5rem;justify-content:space-between}
.set-act__main b{color:var(--ink);font-size:.82rem}
.set-act__sec{color:var(--ink-3);font-size:.68rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}
.set-act__meta{color:var(--ink-3);margin-top:.1rem}
.set-act__chg{margin-top:.25rem;color:var(--ink-2);font-family:var(--font-mono);font-size:.72rem}
.set-act__chg s{color:var(--ink-3)}

/* detail header */
.set-dhead{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.3rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.set-dhead h3{font-size:1.3rem;margin-bottom:.2rem}
.set-dhead p{color:var(--ink-3);font-size:.88rem;max-width:52ch}
.set-reset{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);font-size:.8rem;font-weight:600;background:var(--surface)}
.set-reset:hover{color:var(--ink);border-color:var(--ink-3)}
.set-reset svg{width:14px;height:14px}
.set-live{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700;
  color:oklch(0.52 0.13 155);background:color-mix(in oklab,oklch(0.52 0.13 155) 12%,transparent);border-radius:var(--radius-pill);padding:.35rem .75rem}
.set-live svg{width:14px;height:14px}

/* field grid */
.set-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
.set-f{grid-column:span 2}
.set-f.set-f--full{grid-column:span 2}
@media(min-width:760px){.set-f:not(.set-f--full){grid-column:span 1}}
.set-f--dirty>label{color:var(--brand-ink)}
.set-chg{font-family:var(--font-mono);font-size:.62rem;font-weight:700;color:var(--brand-ink);letter-spacing:.04em}

/* toggle switch */
.set-switch{display:flex;align-items:center;gap:.65rem;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--ink);margin:0}
.set-switch input{position:absolute;opacity:0;pointer-events:none}
.set-switch__track{flex:none;width:40px;height:23px;border-radius:12px;background:var(--surface-2);border:1.5px solid var(--line);position:relative;transition:.2s}
.set-switch__track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--ink-3);transition:.2s}
.set-switch input:checked+.set-switch__track{background:var(--brand);border-color:var(--brand)}
.set-switch input:checked+.set-switch__track::after{transform:translateX(17px);background:#fff}
.set-f--toggle{display:flex;flex-direction:column;gap:.4rem;padding:.55rem 0}
.set-switch__lb{font-weight:600}

/* color */
.set-color{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.set-color input[type=color]{width:44px;height:40px;padding:0;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:none;cursor:pointer}
.set-color__hex{width:110px!important;font-family:var(--font-mono);text-transform:uppercase}
.set-sws{display:flex;gap:.4rem}
.set-sw{width:26px;height:26px;border-radius:7px;border:2px solid transparent;box-shadow:0 0 0 1px var(--line) inset;cursor:pointer;transition:.15s}
.set-sw.on{border-color:var(--ink);transform:scale(1.08)}

/* logo */
.set-logo{display:flex;align-items:center;gap:1rem}
.set-logo__prev{width:120px;height:66px;border:1.5px dashed var(--line);border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface-2);overflow:hidden}
.set-logo__prev img{max-width:88%;max-height:82%;object-fit:contain}
.set-logo__prev span{color:var(--ink-3);font-size:.76rem;font-family:var(--font-mono)}
.set-logo__act{display:flex;gap:.5rem;flex-wrap:wrap}
.set-logo__act label{cursor:pointer}

/* list editor */
.set-list{display:flex;flex-direction:column;gap:.45rem}
.set-listrow{display:flex;gap:.5rem;align-items:center}
.set-listrow input{flex:1}
.set-x{flex:none;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3)}
.set-x:hover{color:oklch(0.58 0.2 25);border-color:oklch(0.58 0.2 25)}
.set-x svg{width:15px;height:15px}
.set-list-add{align-self:flex-start;margin-top:.15rem;padding:.45rem .8rem;border-radius:var(--radius-sm);
  border:1px dashed var(--line);color:var(--ink-2);font-size:.82rem;font-weight:700}
.set-list-add:hover{border-color:var(--brand);color:var(--brand-ink)}

/* technician diagnostic checklist library */
.set-cl{display:flex;flex-direction:column;gap:.45rem}
.set-cl__tpl{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}
.set-cl__tpl summary{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;cursor:pointer;list-style:none}
.set-cl__tpl summary::-webkit-details-marker{display:none}
.set-cl__tpl summary::before{content:"";flex:none;width:0;height:0;border-left:5px solid var(--ink-3);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
.set-cl__tpl[open] summary::before{transform:rotate(90deg)}
.set-cl__nm{flex:1;font-weight:700;font-size:.9rem}
.set-cl__n{flex:none;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3)}
.set-cl__body{display:flex;flex-direction:column;gap:.45rem;padding:.2rem .75rem .8rem;border-top:1px solid var(--line)}
.set-cl__meta{display:flex;gap:.5rem;align-items:center;margin-top:.6rem}
.set-cl__meta input{flex:1}
.set-cl__match{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.3rem}
.set-cl__match label{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.set-cl__row{display:flex;gap:.5rem;align-items:center}
.set-cl__row input{flex:1}
.set-cl__foot{display:flex;gap:.6rem;align-items:center;margin-top:.3rem}

/* hours */
.set-hours{display:flex;flex-direction:column;gap:.5rem}
.set-hrow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.5rem .6rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.set-hrow__day{width:120px;flex:none}
.set-hrow__day--fixed{font-weight:600;color:var(--ink);font-size:.9rem}
.set-hrow__times{display:flex;align-items:center;gap:.4rem}
.set-hrow__times input{width:120px}
.set-hrow__closed{display:flex;align-items:center;gap:.4rem;margin-left:auto;font-size:.82rem;color:var(--ink-2);font-weight:600}
.set-hrow--closed .set-hrow__times{opacity:.45}

/* social */
.set-social{display:flex;flex-direction:column;gap:.5rem}
.set-socrow{display:flex;align-items:center;gap:.7rem}
.set-socrow__lb{width:96px;flex:none;font-size:.84rem;font-weight:700;color:var(--ink-2)}
.set-socrow input{flex:1}

/* perms */
.set-perms{display:flex;flex-wrap:wrap;gap:.5rem}
.set-perm{display:flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border:1.5px solid var(--line);border-radius:var(--radius-pill);
  font-size:.85rem;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.15s}
.set-perm input{position:absolute;opacity:0;pointer-events:none}
.set-perm.on{border-color:var(--brand);color:var(--brand-ink);background:color-mix(in oklab,var(--brand) 10%,transparent)}

/* banner */
.set-banner{display:flex;flex-direction:column;gap:.7rem}
.set-banner__body{display:flex;flex-direction:column;gap:.5rem}
.set-banner__body--off{opacity:.45;pointer-events:none}

/* content-host: keep folded-in content editors tidy */
.set-content-host .apanel-head,.set-content-host .content-sec-head>div p{display:none}
.set-content-host .content-sec-head{margin-top:0}

/* footer bar */
.set-foot{background:var(--surface)}
.set-foot .spacer{margin-left:auto}
.set-foot__msg{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-2);font-weight:600}
.set-foot__msg svg{width:16px;height:16px}
.set-foot__msg--ok{color:oklch(0.52 0.13 155)}
.set-foot--ok .set-foot__msg{color:oklch(0.52 0.13 155)}
.set-foot--dirty .set-foot__msg{color:var(--brand-ink)}
.set-foot--dirty .set-foot__msg b{font-weight:800}

.set-empty{color:var(--ink-3);font-size:.86rem;padding:1rem}

/* subhead divider inside a section */
.set-subhead{grid-column:span 2;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin:.9rem 0 .3rem;padding-top:.9rem;border-top:1px solid var(--line)}
.set-grid>.set-subhead:first-child{border-top:none;padding-top:0;margin-top:0}

/* secret / api-key field */
.set-secret{display:flex;gap:.4rem;align-items:stretch}
.set-secret input{flex:1;font-family:var(--font-mono);letter-spacing:.02em}
.set-secret__btn{flex:none;width:42px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-3);display:grid;place-items:center}
.set-secret__btn:hover{color:var(--ink);border-color:var(--ink-3)}
.set-secret__btn.on{color:var(--brand-ink);border-color:var(--brand)}
.set-secret__btn svg{width:16px;height:16px}

/* last-backup readout */
.set-lastbk{display:flex;align-items:center;gap:.55rem;padding:.7rem .9rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);font-size:.88rem}
.set-lastbk__dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none}
.set-lastbk__dot.on{background:oklch(0.6 0.15 155)}

/* data-tool actions */
.set-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.3rem}
.set-actions .btn svg{width:1.05em;height:1.05em}

/* email templates editor */
.set-tmpl{display:flex;flex-direction:column;gap:.2rem}
.set-tmpl__pick{margin-bottom:.9rem;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.set-tmpl__pick select{max-width:340px;flex:1;min-width:220px}
/* plain/html mode toggle */
.set-tmpl__mode{display:inline-flex;background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--radius-pill);padding:2px}
.set-tmpl__modebtn{border:none;background:none;font:inherit;font-size:.8rem;font-weight:600;color:var(--ink-3);
  padding:.42rem .95rem;border-radius:var(--radius-pill);cursor:pointer;transition:.15s}
.set-tmpl__modebtn.is-on{background:var(--brand);color:#fff}
.set-tmpl__body{min-height:200px;font-family:var(--font-mono);font-size:.86rem;line-height:1.6}
.set-tmpl__code{min-height:340px;white-space:pre;overflow:auto;tab-size:2}
/* html editor + live preview split */
.set-tmpl__split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:stretch}
@media (max-width:860px){.set-tmpl__split{grid-template-columns:1fr}}
.set-tmpl__col{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.set-tmpl__col>label{font-size:.84rem;font-weight:700;color:var(--ink-2)}
.set-tmpl__prevlb{display:flex;align-items:baseline;gap:.5rem}
.set-tmpl__prevlb span{font-size:.72rem;font-weight:500;color:var(--ink-3)}
.set-tmpl__preview{width:100%;min-height:340px;flex:1;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:#eef1f4;overflow:auto}
.set-tmpl__actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);display:flex}
.set-tmpl__actions .btn svg{width:16px;height:16px}
/* send-test modal */
.set-testmodal{position:relative;z-index:1;margin:auto;max-width:460px;width:calc(100% - 2rem);top:50%;transform:translateY(-50%);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:1.6rem;display:flex;flex-direction:column;gap:.85rem}
.set-testmodal h3{font-size:1.2rem}
.set-testmodal__sub{color:var(--ink-3);font-size:.9rem}
.set-testmodal__meta{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .9rem;
  display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}
.set-testmodal__meta span{display:inline-block;min-width:58px;color:var(--ink-3);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.set-testmodal__act{display:flex;gap:.7rem;justify-content:flex-end;margin-top:.3rem}
.set-tmpl__tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.2rem}
.set-tmpl__tagslb{font-size:.78rem;color:var(--ink-3);font-weight:600;margin-right:.2rem}
.set-tag{font-family:var(--font-mono);font-size:.74rem;padding:.3rem .55rem;border-radius:6px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--brand-ink);font-weight:600}
.set-tag:hover{border-color:var(--brand);background:color-mix(in oklab,var(--brand) 10%,transparent)}

/* role matrix */
.set-rm{display:flex;flex-direction:column;gap:.7rem}
.set-rm__note{font-size:.82rem;color:var(--ink-3)}
.set-rm__scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}
.set-rm__table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:560px}
.set-rm__table th,.set-rm__table td{padding:.55rem .5rem;text-align:center;border-bottom:1px solid var(--line)}
.set-rm__table th{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.set-rm__table tbody tr:last-child td{border-bottom:none}
.set-rm__rolehead,.set-rm__role{text-align:left!important}
.set-rm__role{font-weight:700;color:var(--ink);white-space:nowrap}
.set-rm__role input{width:130px;padding:.4rem .55rem;border-radius:8px;background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);font-weight:700;font-size:.85rem}
.set-rm__admin{background:var(--surface-2)}
.set-rm__admin td{color:oklch(0.6 0.15 155)}
.set-rm__admin svg{width:15px;height:15px}
.set-rm__cb{display:inline-grid;place-items:center;cursor:pointer}
.set-rm__cb input{position:absolute;opacity:0;pointer-events:none}
.set-rm__cb span{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface-2);display:grid;place-items:center;transition:.15s}
.set-rm__cb input:checked+span{background:var(--brand);border-color:var(--brand)}
.set-rm__cb input:checked+span::after{content:"";width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px)}
.set-rm .set-x{width:30px;height:30px}

/* audit log viewer */
.set-al{display:flex;flex-direction:column;gap:.7rem}
.set-al__bar{display:flex;align-items:center;gap:.6rem}
.set-al__count{font-size:.82rem;color:var(--ink-3);font-weight:600}
.set-al__bar .spacer{margin-left:auto}
.set-al__scroll{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}
.set-al__table{width:100%;border-collapse:collapse;font-size:.82rem}
.set-al__table th{position:sticky;top:0;background:var(--surface-2);text-align:left;padding:.55rem .7rem;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line)}
.set-al__table td{padding:.5rem .7rem;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.set-al__table tbody tr:last-child td{border-bottom:none}
.set-al__when{white-space:nowrap;color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem}
.set-al__chg{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);margin-top:.15rem}
.set-al__empty{text-align:center;color:var(--ink-3);padding:1.4rem}
.set-al__integ{display:flex;align-items:flex-start;gap:.55rem;padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.82rem;line-height:1.45}
.set-al__integ svg{width:16px;height:16px;flex:none;margin-top:.1rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.set-al__integ b{font-weight:700}
.set-al__integ--ok{background:color-mix(in oklch,var(--ok,#0a7d55) 10%,transparent);color:var(--ok,#0a7d55);border:1px solid color-mix(in oklch,var(--ok,#0a7d55) 28%,transparent)}
.set-al__integ--bad{background:color-mix(in oklch,var(--danger,#c8372f) 10%,transparent);color:var(--danger,#c8372f);border:1px solid color-mix(in oklch,var(--danger,#c8372f) 30%,transparent)}
.set-al__filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.set-al__f{height:34px;padding:0 .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-1);font:inherit;font-size:.82rem}
.set-al__f:focus{outline:none;border-color:var(--brand,#017e84);box-shadow:0 0 0 3px color-mix(in oklch,var(--brand,#017e84) 18%,transparent)}
.set-al__f--q{flex:1 1 220px;min-width:180px}
.set-al__seq{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);white-space:nowrap;cursor:default}
.set-al__row{cursor:pointer;transition:background .12s}
.set-al__row:hover{background:color-mix(in oklch,var(--brand,#017e84) 6%,transparent)}
.set-al__row.is-open{background:color-mix(in oklch,var(--brand,#017e84) 9%,transparent)}
.set-al__row:focus-visible{outline:2px solid var(--brand,#017e84);outline-offset:-2px}
.set-al__caret{display:inline-flex;vertical-align:middle;margin-right:.35rem}
.set-al__caret svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.set-al__row.is-open .set-al__caret svg{transform:rotate(90deg)}
.set-al__drawer>td{padding:0 !important;background:var(--surface-2)}
.set-ald{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;padding:.8rem 1rem .9rem 2rem;border-bottom:1px solid var(--line)}
.set-ald__row{display:contents}
.set-ald__k{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:.15rem;white-space:nowrap}
.set-ald__v{font-size:.82rem;color:var(--ink-1);line-height:1.5;word-break:break-word}
.set-ald__mono{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-2)}
.set-ald__iso{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);margin-left:.4rem}

/* shipping zones editor */
.set-zones{display:flex;flex-direction:column;gap:.8rem}
.set-zone{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1rem;background:var(--surface-2)}
.set-zone__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}
.set-zone__name{flex:1;font-weight:700}
.set-zone__grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:.7rem}
.set-zone .afield{margin-bottom:.6rem}
.set-zone__grid .afield{margin-bottom:0}
@media(max-width:600px){.set-zone__grid{grid-template-columns:1fr}}

@media(max-width:760px){
  .set-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .set-rail{border-right:none;border-bottom:1px solid var(--line);max-height:none}
  .set-nav{display:flex;flex-wrap:wrap;gap:.3rem}
  .set-navgroup{margin:0}
  .set-activity{display:none}
  .set-grid{grid-template-columns:1fr}
  .set-f:not(.set-f--full){grid-column:span 1}
}

/* ---- Notification center ---------------------------------------------- */
.notif-btn{position:relative}
.notif-badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  background:oklch(0.6 0.2 25);color:#fff;font-size:.62rem;font-weight:800;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--surface)}
.notif-panel{position:fixed;inset:0;z-index:500}
.notif-panel__scrim{position:absolute;inset:0;background:transparent}
.notif-panel__card{position:absolute;left:1rem;bottom:4.6rem;width:min(380px,calc(100vw - 2rem));max-height:min(560px,80vh);
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);overflow:hidden;animation:notifIn .16s ease}
@keyframes notifIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.notif-panel__head{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--line)}
.notif-panel__head b{font-family:var(--font-display);font-size:1rem}
.notif-panel__digest{font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--brand-ink);
  background:var(--brand-soft);padding:.15rem .5rem;border-radius:20px}
.notif-panel__x{margin-left:auto;width:30px;height:30px;border-radius:8px;font-size:1.4rem;line-height:1;color:var(--ink-3)}
.notif-panel__x:hover{background:var(--surface-2);color:var(--ink)}
.notif-panel__body{flex:1;overflow-y:auto;padding:.5rem}
.notif-row{display:flex;align-items:flex-start;gap:.75rem;width:100%;text-align:left;padding:.7rem .8rem;border-radius:12px;position:relative}
.notif-row:hover{background:var(--surface-2)}
.notif-row.unread{background:color-mix(in srgb,var(--brand-soft) 55%,transparent)}
.notif-row.unread::before{content:"";position:absolute;left:.28rem;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--brand)}
.notif-row__ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2)}
.notif-row__ic svg{width:17px;height:17px}
.notif-row__ic[data-tone="brand"]{background:var(--brand-soft);color:var(--brand-ink)}
.notif-row__ic[data-tone="good"]{background:oklch(0.94 0.06 150);color:oklch(0.45 0.12 150)}
.notif-row__ic[data-tone="warn"]{background:oklch(0.95 0.08 70);color:oklch(0.5 0.13 70)}
.notif-row__ic[data-tone="prog"]{background:oklch(0.94 0.05 250);color:oklch(0.48 0.13 250)}
[data-theme="dark"] .notif-row__ic[data-tone="good"]{background:oklch(0.32 0.06 150);color:oklch(0.85 0.12 150)}
[data-theme="dark"] .notif-row__ic[data-tone="warn"]{background:oklch(0.34 0.07 70);color:oklch(0.88 0.1 70)}
[data-theme="dark"] .notif-row__ic[data-tone="prog"]{background:oklch(0.32 0.06 250);color:oklch(0.85 0.1 250)}
.notif-row__t{flex:1;min-width:0}
.notif-row__t b{display:block;font-size:.88rem;font-weight:600;line-height:1.25}
.notif-row__t small{display:block;font-size:.78rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-row time{flex:none;font-size:.7rem;color:var(--ink-3);white-space:nowrap;padding-top:.15rem}
.notif-empty{text-align:center;padding:2.4rem 1rem;color:var(--ink-3)}
.notif-empty svg{width:34px;height:34px;margin-bottom:.6rem;opacity:.6}
.notif-empty p{font-weight:600;color:var(--ink-2)}
.notif-empty span{font-size:.82rem}
.notif-panel__foot{display:flex;gap:.5rem;padding:.7rem 1rem;border-top:1px solid var(--line)}
.notif-panel__foot .btn{flex:1}

/* ============================================================================
   YEASTAR TELEPHONY
   ========================================================================== */
/* click-to-call chip */
.yst-callbtn{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;border:0;border-radius:8px;cursor:pointer;
  background:var(--brand-soft);color:var(--brand-ink);vertical-align:middle;transition:.15s}
.yst-callbtn:hover{background:var(--brand);color:var(--on-brand)}
.yst-callbtn svg{width:14px;height:14px}
.yst-callbtn--inline{position:absolute;right:6px;bottom:6px;z-index:2}

/* generic yeastar modal */
.yst-modal{position:fixed;inset:0;z-index:9999;background:rgba(15,23,32,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.yst-modal__box{background:var(--surface);color:var(--ink);border-radius:16px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden}
.yst-modal__head{display:flex;align-items:center;gap:.6rem;padding:14px 18px;border-bottom:1px solid var(--line)}
.yst-modal__head b{flex:1;font-size:1.02rem}
.yst-modal__head [data-x]{border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--ink-3)}
.yst-modal__body{padding:16px 18px}
.yst-field{margin-bottom:.9rem}
.yst-field label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-3);margin-bottom:.3rem}
.yst-field .opt{font-weight:400;opacity:.7}
.yst-field input,.yst-field select,.yst-field textarea{width:100%;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font-size:.9rem}
.yst-field input:focus,.yst-field textarea:focus,.yst-field select:focus{border-color:var(--brand);outline:none}

/* incoming-call screen pop */
.yst-pop{position:fixed;right:22px;bottom:22px;z-index:9998;width:320px;max-width:calc(100vw - 32px);
  background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.35);overflow:hidden;
  animation:ystPopIn .28s cubic-bezier(.2,.9,.3,1.2)}
@keyframes ystPopIn{from{transform:translateY(16px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.yst-pop__head{display:flex;align-items:center;gap:.7rem;padding:14px 16px;background:linear-gradient(135deg,var(--brand),oklch(0.45 0.13 255));color:#fff;position:relative}
.yst-pop__pulse{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18)}
.yst-pop__pulse svg{width:19px;height:19px}
.yst-pop__pulse.ring{animation:ystRing 1s ease-in-out infinite}
@keyframes ystRing{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}50%{box-shadow:0 0 0 8px rgba(255,255,255,0)}}
.yst-pop__who{flex:1;min-width:0}
.yst-pop__who b{display:block;font-size:1rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yst-pop__who .mono{font-size:.8rem;opacity:.9}
.yst-pop__x{position:absolute;top:8px;right:10px;background:none;border:0;color:#fff;font-size:20px;cursor:pointer;opacity:.85;line-height:1}
.yst-pop__tag{display:flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:600;color:var(--ink-3);padding:.6rem 16px 0}
.yst-pop__tag svg{width:14px;height:14px}
.yst-pop__actions{display:flex;gap:.5rem;padding:.7rem 16px .4rem}
.yst-pop__actions .btn{flex:1}
.yst-pop__quick{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.4rem 16px 16px}
.yst-pop__quick button{display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:9px;
  background:var(--surface-2);color:var(--ink-2);font-size:.8rem;font-weight:600;cursor:pointer;transition:.15s}
.yst-pop__quick button:hover{border-color:var(--brand);color:var(--brand-ink)}
.yst-pop__quick button svg{width:14px;height:14px;flex:none}

/* call log */
.cl-dir{display:grid;place-items:center;color:var(--brand-ink);background:var(--brand-soft)}
.cl-dir svg{width:18px;height:18px}
.cl-dir--in{color:oklch(0.44 0.13 150);background:oklch(0.6 0.13 150 / .14)}
.cl-frow{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.cl-frow>span:first-child{color:var(--ink-3)}
.cl-frow>span:last-child{text-align:right;font-weight:600}
.cl-toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem}
.cust-callbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.cl-transcript{margin:0;padding:.8rem 1rem;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;line-height:1.5;color:var(--ink-2);font-style:italic}

/* ============================================================================
   REPORTS & ANALYTICS
   ========================================================================== */
.rpt-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.rpt-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px}
.rpt-seg button{border:0;background:transparent;color:var(--ink-3);font:inherit;font-weight:600;font-size:.82rem;padding:.4rem .8rem;border-radius:var(--radius-pill);cursor:pointer;transition:.15s;white-space:nowrap}
.rpt-seg button:hover{color:var(--ink)}
.rpt-seg button.on{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow-sm)}
.rpt-seg--sm button{padding:.32rem .62rem;font-size:.76rem}

.rpt-loading{padding:3rem 1rem;text-align:center;color:var(--ink-3);font-family:var(--font-mono);font-size:.85rem}
.rpt-empty{max-width:440px;margin:3rem auto;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;gap:.5rem}
.rpt-empty svg{width:40px;height:40px;color:var(--line-2);margin-bottom:.4rem}
.rpt-empty b{font-size:1.05rem;color:var(--ink)}
.rpt-empty p{font-size:.9rem;line-height:1.5;text-wrap:pretty}
.rpt-empty button{margin-top:.6rem}

.rpt-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem;margin-bottom:1.5rem}
@media (max-width:1080px){.rpt-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.rpt-kpis{grid-template-columns:repeat(2,1fr)}}
.rpt-kpis .rep-stat__n{font-size:1.4rem;word-break:break-word}

.rpt-body{display:flex;flex-direction:column;gap:1.3rem}
.rpt-card{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:1.2rem 1.3rem 1.35rem}
.rpt-card__hd{display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.rpt-card__ic{width:34px;height:34px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.rpt-card__ic svg{width:18px;height:18px}
.rpt-card__t{flex:1;min-width:0}
.rpt-card__t h3{font-size:1.05rem;line-height:1.2}
.rpt-card__t small{display:block;color:var(--ink-3);font-size:.8rem;margin-top:.15rem;text-wrap:pretty}
.rpt-card__actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.rpt-csv{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);font:inherit;font-weight:600;font-size:.75rem;padding:.38rem .6rem;border-radius:var(--radius-sm);cursor:pointer;transition:.15s}
.rpt-csv svg{width:13px;height:13px}
.rpt-csv:hover{border-color:var(--line-2);color:var(--ink);background:var(--surface-3)}

/* generic table */
.rpt-table{display:flex;flex-direction:column}
.rpt-row{display:grid;align-items:center;gap:.8rem;padding:.6rem .3rem;border-top:1px solid var(--line);font-size:.88rem}
.rpt-row--head{border-top:0;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding-bottom:.4rem}
.rpt-tech{grid-template-columns:1.7fr .7fr .9fr 1.4fr 1fr 1fr .8fr}
.rpt-cb{grid-template-columns:1.6fr 1.4fr .7fr .9fr .9fr}
.rpt-row .rpt-num{font-family:var(--font-mono);font-weight:600;color:var(--ink);text-align:left}
.rpt-name{display:flex;align-items:center;gap:.55rem;font-weight:600;color:var(--ink);min-width:0}
.rpt-name>span,.rpt-name{overflow:hidden;text-overflow:ellipsis}
.rpt-rank{flex:none;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-3);font-family:var(--font-mono);font-size:.72rem;font-weight:700;font-style:normal}
.rpt-mut{color:var(--ink-3);font-weight:500}
.rpt-mono{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-2)}
.rpt-barcell{min-width:60px}
@media (max-width:820px){
  .rpt-row--head{display:none}
  .rpt-tech,.rpt-cb{grid-template-columns:1fr 1fr;gap:.3rem .8rem}
  .rpt-barcell{display:none}
  .rpt-row{padding:.7rem .3rem}
  .rpt-name{grid-column:1 / -1}
}

/* bar */
.rpt-bar{display:block;height:8px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.rpt-bar i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--brand)}
.rpt-bar i[data-tone="brand"]{background:linear-gradient(90deg,var(--brand),var(--brand-ink))}

/* comeback gauge */
.rpt-gauge{display:flex;align-items:center;gap:1.1rem;padding:1rem 1.1rem;margin-bottom:1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.rpt-gauge__big{font-family:var(--font-display);font-size:2.4rem;line-height:1;font-weight:700}
.rpt-gauge__big[data-tone="good"]{color:oklch(0.5 0.13 150)}
.rpt-gauge__big[data-tone="warn"]{color:var(--accent-strong)}
.rpt-gauge__big[data-tone="danger"]{color:oklch(0.57 0.2 25)}
[data-theme="dark"] .rpt-gauge__big[data-tone="good"]{color:oklch(0.82 0.14 150)}
[data-theme="dark"] .rpt-gauge__big[data-tone="danger"]{color:oklch(0.74 0.18 25)}
.rpt-gauge__meta{font-size:.9rem;color:var(--ink-3);line-height:1.5}
.rpt-gauge__meta b{color:var(--ink);font-weight:700}

.rpt-mini-empty{display:flex;align-items:center;gap:.5rem;padding:1rem 1.1rem;border:1px dashed var(--line-2);border-radius:var(--radius-sm);color:var(--ink-3);font-size:.88rem;background:var(--surface-2)}
.rpt-mini-empty svg{width:18px;height:18px;flex:none;color:oklch(0.6 0.13 150)}

/* service lines */
.rpt-lines{display:flex;flex-direction:column;gap:1rem}
.rpt-line__top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.4rem}
.rpt-line__name{font-weight:600;color:var(--ink);font-size:.92rem}
.rpt-line__val{font-family:var(--font-mono);font-weight:700;color:var(--ink);white-space:nowrap}
.rpt-line__sub{font-size:.76rem;color:var(--ink-3);margin-top:.35rem}

/* ticket value */
.rpt-tv{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:space-between;margin-bottom:1.3rem}
.rpt-tv__big b{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--ink);display:block}
.rpt-tv__big small{display:block;color:var(--ink-3);font-size:.85rem;margin-top:.35rem}
.rpt-tv__grid{display:flex;gap:.7rem;flex-wrap:wrap}
.rpt-tv__s{padding:.7rem .95rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);min-width:96px}
.rpt-tv__s small{display:block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.2rem}
.rpt-tv__s b{font-family:var(--font-mono);font-size:1.05rem;font-weight:700;color:var(--ink)}

.rpt-trend__hd{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.7rem}
.rpt-trend__bars{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;align-items:end}
.rpt-trend__col{display:flex;flex-direction:column;align-items:center;gap:.45rem}
.rpt-trend__track{position:relative;width:100%;height:120px;display:flex;align-items:flex-end;justify-content:center;background:var(--surface-2);border-radius:var(--radius-sm);padding:.3rem}
.rpt-trend__track i{display:block;width:70%;max-width:44px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--brand),var(--brand-ink));min-height:0}
.rpt-trend__val{position:absolute;top:.3rem;left:0;right:0;text-align:center;font-family:var(--font-mono);font-size:.66rem;font-weight:700;color:oklch(0.28 0.06 255)}
.rpt-trend__lbl{font-size:.74rem;color:var(--ink-3);font-weight:600}
