/* 条形码生成器：仅作用于 .bc-tool，不影响其他页面。 */
.bc-tool{padding:26px 0 56px}
.bc-tool .back-link{font-size:13px;color:var(--muted)}
.bc-tool .back-link:hover{color:var(--ink)}
.bc-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:14px 0 16px}
.bc-title{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.bc-title h1{font-size:30px;letter-spacing:-1px;margin:5px 0 0;line-height:1.3}
.bc-title p{font-size:14px;color:var(--muted);margin:0}
.bc-tool .button.secondary{background:#fff;border:1px solid var(--border);color:var(--ink);padding:7px 13px;font-size:13px;border-radius:6px;cursor:pointer;font-family:inherit;font-weight:600}
.bc-tool .button.secondary:hover{border-color:#b9c6d1;background:#f8fafb}
.bc-tool .button:disabled{opacity:.55;cursor:default}
.bc-tool .button.primary{border:0;cursor:pointer;font-family:inherit}
.bc-tool [hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.bc-notice{border:1px solid #f3d6a8;background:#fff8ec;color:#5d4520;border-radius:10px;padding:11px 14px;font-size:13px;line-height:1.7;margin-bottom:16px}
.bc-notice strong{color:#875217}

.bc-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.bc-panel{border:1px solid var(--border);border-radius:10px;background:#fff;padding:16px 18px;min-width:0}
.bc-settings h2,.bc-preview h2{font-size:16px;margin:0 0 10px;letter-spacing:-.2px}
.bc-h2-gap{margin-top:20px!important;padding-top:16px;border-top:1px solid #f0f3f5}
.bc-note{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.7}
.bc-warn{font-size:12px;color:#875217;margin:8px 0 0;line-height:1.6}

/* 码制选择 */
.bc-syms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.bc-syms button{border:1px solid var(--border);background:#fff;border-radius:7px;padding:7px 4px;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--ink);min-width:0}
.bc-syms button b{font-size:13px}
.bc-syms button small{font-size:11px;color:#8a98a5;white-space:nowrap}
.bc-syms button:hover{border-color:#b9c6d1}
.bc-syms button[aria-checked="true"]{border-color:var(--accent);background:#fff6e8;box-shadow:inset 0 0 0 1px var(--accent)}
.bc-syms button[aria-checked="true"] small{color:#875217}

/* 输入 */
.bc-sub-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid #f0f3f5}
.bc-sub-head h2{margin:0!important}
.bc-seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;flex-shrink:0}
.bc-seg button{border:0;background:#fff;font:inherit;font-size:12px;padding:5px 9px;color:var(--muted);cursor:pointer}
.bc-seg button+button{border-left:1px solid var(--border)}
.bc-seg button[aria-selected="true"],.bc-seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
#bc-in-single,#bc-in-batch,#bc-in-seq{margin-top:10px}
.bc-input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:6px;padding:7px 9px;font:inherit;font-size:14px;color:var(--ink);background:#fff;min-width:0;height:36px;margin:0}
textarea.bc-input{height:auto;min-height:130px;resize:vertical;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
#in-single{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.3px}
.bc-input:focus{outline:2px solid rgba(246,154,18,.35);border-color:var(--accent)}
.bc-input::placeholder{color:#9aa7b2}
select.bc-input{-webkit-appearance:none;appearance:none;padding-right:26px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23617283' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 9px center}
.bc-link{border:0;background:none;padding:0;font:inherit;font-size:12px;color:#be561f;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
#bc-sample{margin-top:6px}
.bc-field{display:flex;flex-direction:column;gap:5px;margin-top:12px;min-width:0}
.bc-field>span:first-child{font-size:13px;font-weight:600;color:var(--ink)}
.bc-field small{font-weight:400;color:#8a98a5;font-size:11px}
.bc-row2{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:8px}
.bc-row2 .bc-field{margin-top:0}
.bc-range{display:flex;align-items:center;gap:10px}
.bc-range input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}
.bc-unit-in{position:relative;display:inline-block;width:96px;flex-shrink:0}
.bc-unit-in input{padding-right:34px}
.bc-unit-in i{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;color:#8a98a5;pointer-events:none}
.bc-row-inline{display:flex;align-items:center;gap:12px}
.bc-check{display:flex;align-items:center;gap:7px;font-size:13px;margin-top:14px;cursor:pointer}
.bc-check input{accent-color:var(--accent);width:16px;height:16px;margin:0}
.bc-size-out{margin:14px 0 0;padding:9px 11px;background:var(--blue);border-radius:7px;font-size:13px;color:var(--muted)}
.bc-size-out strong{color:var(--ink);font-variant-numeric:tabular-nums}

.bc-convert{margin-top:14px;border:1px dashed #c9d4dd;border-radius:8px;padding:9px 11px;background:#fbfcfd}
.bc-convert summary{font-size:13px;font-weight:600;cursor:pointer;color:var(--ink)}
.bc-convert .bc-row2{margin-top:8px}
.bc-convert #cv-out{min-height:1em}
.bc-convert #cv-out strong{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}
.bc-convert .button{margin-top:8px}

/* 预览 */
.bc-preview{border:1px solid var(--border);border-radius:10px;background:#fff;padding:16px 18px;min-width:0}
.bc-prev-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bc-prev-head>div:first-child{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bc-count{font-size:13px;color:var(--muted)}
.bc-export{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.bc-paper{margin:0;width:200px}
.bc-custom{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--muted)}
.bc-custom input{width:62px}
.bc-custom i{font-style:normal;font-size:12px}
.bc-export .button.primary{padding:8px 16px;font-size:14px;border-radius:6px}
.bc-paper-hint{margin:6px 0 0;text-align:right}
.bc-paper-hint.bad{color:#875217}
.bc-errors{margin-top:12px;border:1px solid #f1d2ae;background:#fdf6ee;border-radius:8px;padding:8px 12px;font-size:13px;color:#875217;line-height:1.7}
.bc-errors ul{margin:0;padding-left:18px}
.bc-errors p{margin:0}
.bc-errors .bc-link{margin-left:6px}
.bc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:14px}
.bc-empty{grid-column:1/-1;border:1px dashed #d4dde4;border-radius:10px;padding:48px 16px;text-align:center;color:#8a98a5;font-size:14px}
.bc-card{margin:0;border:1px solid var(--border);border-radius:9px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.bc-svg{padding:14px;display:flex;align-items:center;justify-content:center;flex:1;background:#fff;min-height:120px}
.bc-svg svg{display:block;max-width:100%;height:auto;max-height:180px}
.bc-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px 6px 10px;background:#f8fafb;border-top:1px solid #eef2f5;font-size:12px}
.bc-val{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bc-val em{font-style:normal;font-family:inherit;margin-left:5px;padding:1px 5px;border-radius:4px;background:#e7f2ed;color:#1f6b4a;font-size:11px}
.bc-dl{display:flex;gap:4px;flex-shrink:0}
.bc-dl button{border:1px solid var(--border);background:#fff;border-radius:5px;font:inherit;font-size:11px;font-weight:600;padding:3px 7px;cursor:pointer;color:var(--ink)}
.bc-dl button:hover{border-color:var(--accent);color:#be561f}
.bc-print-tip{margin-top:14px;padding-top:10px;border-top:1px solid #f0f3f5}
.bc-tool .privacy-note{margin-top:18px}

/* ITF-14 卡片占满整行，否则太小 */
.bc-grid:has(svg[aria-label^="ITF-14"]){grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

@media (max-width:950px){
  .bc-layout{grid-template-columns:1fr}
}
@media (max-width:680px){
  .bc-heading{flex-direction:column;align-items:flex-start;gap:6px}
  .bc-heading .badge{display:none}
  .bc-title h1{font-size:25px}
  .bc-panel,.bc-preview{padding:14px}
  .bc-export{justify-content:flex-start;width:100%}
  .bc-paper{flex:1;width:auto;min-width:150px}
  .bc-paper-hint{text-align:left}
  .bc-grid{grid-template-columns:1fr!important}
  .bc-seg button{padding:5px 7px}
}
