/* PartsDesk 10.0: the shared app frame. Loaded by PartsDesk, Invoicing and Campaigns. */
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:16px 12px;border-right:1px solid var(--line);background:var(--card)}
.sbrand{font:700 26px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.03em;text-decoration:none;color:var(--ink);padding:0 10px 12px;margin-bottom:6px;border-bottom:4px solid;border-image:linear-gradient(90deg,var(--ink) 0,var(--acc) 40%,var(--blue) 100%) 1}
.side nav{display:flex;flex-direction:column;gap:2px}
.grp{font:600 11px 'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:14px 10px 4px}
.it{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;text-decoration:none;color:var(--ink);font:500 14.5px Barlow,sans-serif}
.it:hover{background:var(--chip)}.it.on{background:var(--acc);color:var(--acc-ink);font-weight:600}
.it:focus-visible,.bbar a:focus-visible,.bbar button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.nb{font:600 11px Barlow,sans-serif;min-width:20px;text-align:center;border-radius:10px;padding:1px 7px;background:var(--chip);color:var(--warn)}.it.on .nb{background:var(--acc-ink);color:var(--acc)}
.sfoot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:2px}
.who{display:flex;flex-direction:column;gap:2px;padding:10px;font-size:13px;border-top:1px solid var(--line);margin-top:8px}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:12px 28px;background:var(--bg);border-bottom:1px solid var(--line)}
.tbrand{display:none;font:700 22px 'Barlow Condensed',sans-serif;text-decoration:none;color:var(--ink)}
.gs{position:relative;flex:1;max-width:620px}
.gs input{width:100%;padding:9px 34px 9px 12px}
.gs .kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--mute);border:1px solid var(--line);border-radius:4px;padding:0 5px;pointer-events:none}
.gres{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.25);max-height:70vh;overflow-y:auto;padding:6px;z-index:8}
.gh{font:600 11px 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:8px 10px 3px}
.gr{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:6px;text-decoration:none;color:var(--ink)}.gr:hover,.gr:focus{background:var(--chip);outline:0}
.newwrap{position:relative;margin-left:auto}
.newmenu{position:absolute;right:0;top:calc(100% + 6px);width:250px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.25);padding:6px;z-index:8;display:flex;flex-direction:column}
.newmenu button{all:unset;cursor:pointer;padding:7px 10px;border-radius:6px;font:500 14px Barlow,sans-serif;color:var(--ink)}.newmenu button:hover,.newmenu button:focus-visible{background:var(--chip)}
.mh{font:600 11px 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:8px 10px 2px}.msep{border-top:1px solid var(--line);margin:6px 4px}
.content{padding:22px 28px 60px;min-width:0}
.pt{font:700 30px 'Barlow Condensed',sans-serif;text-transform:uppercase;margin:0 0 14px;line-height:1.05}
.gr .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.bbar,.sheet{display:none}
@media(max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}.side{display:none}
  .top{padding:10px 14px;gap:8px}.tbrand{display:block}.gs .kbd{display:none}
  .content{padding:16px 14px calc(84px + env(safe-area-inset-bottom))}.pt{font-size:26px}
  .bbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:7;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .bbar a,.bbar button{all:unset;cursor:pointer;position:relative;text-align:center;padding:8px 2px 10px;font:600 11.5px Barlow,sans-serif;color:var(--mute)}
  .bbar i{display:block;font-style:normal;font-size:17px;line-height:1.3}.bbar .on{color:var(--accT)}
  .bbar b{position:absolute;top:4px;left:calc(50% + 6px);font-size:10px;background:var(--acc);color:var(--acc-ink);border-radius:8px;padding:0 5px}
  .sheet{display:block;position:fixed;inset:0;z-index:9;background:rgba(0,0,0,.45)}
  .sheetin{position:absolute;left:0;right:0;bottom:0;max-height:80vh;overflow-y:auto;background:var(--card);border-radius:14px 14px 0 0;padding:12px 12px calc(70px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px}
}
@media print{.side,.top,.bbar{display:none!important}.shell{display:block}.content{padding:0}}

/* PartsDesk 10.0: the shared frame (shell.js) */
.shelled .wrap{padding:0!important;max-width:none!important;margin:0}
.side .sbrand{all:unset;cursor:pointer;display:block;font:700 26px 'Barlow Condensed',sans-serif;line-height:1.1;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);padding:0 10px 12px;margin-bottom:6px;border-bottom:4px solid;border-image:linear-gradient(90deg,var(--ink) 0,var(--acc) 40%,var(--blue) 100%) 1;overflow-wrap:anywhere}
.side .sbrand:focus-visible,.tbrand:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.pdshell .it,.pdshell button.it,.sheetin .it{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:7px 10px;border:0;border-radius:6px;background:none;text-decoration:none;text-align:left;color:var(--ink);font:500 14.5px Barlow,sans-serif;cursor:pointer}
.pdshell .it:hover,.sheetin .it:hover{background:var(--chip)}.pdshell .it.on,.sheetin .it.on{background:var(--acc);color:var(--acc-ink);font-weight:600}
button.gtog{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:6px;width:100%;font:600 11px 'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:14px 10px 4px;border-radius:4px}
button.gtog span:first-child{flex:1}button.gtog i{font-style:normal;font-size:10px;transition:transform .15s}button.gtog:hover{color:var(--ink)}button.gtog:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.pgrp.shut .gits{display:none}.pgrp.shut button.gtog i{transform:rotate(-90deg)}
.pgrp .gits{display:flex;flex-direction:column;gap:2px}
.pdshell .tbrand{display:none;align-items:center;text-decoration:none}.pdshell .tbrand img{height:30px;max-width:90px;object-fit:contain;display:block}
.pdshell .tlogo{margin-left:4px}
.pdshell .newmenu[hidden],.gres[hidden],.sheet[hidden]{display:none!important}
.newmenu{max-height:calc(100vh - 90px);overflow-y:auto}
.ptabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:-4px 0 16px}
.ptabs a,.ptabs button{all:unset;cursor:pointer;font:600 14px Barlow,sans-serif;padding:8px 12px;margin-bottom:-1px;border-bottom:3px solid transparent;color:var(--mute)}
.ptabs a:hover,.ptabs button:hover{color:var(--ink)}.ptabs .on{color:var(--ink);border-bottom-color:var(--acc)}.ptabs a:focus-visible,.ptabs button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
@media(max-width:900px){.pdshell .tbrand{display:flex}.pdshell .tlogo{display:none}.newwrap .pri{padding:7px 10px}}
.trialbar{background:var(--chip);border-left:5px solid var(--blue);border-radius:4px;padding:8px 12px;margin:0 0 14px;font-size:13.5px}
