:root{--tool-accent:#ef6b5b;--tool-soft:#fff2ee;--tool-dark:#17283a}
body[data-theme="ocean"]{--tool-accent:#147d92;--tool-soft:#e9f8fa;--tool-dark:#153749}
body[data-theme="violet"]{--tool-accent:#7454c7;--tool-soft:#f1edff;--tool-dark:#292044}
body[data-theme="gold"]{--tool-accent:#b77516;--tool-soft:#fff6df;--tool-dark:#3d2b12}
body[data-theme="green"]{--tool-accent:#278262;--tool-soft:#eaf8f2;--tool-dark:#15392e}
body[data-theme="blue"]{--tool-accent:#3768c8;--tool-soft:#edf3ff;--tool-dark:#172b50}
.batch-hero{background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--tool-accent) 18%,transparent),transparent 35%),linear-gradient(180deg,var(--tool-soft),#fff);padding:clamp(2.5rem,7vw,5rem) 0 2.5rem}
.batch-hero .breadcrumb{font-size:.82rem;margin-bottom:1.5rem;color:var(--ink-soft)}
.batch-hero .breadcrumb a{color:inherit;text-decoration:underline}
.batch-hero h1{max-width:820px;font-size:clamp(2.25rem,6vw,4.5rem);line-height:1.02;color:var(--tool-dark)}
.batch-hero .lead{max-width:760px;font-size:clamp(1rem,2.5vw,1.2rem);color:var(--ink-soft);margin-top:1rem}
.privacy-pill{display:inline-flex;gap:.45rem;align-items:center;margin-top:1.2rem;padding:.55rem .8rem;border-radius:999px;background:#fff;border:1px solid color-mix(in srgb,var(--tool-accent) 28%,#ddd);font-size:.82rem;font-weight:700;color:var(--tool-dark)}
.batch-shell{padding:clamp(1.5rem,5vw,4rem) 0;background:#f8fafc}
.batch-tool{background:#fff;border:1px solid #dfe6ec;border-radius:24px;padding:clamp(1.1rem,4vw,2.2rem);box-shadow:0 24px 70px rgba(20,43,67,.09)}
.batch-tool h2{font-size:clamp(1.35rem,4vw,2rem);margin-bottom:.4rem;color:var(--tool-dark)}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.3rem 0}
.tool-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.batch-field{display:grid;gap:.45rem;font-size:.86rem;font-weight:700;color:var(--tool-dark)}
.batch-field input,.batch-field select,.batch-field textarea{width:100%;border:1px solid #cfd9e2;border-radius:12px;padding:.8rem .9rem;background:#fff;font:inherit;color:#17283a}
.batch-field textarea{min-height:120px;resize:vertical}
.batch-field input:focus,.batch-field select:focus,.batch-field textarea:focus{outline:3px solid color-mix(in srgb,var(--tool-accent) 22%,transparent);border-color:var(--tool-accent)}
.drop-zone{display:grid;place-items:center;text-align:center;min-height:130px;padding:1.4rem;border:2px dashed color-mix(in srgb,var(--tool-accent) 45%,#cad4dc);border-radius:18px;background:var(--tool-soft);cursor:pointer;color:var(--tool-dark);font-weight:750}
.drop-zone input{display:none}.drop-zone small{display:block;margin-top:.35rem;color:var(--ink-soft);font-weight:500}
.batch-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.2rem}
.batch-btn{border:0;border-radius:12px;padding:.82rem 1.15rem;font:inherit;font-weight:800;cursor:pointer;background:var(--tool-accent);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--tool-accent) 25%,transparent)}
.batch-btn.secondary{background:#fff;color:var(--tool-dark);border:1px solid #ccd7df;box-shadow:none}
.batch-btn:hover{filter:brightness(.96);transform:translateY(-1px)}
.batch-status{margin-top:1rem;padding:.8rem 1rem;border-radius:12px;background:var(--tool-soft);color:var(--tool-dark);font-size:.88rem}.batch-status.is-error{background:#fff0f0;color:#9b2424}
.batch-result{margin-top:1.2rem;border-top:1px solid #dfe6ec;padding-top:1.2rem}.batch-result p{color:var(--ink-soft)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.metric-grid>div{padding:1rem;border:1px solid #dfe6ec;border-radius:14px;background:#fbfdff}.metric-grid span{display:block;font-size:.75rem;color:var(--ink-soft)}.metric-grid strong{display:block;margin-top:.25rem;font-size:1.15rem;color:var(--tool-dark)}
.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:680px}.table-wrap th,.table-wrap td{padding:.65rem;border-bottom:1px solid #e2e8ee;text-align:right;font-size:.82rem}.table-wrap th:first-child,.table-wrap td:first-child{text-align:left}
.signature-canvas,.preview-canvas,.barcode-canvas{display:block;width:100%;max-width:820px;border:1px solid #ccd7df;border-radius:14px;background:repeating-conic-gradient(#f4f4f4 0 25%,#fff 0 50%) 50%/20px 20px;touch-action:none}
.signature-canvas{height:180px;background:#fff}.code-output{display:grid;place-items:center;min-height:320px;padding:1rem;margin-top:1rem;border:1px solid #dfe6ec;border-radius:16px;background:#fff}.code-output canvas{max-width:100%;height:auto}
.timer-display{font:800 clamp(2.5rem,10vw,6rem)/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--tool-dark);letter-spacing:-.06em;margin:1rem 0}.timer-list{display:grid;gap:.6rem;padding:0;list-style:none}.timer-list li{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;padding:.8rem 1rem;border:1px solid #dfe6ec;border-radius:12px}.timer-list button{border:0;background:#fff0ed;color:#9d3329;border-radius:8px;padding:.4rem .65rem;cursor:pointer}
.seo-section{padding:clamp(2.6rem,6vw,5rem) 0}.seo-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,5vw,4rem)}.seo-section h2{font-size:clamp(1.7rem,4vw,2.7rem);color:var(--tool-dark)}.seo-section h3{font-size:1.1rem;margin-top:1.3rem;color:var(--tool-dark)}.seo-section p,.seo-section li{color:var(--ink-soft)}.seo-card{padding:1.4rem;border-radius:20px;background:var(--tool-soft);border:1px solid color-mix(in srgb,var(--tool-accent) 20%,#e2e8ee)}
.batch-faq{display:grid;gap:.7rem;margin-top:1.2rem}.batch-faq details{border:1px solid #dfe6ec;border-radius:14px;padding:1rem;background:#fff}.batch-faq summary{font-weight:800;cursor:pointer;color:var(--tool-dark)}.batch-faq p{margin-top:.6rem;color:var(--ink-soft)}
.service-note{text-align:center;padding:1.3rem;border-top:1px solid #e2e8ee;color:var(--ink-soft);font-size:.82rem}.service-note a{color:var(--tool-accent);font-weight:750}
@media(max-width:800px){.tool-grid,.tool-grid.three,.seo-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.metric-grid{grid-template-columns:1fr}.batch-actions>*{width:100%}.batch-tool{border-radius:18px}.timer-list li{grid-template-columns:1fr auto}.timer-list button{grid-column:1/-1}}
