/* Powerlab Works dealer portal – same palette as powerlab.works (black + orange) */
:root{
  --bg:#0a0a0a;--panel:#141414;--panel2:#1b1b1b;--line:#2b2b2b;--tx:#f2f2f2;--mut:#9b9b9b;
  --ac:#FF6600;--ac2:#E55A00;--ok:#35c27a;--warn:#f0b429;--bad:#ef4444;
}
*{box-sizing:border-box}
html{font-size:clamp(15px,.3vw + 13.6px,19px)}          /* scales with the screen */
body{margin:0;background:var(--bg);color:var(--tx);font:1rem/1.5 -apple-system,Segoe UI,Roboto,Arial,sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--ac);text-decoration:none}a:hover{color:#ff8533}

/* header */
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem 3vw;
  border-bottom:1px solid var(--line);background:#0d0d0d;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:.8rem;color:var(--tx)}
.brand .logo{height:2.6rem;width:auto;display:block}
.brand .wordmark{font-weight:800;letter-spacing:.12em}.brand .wordmark b{color:var(--ac)}
.brand small{color:var(--mut);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;border-left:1px solid var(--line);padding-left:.8rem}
nav{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center}
nav a{color:var(--mut);padding:.45rem .85rem;border-radius:.45rem;white-space:nowrap}
nav a:hover{color:var(--tx);background:var(--panel)}
nav a.on{color:#fff;background:var(--ac)}

/* layout */
main{width:min(1760px,94vw);margin:1.6rem auto;min-height:70vh}
footer{text-align:center;color:var(--mut);font-size:.8rem;padding:1.8rem}
h1{font-size:1.6rem;margin:0 0 1.1rem;letter-spacing:.01em}
h2{font-size:1.1rem;margin:0 0 .8rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:.7rem;padding:1.2rem;margin-bottom:1.1rem}
.grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin-bottom:1.1rem}
.grid .card{margin:0}
.stat b{display:block;font-size:1.9rem;line-height:1.2}.stat span{color:var(--mut);font-size:.85rem}
.stat.hot b{color:var(--ac)}
.row{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.mut{color:var(--mut)}.right{text-align:right}.pos{color:var(--ok)}.neg{color:var(--bad)}.nw{white-space:nowrap}
hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}

/* forms */
label{display:block;font-size:.72rem;color:var(--mut);margin:.8rem 0 .3rem;text-transform:uppercase;letter-spacing:.06em}
input,select,textarea{width:100%;background:#0c0c0c;color:var(--tx);border:1px solid var(--line);border-radius:.45rem;padding:.6rem .75rem;font:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 2px rgba(255,102,0,.18)}
textarea{min-height:5rem}
input[type=file]{padding:.45rem}
input[type=checkbox],input[type=radio]{accent-color:var(--ac)}
button,.btn{background:var(--ac);color:#fff;border:0;border-radius:.45rem;padding:.6rem 1.1rem;font:inherit;font-weight:700;cursor:pointer;display:inline-block;white-space:nowrap}
button:hover,.btn:hover{background:var(--ac2);color:#fff}
button.ghost,.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--tx)}
button.ghost:hover,.btn.ghost:hover{border-color:var(--ac);color:#fff;background:transparent}
button.danger{background:transparent;border:1px solid #5a2222;color:#ff7b72}
button.danger:hover{background:#3a1616}
button.sm{padding:.3rem .65rem;font-size:.82rem}
button:disabled{opacity:.5;cursor:default}
.chk{display:flex;gap:.7rem;align-items:center;padding:.45rem 0;text-transform:none!important;font-size:1rem!important;color:var(--tx)!important;letter-spacing:0!important;margin:0!important}
.chk input{width:auto}.chk span{flex:1}

/* toolbars (search + filters) */
.bar{display:flex;gap:.7rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}
.bar>div{flex:0 1 9.5rem;min-width:7.5rem}.bar>div.grow{flex:2 1 14rem}
.bar>div.acts{flex:0 0 auto;min-width:0;margin-left:auto}
.bar label{margin-top:0}
.head{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}
.head .acts{flex:0 1 auto}
.count{color:var(--mut);font-size:.85rem;margin:.2rem 0 .6rem}

/* tables */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.65rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mut);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
tbody tr:hover td{background:#171717}
td.num,th.num{text-align:right;white-space:nowrap}
tfoot td{font-weight:700;border-top:2px solid var(--line)}
.acts{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end;align-items:center}
@media(min-width:1100px){td .acts{flex-wrap:nowrap}}
.tag{padding:.12rem .6rem;border-radius:99px;font-size:.75rem;border:1px solid;white-space:nowrap}
.tag.processing{color:var(--warn)}.tag.done{color:var(--ok)}.tag.rejected,.tag.off{color:var(--bad)}
.tag.charge,.tag.adjustment{color:var(--warn)}.tag.payment,.tag.refund{color:var(--ok)}

/* messages, tabs, login */
.msg{padding:.65rem .9rem;border-radius:.45rem;margin:.8rem 0}
.msg.err{background:#2a1212;color:#ff9b95}.msg.ok{background:#10261a;color:#7be0a8}.msg.warn{background:#2a2010;color:#f5cf70}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1.1rem;border-bottom:1px solid var(--line)}
.tabs a{padding:.55rem 1rem;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:#fff;border-color:var(--ac)}
.login{max-width:26rem;margin:6vh auto}
.login .biglogo{display:block;height:auto;max-height:4.2rem;max-width:100%;width:auto;object-fit:contain;margin:0 auto 1rem}
.login h1{text-align:center;font-size:1.3rem}
#toast{position:fixed;right:1rem;bottom:1rem;max-width:90vw;z-index:50;display:none;padding:.8rem 1.1rem;border-radius:.5rem;background:#1d1d1d;border:1px solid var(--ac);box-shadow:0 6px 30px #000}
dialog{background:var(--panel);color:var(--tx);border:1px solid var(--line);border-radius:.8rem;padding:1.3rem;width:min(28rem,92vw)}
dialog::backdrop{background:rgba(0,0,0,.7)}
dialog h2{margin-top:0}

@media(max-width:700px){
  main{width:94vw}.brand small{display:none}.brand .logo{height:2.1rem}
  th,td{padding:.5rem .45rem}
}
@media print{
  body{background:#fff;color:#000}.top,footer,nav,.noprint,button,#toast{display:none!important}
  .card{border:1px solid #bbb;background:#fff}th,td{border-color:#ccc;color:#000}.mut,th{color:#444}
  .stat b{color:#000}.tag{border-color:#999;color:#000!important}
}

/* services: multi-select toggle list, service order rows */
.svcbox{margin:.2rem 0 .9rem}
.svcbox>input{margin-bottom:.6rem}
.svcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.55rem}
.svc{position:relative;display:flex;align-items:center;gap:.7rem;background:var(--panel2);border:1px solid var(--line);border-radius:.6rem;padding:.8rem .9rem;cursor:pointer;margin:0;transition:border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}
.svc:hover{border-color:#444}
.svc.on{border-color:var(--ac);background:#1d150f}
.svc .nm{flex:1;font-weight:600;font-size:1rem;text-transform:none;letter-spacing:0;color:var(--tx);overflow-wrap:anywhere}
.svc b{color:var(--ac);font-size:.9rem;white-space:nowrap;text-transform:none;letter-spacing:0}
.svc input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.svc .sw{flex:none;width:2.6rem;height:1.45rem;border-radius:99px;background:#2b2b2b;border:1px solid #3a3a3a;position:relative;transition:background .15s}
.svc .sw::after{content:"";position:absolute;top:2px;left:2px;width:1.1rem;height:1.1rem;border-radius:50%;background:#9b9b9b;transition:transform .15s,background .15s}
.svc.on .sw{background:var(--ac);border-color:var(--ac)}
.svc.on .sw::after{transform:translateX(1.15rem);background:#fff}
.svc input:focus-visible+.nm,.svc input:focus-visible~.sw{outline:2px solid var(--ac);outline-offset:2px}
.svcbox .head{margin-top:.7rem}
.svcrow,.svchead{display:grid;grid-template-columns:2rem minmax(9rem,1fr) 6rem 11rem 6rem auto;gap:.5rem;align-items:center;margin-bottom:.45rem}
.svchead{color:var(--mut);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.svcrow .sc2{gap:.4rem}.svcrow .sc2>input[type=number]{flex:1;min-width:0}.svcrow .sc2>input:disabled{opacity:.35}
.ick{display:inline-flex;align-items:center;gap:.3rem;margin:0;padding:.35rem .5rem;border:1px solid var(--line);border-radius:.45rem;background:var(--panel2);font-size:.72rem;text-transform:none;letter-spacing:0;color:var(--mut);cursor:pointer;white-space:nowrap}
.ick.on{border-color:var(--ok);color:var(--ok);background:#0f1f17}
.svcrow .c{display:flex;align-items:center;min-width:0}.svcrow .c>input,.svcrow .c>select{width:100%}
@media(max-width:1000px){.svchead{display:none}
  .svcrow{display:flex;flex-wrap:wrap;gap:.5rem;padding:.7rem;border:1px solid var(--line);border-radius:.6rem;background:var(--panel2)}
  .svcrow>input[data-sn]{flex:1 1 60%}.svcrow .c{flex:1 1 7rem;flex-direction:column;align-items:stretch}
  .svcrow .c::before{content:attr(data-cap);color:var(--mut);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}}
/* price check */
.simchips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .8rem}
.sc{display:inline-flex;align-items:center;margin:0;padding:.35rem .7rem;border:1px solid var(--line);border-radius:99px;background:var(--panel2);cursor:pointer;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--tx)}
.sc input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.sc.on{border-color:var(--ac);background:#1d150f}
.simres{margin:0;font-size:1rem}.simres .tt{color:var(--ac);font-size:1.15rem}.simres .inc{color:var(--ok);font-weight:600}
.svc b.inc{color:var(--ok);font-weight:600;font-size:.8rem}

/* sortable headers, unread badge, message thread */
th.sortable{cursor:pointer;user-select:none}th.sortable:hover{color:var(--tx)}
.badge{display:inline-block;min-width:1.35rem;padding:0 .4rem;border-radius:99px;background:var(--ac);color:#fff;font-size:.75rem;font-weight:700;text-align:center;line-height:1.35rem}
.thread{max-height:55vh;overflow:auto;display:flex;flex-direction:column;gap:.6rem;margin-bottom:.8rem}
.bub{max-width:min(40rem,88%);padding:.6rem .85rem;border-radius:.7rem;background:var(--panel2);border:1px solid var(--line);overflow-wrap:anywhere}
.bub.me{align-self:flex-end;background:#2a1a0e;border-color:#5a3412}.bub .mut{font-size:.75rem;margin-bottom:.15rem}
.btn.wa{background:#25D366;color:#06210f}.btn.wa:hover{background:#1fb457;color:#06210f}

.login.wide-login{max-width:46rem}.center{text-align:center}
dialog{max-height:92vh;overflow:auto}
.legal{max-width:52rem;margin:0 auto}
.legal h1{margin-bottom:.2rem}
.legal h2{font-size:1.05rem;margin:1.6rem 0 .5rem}
.legal p,.legal li{line-height:1.6}
.legal ul{padding-left:1.2rem}
.legal li{margin:.35rem 0}
footer a{color:inherit;text-decoration:underline}

button.busy{opacity:.55;cursor:progress}

.status{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.25rem .6rem;border-radius:2rem;border:1px solid var(--line);cursor:default;margin-left:auto;margin-right:.5rem}
.status:empty{display:none}
.status::before{content:"";display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.4rem;background:currentColor}
.status.on{color:#4ade80}.status.off{color:#f59e0b}
.statusbar{text-align:center;font-size:.85rem;padding:.45rem 3vw}
.statusbar.off{background:#3a2a0a;color:#fbbf24}.statusbar.on{background:#10261a;color:#86efac}
@media print{.status,.statusbar{display:none!important}}
.statusrow{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.statusrow button{min-width:9rem;font-size:1.05rem;padding:.8rem 1.4rem}
.statusbar a{color:inherit;text-decoration:underline;font-weight:700}
.pw{position:relative;display:block}.pw input{padding-right:4.6rem}
.pwt{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--mut);font-size:.8rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;width:auto;min-width:0}
.pwt:hover{color:var(--tx);background:transparent}
.pw{position:relative}.pw input{padding-right:4.6rem}
.pwt{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--mut);font-size:.8rem;padding:.35rem .6rem;cursor:pointer;width:auto;text-transform:uppercase;letter-spacing:.05em}
.pwt:hover{color:var(--tx);background:transparent}
.pwhint{font-size:.85rem;min-height:1.1rem;margin:.25rem 0 .4rem}

.rule{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .7rem;margin-bottom:.5rem;border:1px solid var(--line);border-radius:.6rem;background:var(--panel2)}
.rule .w{color:var(--mut);font-size:.9rem}.rule select{width:auto;min-width:11rem}.rule input[data-rp]{width:6rem}.rule .rn{font-size:.85rem}
.pick{position:relative}.pick summary{cursor:pointer;list-style:none;padding:.5rem .7rem;border:1px solid var(--line);border-radius:.45rem;background:var(--bg);min-width:12rem;max-width:22rem}
.pick summary::after{content:" ▾";color:var(--mut)}.pick[open] summary{border-color:var(--ac)}
.pick .pl{position:absolute;z-index:5;top:calc(100% + .25rem);left:0;min-width:15rem;max-height:18rem;overflow:auto;padding:.4rem;border:1px solid var(--line);border-radius:.5rem;background:var(--panel);box-shadow:0 8px 24px #0008}
.pick .pl label{display:flex;align-items:center;gap:.5rem;margin:0;padding:.35rem .4rem;border-radius:.35rem;cursor:pointer;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--tx)}.pick .pl label:hover{background:var(--panel2)}
.pick .pl input{width:auto;flex:none;margin:0}.pick .pl label span{flex:1}
.rule select[data-rt]{width:auto;max-width:17rem}.rule .rn{min-width:6rem}
