/* Labels module (js/labels.js) — card grid + fill-and-print drawer. App tokens only; the label previews themselves stay black on white (they are the print). */
.lbv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 12px}
.lbv-search{min-width:260px;flex:0 1 360px}
.lbv-chips{display:flex;gap:6px;flex-wrap:wrap}
.lbv-chip{border:1px solid var(--rule);background:var(--paper);color:var(--ink2);border-radius:999px;padding:5px 12px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;display:inline-flex;gap:6px;align-items:center;line-height:1.3}
.lbv-chip span{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500}
.lbv-chip:hover{border-color:var(--indigo);color:var(--indigo)} .lbv-chip.on{background:var(--indigo);border-color:var(--indigo);color:var(--on-accent,#fff)} .lbv-chip.on span{color:color-mix(in srgb,var(--on-accent,#fff) 80%,transparent)}
.lbv-sp{flex:1}
.lbv-banner{margin:0 0 12px}
.lbv-who{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 12px;border:1px solid var(--rule);border-left:4px solid var(--indigo);border-radius:8px;background:var(--paper);font-size:13px;color:var(--ink2)}
.lbv-act .btn{min-height:32px}
.lbv-who{gap:4px} .lbv-link{border:0;background:none;padding:0 2px;min-height:32px;font:inherit;font-weight:600;color:var(--indigo);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.lbv-group{margin:4px 0 20px} .lbv-group[hidden]{display:none}
.lbv-group h3{display:flex;align-items:center;gap:8px;margin:8px 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink2)} .lbv-group h3 i{width:10px;height:10px;border-radius:3px;display:inline-block}
.lbv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:14px}
.lbv-card{background:var(--paper);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--sh);display:flex;flex-direction:column;overflow:hidden;cursor:pointer;position:relative;transition:border-color .12s,box-shadow .12s}
.lbv-card[hidden]{display:none}
.lbv-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--gc,var(--indigo));z-index:1}
.lbv-card:hover{border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-l)} .lbv-card:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
.lbv-prev{height:212px;background:var(--bg2);border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:center;overflow:hidden}
[data-theme=dark] .lbv-prev{background:#2a2a36}
.lbv-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.lbv-title{display:flex;align-items:flex-start;gap:8px} .lbv-title .lbv-size{max-width:52%;overflow:hidden;text-overflow:ellipsis} .lbv-title b{font-size:14px;font-weight:800;letter-spacing:-.005em;flex:1;min-width:0;line-height:1.25}
.lbv-size{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink2);background:var(--grey-l);border-radius:5px;padding:1px 7px;white-space:nowrap;letter-spacing:0;text-transform:none}
.lbv-purpose{margin:0;font-size:12.5px;color:var(--ink2);line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}   /* R10 fix: up to three lines so the purpose reads; the full text is the title */
.lbv-fills{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:11px}
.lbv-k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink3);margin-right:2px}
.lbv-fill{background:var(--indigo-l);color:var(--indigo);border-radius:5px;padding:1px 6px;font-weight:600;white-space:nowrap}
.lbv-fill.m{background:var(--amber-l);color:#8a5200} [data-theme=dark] .lbv-fill.m{color:#f5c27a} [data-theme=dark] .lbv-fill{color:#b9bdfb}
.lbv-fill.sp{box-shadow:inset 0 0 0 1px #f0b86a}                              /* on monday but usually blank: fills when set, else type it */
.lbv-more,.lbv-none{color:var(--ink3);font-size:11px}
.lbv-act{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:6px}
.lbv-tag{margin-left:auto;font-size:11px;font-weight:600;color:var(--ink3);border:1px solid var(--rule);border-radius:5px;padding:1px 6px}
.lbv-tag+.lbv-tag{margin-left:0} .lbv-tag.warn{color:#8a5200;border-color:#fbd9a8;background:var(--amber-l)} [data-theme=dark] .lbv-tag.warn{color:#f5c27a;border-color:#5a3d14}
.lbv-empty{padding:34px;text-align:center;color:var(--ink3)}
/* ── drawer ── */
.lbd-bg{position:fixed;inset:0;background:rgba(20,20,28,.42);z-index:66;display:flex;justify-content:flex-end;animation:lbdFade .12s ease-out}
.lbd{width:min(1200px,97vw);height:100%;background:var(--paper);box-shadow:-20px 0 60px rgba(0,0,0,.25);display:flex;flex-direction:column;animation:lbdIn .16s ease-out}
@keyframes lbdIn{from{transform:translateX(40px);opacity:.6}to{transform:none;opacity:1}} @keyframes lbdFade{from{opacity:0}to{opacity:1}}
.lbd-h{display:flex;align-items:flex-start;gap:12px;padding:14px 18px 12px;border-bottom:1px solid var(--rule)} .lbd-h .t{flex:1;min-width:0}
.lbd-h h3{margin:0 0 3px;font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lbd-x{border:0;background:none;font-size:26px;line-height:1;color:var(--ink3);cursor:pointer;padding:0 4px} .lbd-x:hover{color:var(--ink)}
.lbd-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(380px,1fr) minmax(380px,1.1fr)}
.lbd-form{overflow:auto;padding:14px 18px 0;display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--rule)}
.lbd-sec h4{margin:0 0 8px}
.lbd-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.lbd-f{display:flex;flex-direction:column;gap:4px;min-width:0} .lbd-f.full{grid-column:1/-1} .lbd-f[hidden]{display:none}
.lbd-f>span{font-size:11.5px;font-weight:700;color:var(--ink2);letter-spacing:.02em;display:flex;align-items:center;gap:4px}
.lbd-f input,.lbd-f select,.lbd-f textarea{width:100%;margin-left:0;text-align:left;font-weight:500}
.lbd-f input[type=number]{font-family:var(--mono)}
.lbd-f textarea{resize:vertical;min-height:60px;font-family:var(--mono);font-size:12.5px;line-height:1.45}
.lbd-f small{font-size:11px;color:var(--ink3);font-weight:500} .lbd-f small .cnt{color:var(--ink2);font-family:var(--mono);font-weight:500}
.lbd-f small.lbd-warn{color:#8a5200;font-weight:600} .lbd-f small.lbd-warn[hidden]{display:none} [data-theme=dark] .lbd-f small.lbd-warn{color:#f5c27a}
.lbd-f i{font-style:normal} .lbd-f .req{color:var(--red);font-weight:800} .lbd-f .auto{color:var(--indigo);font-size:11px}
.lbd-f .man{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a5200;background:var(--amber-l);border-radius:4px;padding:0 4px;margin-left:2px} [data-theme=dark] .lbd-f .man{color:#f5c27a}
.lbd-f em{font-style:normal;color:var(--red);font-size:11.5px;font-weight:700} .lbd-f em:empty{display:none}
.lbd-f.bad input,.lbd-f.bad select,.lbd-f.bad textarea{border-color:var(--red);box-shadow:0 0 0 3px var(--red-l)}
.lbd-job{display:flex;flex-direction:column;gap:6px;margin-bottom:4px} .lbd-job input{width:100%}
.lbd-chip{display:inline-flex;align-items:center;gap:8px;background:var(--indigo-l);color:var(--indigo);border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600;align-self:flex-start;max-width:100%} [data-theme=dark] .lbd-chip{color:#c3c6fc}
.lbd-chip button{border:0;background:none;color:inherit;font-size:17px;cursor:pointer;line-height:1;padding:0 0 0 4px}
.lbd-opts{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:10px 12px;background:var(--hover);border:1px solid var(--rule);border-radius:10px}
.lbd-opts label{display:flex;align-items:center;gap:6px} .lbd-opts select,.lbd-opts input{margin-left:0} .lbd-opts input[type=number]{width:70px}
.lbd-count{margin-left:auto}
.lbd-err{background:var(--red-l);border:1px solid #f5bcc6;color:#b01e37;border-radius:9px;padding:8px 12px;font-size:12.5px;font-weight:600} .lbd-err[hidden]{display:none}
[data-theme=dark] .lbd-err{color:#ff9aab;border-color:#6b2633}
.lbd-foot{display:flex;gap:8px;align-items:center;position:sticky;bottom:0;background:var(--paper);padding:12px 0 14px;border-top:1px solid var(--rule);margin-top:auto} .lbd-foot .sp{flex:1}
.lbd-view{display:flex;flex-direction:column;min-height:0;background:var(--bg2)} [data-theme=dark] .lbd-view{background:#23232e}
.lbd-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:20px}
.lbd-pager{display:flex;gap:10px;align-items:center;justify-content:center;padding:0 12px 14px;font-size:12.5px;color:var(--ink2)} .lbd-pager:empty{display:none}
@media (max-width:980px){.lbd-main{grid-template-columns:1fr;overflow:auto} .lbd-form{border-right:0;overflow:visible} .lbd-view{min-height:460px} .lbd-fields{grid-template-columns:1fr}}
/* ── Dawg Walk skin (T7, 2026-09-25): the literal colours above stay for Classic; under data-skin="dawgwalk" they follow the theme variables (css/theme-dawgwalk.css).
   Screen UI only: the label previews (shadow root, labelMount) and every print CSS stay pure black on white. --lbg-general = the "General" group colour (LABEL_GROUP_COLOR in js/labels.js). */
:root[data-skin=dawgwalk]{--lbg-general:var(--ink3);--lb-accent-ink:color-mix(in srgb,var(--indigo) 70%,var(--ink));--lb-amber-ink:color-mix(in srgb,var(--amber) 58%,var(--ink));--lb-red-ink:color-mix(in srgb,var(--red) 72%,var(--ink))}
:root[data-skin=dawgwalk][data-theme=dark] .lbv-fill,:root[data-skin=dawgwalk][data-theme=dark] .lbd-chip{color:var(--lb-accent-ink)}
:root[data-skin=dawgwalk] .lbv-fill.m,:root[data-skin=dawgwalk] .lbv-tag.warn,:root[data-skin=dawgwalk] .lbd-f small.lbd-warn,:root[data-skin=dawgwalk] .lbd-f .man{color:var(--lb-amber-ink)}
:root[data-skin=dawgwalk] .lbv-fill.sp{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--amber) 70%,var(--paper))}
:root[data-skin=dawgwalk] .lbv-tag.warn{border-color:color-mix(in srgb,var(--amber) 45%,var(--paper))}
:root[data-skin=dawgwalk] .lbd-err{color:var(--lb-red-ink);border-color:color-mix(in srgb,var(--red) 40%,var(--paper))}
:root[data-skin=dawgwalk] .lbd-bg{background:color-mix(in srgb,var(--topbar) 45%,transparent)}
:root[data-skin=dawgwalk][data-theme=dark] .lbv-prev{background:color-mix(in srgb,var(--ink) 8%,var(--paper))}
:root[data-skin=dawgwalk][data-theme=dark] .lbd-view{background:color-mix(in srgb,var(--ink) 4%,var(--bg2))}
/* round 6 (Q18, Q19): serial revision approvals + serial tracking (js/serials.js — Eng # drawer box, Engineering page line) */
.srv-box{margin:10px 0 4px;font-size:12.5px;color:var(--ink2)} .srv-box .faint{color:var(--ink3)}
.srv-badge{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:var(--amber);color:var(--on-accent,#fff);font-size:11px;font-weight:700;vertical-align:middle}
.srv-trk{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0}
.srv-wos{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}
.srv-wo{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--rule);border-radius:999px;padding:1px 4px 1px 9px;background:var(--paper);font-size:11.5px}
.srv-wo.off{color:var(--ink3);border-style:dashed}
.srv-req{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;border:1px solid var(--rule);border-left:4px solid var(--ink3);border-radius:8px;padding:6px 9px;margin:5px 0;background:var(--paper)}
.srv-req.pending{border-left-color:var(--amber)} .srv-req.questioned{border-left-color:var(--red)} .srv-req.approved{border-left-color:var(--green)} .srv-req.kept{border-left-color:var(--indigo)}
.srv-st{font-weight:700;color:var(--ink)} .srv-note{margin-top:2px;color:var(--ink)} .srv-acts{display:flex;gap:4px;flex-wrap:wrap}
.srv-pendb a{font-weight:600}

/* v1 tablet: 44 px touch targets on the label grid and the fill-and-print drawer */
@media (max-width:1100px),(pointer:coarse){
  .lbv-search,.lbv-chip,.lbv-act .btn,.lbv-link,.lbd-x,.lbd-f input,.lbd-f select,.lbd-job input,.lbd-opts input,.lbd-opts select,.lbd-foot .btn,.lbd-pager .btn,.lbv-banner .btn{min-height:44px}
  .lbd-x{min-width:44px} .lbv-chip{padding:0 14px} .lbv-act .btn{padding:0 16px}
  .lbd-chip button{min-width:32px;min-height:32px}
}
