:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f4f6;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}#root{min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.hero{color:#fff;background:linear-gradient(135deg,#0f172a,#1d4ed8 70%,#2563eb);border-radius:20px;justify-content:space-between;gap:24px;margin-bottom:28px;padding:28px;display:flex;box-shadow:0 20px 40px #0f172a2e}.eyebrow{letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin:0 0 8px;font-size:.85rem}.hero h1{margin:0 0 10px;font-size:clamp(1.8rem,4vw,2.6rem)}.subtitle{color:#ffffffe0;max-width:640px;margin:0}.hero__badges{flex-direction:column;align-self:flex-start;gap:10px;display:flex}.hero__badges span{white-space:nowrap;background:#ffffff14;border:1px solid #ffffff40;border-radius:999px;padding:8px 12px;font-size:.85rem}.layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px;box-shadow:0 8px 24px #0f172a0a}.panel--full{grid-column:1/-1}.panel__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.panel__header h2{margin:0;font-size:1.15rem}.panel__header span{color:#6b7280;font-size:.92rem}.upload-zone{text-align:center;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:140px;padding:20px;transition:border-color .2s,background .2s;display:flex}.upload-zone:hover,.upload-zone--dragging{background:#eff6ff;border-color:#2563eb}.upload-zone input{display:none}.upload-zone strong{font-size:1rem}.upload-zone span,.upload-zone em{color:#64748b;font-size:.9rem}.upload-zone__hint{color:#94a3b8!important;font-size:.82rem!important}.manual-form,.mapping,.compliance-note{margin-top:20px}.manual-form h3,.mapping h3,.compliance-note h3{margin:0 0 12px;font-size:.98rem}.manual-form__grid,.mapping__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.manual-form label,.mapping label{color:#475569;flex-direction:column;gap:6px;font-size:.88rem;display:flex}.manual-form input,.manual-form select,.mapping select{background:#fff;border:1px solid #d1d5db;border-radius:10px;width:100%;padding:10px 12px}.actions{gap:10px;display:flex}.primary-button,.secondary-button,.ghost-button,.link-button,.format-card{cursor:pointer;border:none;transition:transform .15s,box-shadow .15s,background .15s}.primary-button,.secondary-button,.ghost-button{border-radius:10px;padding:10px 16px}.primary-button{color:#fff;background:#2563eb;box-shadow:0 10px 20px #2563eb40}.primary-button:hover:not(:disabled),.secondary-button:hover,.ghost-button:hover:not(:disabled){transform:translateY(-1px)}.primary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button{color:#3730a3;background:#eef2ff;margin-top:12px}.ghost-button{color:#374151;background:#f3f4f6}.link-button{color:#2563eb;background:0 0;padding:0;text-decoration:underline}.format-grid{gap:12px;display:grid}.format-card{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 16px}.format-card strong{margin-bottom:4px;display:block}.format-card span{color:#64748b;font-size:.88rem}.format-card--active{background:#eff6ff;border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.compliance-note ul,.compliance-note ol{color:#475569;margin:0;padding-left:18px;font-size:.92rem}.label-structure li+li,.compliance-note li+li{margin-top:6px}.error{color:#b91c1c;background:#fef2f2;border-radius:10px;margin:16px 0 0;padding:10px 12px}.preview-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.preview-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;justify-content:center;padding:14px;display:flex;position:relative}.preview-card__qty{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;position:absolute;top:8px;right:10px}.empty-state{text-align:center;color:#64748b;border:1px dashed #d1d5db;border-radius:16px;padding:48px 20px}.sample-label{justify-content:center;margin:24px 0 8px;display:flex}.empty-state__caption{color:#94a3b8;margin:0;font-size:.85rem}.fnsku-label{box-sizing:border-box;color:#000;background:#fff;border:1px solid #111;flex-direction:column;font-family:Arial,Helvetica,sans-serif;display:flex;overflow:hidden}.fnsku-label__top{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.fnsku-label__barcode{width:100%;height:8.2mm}.fnsku-label__code{letter-spacing:.03em;margin-top:.4mm;font-size:6pt;font-weight:700;line-height:1.1}.fnsku-label__bottom{flex-direction:column;flex:1;justify-content:flex-end;gap:1mm;min-height:0;display:flex}.fnsku-label__row{align-items:flex-start;gap:1mm;font-size:4.5pt;line-height:1.15;display:flex}.fnsku-label__label{white-space:nowrap;flex-shrink:0;width:10.2mm;font-weight:700}.fnsku-label__value{white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:400;overflow:hidden}.fnsku-label__origin{white-space:nowrap;font-size:6pt;font-weight:700}.preview-card__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.verify-note{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:12px 14px;font-size:.9rem}.verify-note p{margin:8px 0 0}.verify-note__warn{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:8px 10px}.verify-note ol{margin:8px 0 0;padding-left:18px}.verify-note li+li{margin-top:4px}.verify-result{border-radius:8px;padding:10px 12px;font-weight:600;margin-top:12px!important}.verify-result--ok{color:#047857;background:#ecfdf5;border:1px solid #6ee7b7}.verify-result--fail{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5}.tiny-button{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:4px 10px;font-size:.8rem}.tiny-button:hover{background:#eff6ff;border-color:#93c5fd}.verify-result--pending{color:#64748b;background:#f8fafc;border:1px solid #cbd5e1}.verify-table-wrap{border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;overflow-x:auto}.verify-table{border-collapse:collapse;width:100%;font-size:.85rem}.verify-table th,.verify-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:10px 12px}.verify-table th{color:#475569;white-space:nowrap;background:#f8fafc;font-weight:600}.verify-table td{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.verify-table .row-ok td:last-child{color:#047857;font-weight:600}.verify-table .row-fail{background:#fef2f2}.verify-table .row-fail td:last-child{color:#b91c1c;white-space:normal;font-weight:600}.preview-meta{color:#64748b;text-align:left;width:100%;margin-top:10px;font-size:.78rem}.preview-meta div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=900px){.hero{flex-direction:column}.layout,.manual-form__grid,.mapping__grid{grid-template-columns:1fr}}@media print{body{background:#fff}.hero,.panel:not(.panel--full),.panel__header span,.preview-card__qty{display:none}.panel--full{box-shadow:none;border:none;padding:0}.preview-grid{display:block}.preview-card{break-inside:avoid;page-break-inside:avoid;background:0 0;border:none;margin:0;padding:0}}
