:root{--canvas:#f4f6f8;--surface:#fff;--surface-soft:#f8fafc;--ink:#17202b;--muted:#667181;--border:#d9e0e8;--primary:#2563eb;--primary-hover:#1d4ed8;--success:#15803d;--warning:#a16207;--error:#b91c1c;--info:#0369a1;--focus:#2563eb38}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5}button,input,a{font:inherit}button,a{min-height:40px}button:focus-visible,a:focus-visible,.dropzone:focus-within{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3,p{margin:0}h1{overflow-wrap:anywhere;letter-spacing:-.03em;max-width:30ch;font-size:30px;line-height:1.1}h2{letter-spacing:-.015em;font-size:19px;line-height:1.25}h3{font-size:16px;line-height:1.35}.app-shell{width:min(1480px,100vw - 48px);margin:0 auto;padding:28px 0 56px}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup>div:last-child{min-width:0}.brand-mark{background:var(--ink);color:#fff;letter-spacing:-.05em;border-radius:10px;place-items:center;width:38px;height:38px;font-size:20px;font-weight:800;display:grid}.brand-lockup p,.section-title p,.confirm-strip span,.exports-grid p{color:var(--muted)}.eyebrow,.section-kicker,.confirm-label,.meta-label{color:var(--muted);letter-spacing:.11em;font-size:10px;font-weight:800}.eyebrow{margin-bottom:2px}.topbar-meta{align-items:center;gap:10px;display:flex}.limit-chip,.status-dot,.chip{border:1px solid var(--border);width:fit-content;min-height:27px;color:var(--muted);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.import-stepper{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px;padding:8px 14px;display:grid}.step-item{min-height:36px;color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex;position:relative}.step-item:not(:last-child){padding-right:24px}.step-icon{border:1px solid var(--border);background:var(--surface-soft);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.step-item.current{color:var(--primary)}.step-item.current .step-icon{border-color:var(--primary);background:#eff6ff}.step-item.complete{color:var(--success)}.step-item.complete .step-icon{background:#eef9f1;border-color:#a9d4b7}.step-line{background:var(--border);height:1px;position:absolute;top:50%;left:104px;right:8px}.step-item.complete .step-line{background:#a9d4b7}.workbench{grid-template-columns:minmax(0,1.28fr) minmax(340px,.72fr);align-items:start;gap:16px;display:grid}.panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:0;padding:20px}.section-title{justify-content:space-between;gap:16px;margin-bottom:16px;display:flex}.section-title p{margin-top:3px;font-size:14px}.section-kicker{margin-bottom:5px;display:block}.status-symbol{margin-right:4px;font-size:9px}.dropzone{background:var(--surface-soft);text-align:center;border:1px dashed #9eabbc;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:208px;padding:24px;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex}.dropzone:hover,.dropzone.drag-active{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus);background:#eff6ff}.dropzone.drag-reject{border-color:var(--error);background:#fff5f5}.dropzone strong{letter-spacing:-.01em;font-size:18px}.dropzone span{color:var(--muted);font-size:14px}.dropzone small{color:var(--muted);font-size:12px}.upload-glyph{background:var(--surface);width:44px;height:44px;color:var(--primary);border:1px solid #b8c5d4;border-radius:10px;place-items:center;margin-bottom:4px;display:grid}.sample-row,.action-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.sample-row>span{color:var(--muted);margin-right:3px;font-size:13px}.primary-button,.secondary-button{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:10px 14px;font-weight:700;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.primary-button{background:var(--primary);color:#fff}.primary-button:hover{background:var(--primary-hover);transform:translateY(-1px)}.secondary-button{background:var(--surface);color:var(--ink);border-color:var(--border)}.secondary-button:hover{background:var(--surface-soft);border-color:#aab6c4}button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.notice,.alert,.empty-state,.table-note,.action-note{color:#164c68;background:#f2f8fc;border:1px solid #bfd9ea;border-radius:8px;margin-top:14px;padding:11px 13px;font-size:13px}.notice{align-items:flex-start;gap:9px;display:flex}.notice>svg{color:var(--success);flex:none;margin-top:2px}.notice>div{gap:2px;display:grid}.notice strong{color:var(--ink);font-size:13px}.notice span{color:#31627b}.alert-error,.error-list{color:var(--error);background:#fff5f5;border-color:#f3b8b8}.boundary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.boundary-step{border:1px solid var(--border);color:var(--muted);background:#f7f8fb;border-radius:7px;padding:9px 10px;font-size:12px;font-weight:700}.boundary-step.active{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.preview-block{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.preview-toolbar{justify-content:space-between;align-items:end;gap:16px;margin-bottom:8px;display:flex}.preview-toolbar strong{text-overflow:ellipsis;white-space:nowrap;max-width:42ch;display:block;overflow:hidden}.preview-stats{color:var(--muted);gap:14px;font-size:12px;display:flex}.preview-stats strong{color:var(--ink);display:inline}.table-wrap{border:1px solid var(--border);border-radius:8px;max-height:560px;overflow:auto}.preview-wrap{max-height:350px}table{border-collapse:separate;border-spacing:0;width:100%;min-width:860px;font-size:13px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:nowrap;padding:9px 10px}th{z-index:1;color:#374151;letter-spacing:.02em;background:#f2f4f8;font-size:11px;font-weight:800;position:sticky;top:0}td{text-overflow:ellipsis;color:#242932;max-width:260px;overflow:hidden}.row-number{width:42px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}tr:last-child td{border-bottom:0}.table-note{border:0;border-top:1px solid var(--border);background:var(--surface-soft);border-radius:0;margin:0}.empty-state{color:var(--muted);gap:3px;display:grid}.empty-state-title{color:var(--ink);font-weight:700}.confirm-strip{border-top:1px solid var(--border);justify-content:space-between;align-items:end;gap:16px;margin-top:16px;padding-top:16px;display:flex}.confirm-strip div{gap:2px;display:grid}.confirm-strip strong{font-size:16px}.confirm-label{color:var(--primary);margin-bottom:2px}.progress-panel{position:sticky;top:16px}.progress-bar{background:#e8edf5;border-radius:999px;height:10px;overflow:hidden}.progress-bar span{background:var(--primary);height:100%;transition:width .22s;display:block}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.metric{border:1px solid var(--border);border-radius:8px;min-height:70px;padding:11px}.metric span{color:var(--muted);font-size:12px;font-weight:650}.metric strong{letter-spacing:-.02em;margin-top:4px;font-size:22px;display:block}.summary-strip{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:minmax(260px,1.1fr) minmax(0,2.9fr);gap:0;margin-top:16px;display:grid;overflow:hidden}.summary-intro,.summary-metric{min-width:0;padding:15px 16px}.summary-intro{background:#f8fafc;gap:2px;display:grid}.summary-intro>span:last-child{color:var(--muted);font-size:12px}.summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;display:grid}.summary-metric{border-left:1px solid var(--border);align-content:center;gap:3px;display:grid}.summary-metric span{color:var(--muted);font-size:12px;font-weight:650}.summary-metric strong{letter-spacing:-.02em;font-size:20px}.action-note{align-items:center;min-height:40px;margin-top:0;display:inline-flex}.results-panel{margin-top:16px;padding:0;overflow:hidden}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:8px 12px 0;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px}.tabs button:hover{color:var(--ink)}.tabs button.active{border-color:var(--primary);color:var(--primary);font-weight:750}.results-panel>div:not(.tabs){padding:0 16px 16px}.chip.warning{color:var(--warning);border-color:#edc681;margin:0 4px 4px 0}.status-completed{color:var(--success)}.status-safe{color:var(--success);border-color:#b8d8c2}.status-partial_failed,.status-processing{color:var(--warning)}.status-failed{color:var(--error)}.service-online{color:var(--success);border-color:#b8d8c2}.service-offline{color:var(--error);border-color:#f3b8b8}.service-checking{color:var(--info);border-color:#b7d7ec}.expand-button{border:1px solid var(--border);background:var(--surface);color:var(--primary);cursor:pointer;border-radius:6px;min-height:34px;padding:6px 8px}.comparison-row td{white-space:normal;background:#fbfcfe}.pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.pagination-actions{gap:8px;display:flex}.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}pre,code{white-space:pre-wrap;word-break:break-word;max-width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}pre{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0;padding:12px}.mapping-list,.exports-grid{gap:12px;margin-top:14px;display:grid}.mapping-note,.exports-grid>div{border:1px solid var(--border);border-radius:8px;padding:14px}.mapping-note{gap:4px;display:grid}.mapping-note small{color:var(--muted)}.exports-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exports-grid code{margin:10px 0;display:block}.raw-json-panel{gap:12px;margin-top:14px;display:grid}.raw-json-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.raw-json-header p{color:var(--muted);margin-top:3px;font-size:13px}.raw-json-panel pre{background:#f8fafc;max-height:520px;overflow:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:980px){.app-shell{width:min(100% - 32px,760px)}.workbench,.summary-strip{grid-template-columns:1fr}.summary-intro{grid-column:1/-1}.summary-metrics{border-top:1px solid var(--border)}.progress-panel{position:static}}@media (max-width:640px){.app-shell{width:calc(100% - 24px);padding-top:18px}.topbar,.confirm-strip,.preview-toolbar,.pagination{align-items:start;display:grid}.topbar-meta{justify-content:space-between}.panel{padding:14px}.section-title{display:grid}.import-stepper{grid-template-columns:repeat(4,minmax(110px,1fr));overflow-x:auto}.step-line{left:96px}.boundary-strip,.comparison-grid,.exports-grid,.summary-strip,.summary-metrics{grid-template-columns:1fr}.summary-metric,.summary-metric+.summary-metric{border-top:1px solid var(--border);border-left:0}.confirm-strip .primary-button{width:100%}.primary-button,.secondary-button,.tabs button{min-height:44px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
