:root{--bg:#f5f5ef;--ink:#253a31;--muted:#747d72;--line:#e0e4d9;--green:#416644;--light:#edf2e5;--accent:#d4e3a8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}header{height:85px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 5vw;background:#fbfcf7}.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:21px;letter-spacing:-.7px;color:var(--ink);text-decoration:none}.logo{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--green);color:#e2edb9;font-size:28px}.badge{font-size:9px;letter-spacing:1.3px;font-weight:650;border:1px solid #cdd6bb;color:#607147;padding:4px 8px;border-radius:5px;white-space:nowrap}.private{margin-left:auto;color:#707c6c;font-size:12px;display:flex;align-items:center;gap:7px}.dot{width:6px;height:6px;background:#7b9c56;border-radius:50%}.quiet{background:none;border:0;font-size:12px;color:var(--ink)}main{max-width:1360px;margin:auto;padding:0 5vw}.intro{display:flex;justify-content:space-between;align-items:center;padding:53px 0 39px}.eyebrow{font-size:9px;font-weight:750;letter-spacing:1.9px;color:#6c7c5b}h1{font-size:clamp(36px,4.2vw,58px);line-height:1.08;font-weight:500;letter-spacing:-2.6px;margin:18px 0}h1 em{font-family:Georgia,serif;font-weight:400;color:#687d51}p{margin:10px 0;color:var(--muted)}.intro p{font-size:14px;line-height:1.8}.intro-note{margin:20px 35px 0 20px;transform:rotate(2deg);border-left:1px solid #d5ddc6;padding-left:24px;font-family:Georgia,serif;max-width:260px}.intro-note>span{font-size:36px;color:#81976c;display:block;line-height:1.4}.intro-note strong{font-size:16px;font-weight:400}.intro-note p{font-family:-apple-system,sans-serif;font-size:12px}.steps{display:flex;gap:44px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:30px;color:#91988a;font-size:11px;letter-spacing:.8px}.steps b{font-weight:500;margin-left:8px;letter-spacing:0}.steps .active{color:var(--green)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:24px;align-items:start}.left{min-width:0}.card{background:#fdfef9;border:1px solid var(--line);border-radius:13px;padding:25px;margin-bottom:22px;box-shadow:0 2px 2px #29331b03}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}h2{font-size:15px;letter-spacing:-.3px;margin:0;font-weight:650}h2>span{font-size:10px;color:#8a987b;border:1px solid var(--line);border-radius:50%;padding:4px 5px;margin-right:8px}.small{font-size:11px;color:var(--muted)}.drop{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:232px;border:1.5px dashed #c4d0b3;border-radius:9px;background:#f5f8ee;cursor:pointer;padding:20px;text-align:center}.drop:hover,.drop.drag{background:#edf3e0;border-color:var(--green)}.drop input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.drop:focus-within{outline:2px solid var(--green);outline-offset:3px}.upload-icon{display:grid;place-items:center;width:46px;height:46px;background:#e9efd9;color:#6a8150;border:1px solid #dbe4cb;border-radius:12px;font-size:26px;margin-bottom:14px}.drop strong{font-size:15px;font-weight:550}.drop>span:not(.upload-icon){font-size:12px;color:#7a876c;margin-top:5px}.drop small{font-size:10px;color:#919a83;margin-top:20px}.sample{display:flex;justify-content:center;gap:7px;align-items:center;margin-top:19px;font-size:11px;color:var(--muted)}.sample button{border:0;background:none;color:var(--green);font-size:11px;font-weight:650}.sample button span{margin-left:6px}.options{padding:23px}.options .section-heading{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.options h2{font-size:15px}.field-label{display:block;font-size:10px;color:#63715b;margin:13px 0 7px;font-weight:600}select{width:100%;padding:10px 9px;border:1px solid #d9dfcf;border-radius:6px;background:#fff;color:var(--ink);font-size:11px}.hint{font-size:11px;line-height:1.6}.option-group{border-top:1px solid var(--line);margin-top:21px;padding-top:20px}.option-group .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:13px}.check{display:flex;gap:10px;align-items:start;padding:10px 0;cursor:pointer}input[type=checkbox]{accent-color:var(--green);margin:4px 0;flex-shrink:0;width:14px;height:14px}.check strong{font-size:12px;font-weight:550;display:block}.check small{font-size:10px;color:#8a9180;display:block;margin-top:2px}details{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}summary{cursor:pointer;font-size:11px;font-weight:650;color:#60734d}#keys{display:flex;flex-wrap:wrap;gap:6px}.key{font-size:10px;padding:4px 7px;background:var(--light);border-radius:5px;display:flex;gap:5px;align-items:center}.key input{width:12px;height:12px}.primary{border:0;border-radius:7px;background:var(--green);color:#fff;padding:12px 17px;font-size:12px}.primary:hover{background:#345536}.run{margin-top:24px;width:100%;display:flex;justify-content:space-between}.local-note{font-size:9px;text-align:center;margin:10px 0 0;color:#8d9682}.side-note{display:flex;gap:12px;padding:0 12px}.side-note>span{font-size:22px;color:#90a172}.side-note p{margin:0;font-size:11px;line-height:1.8}.side-note strong{color:#60744e;font-weight:500}.file{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.file .file-icon{background:var(--light);border-radius:5px;padding:5px;font-size:9px;color:#6f8653}.file strong{overflow-wrap:anywhere}.file small{display:block;font-size:10px;color:var(--muted)}.file button{margin-left:auto;border:0;background:none;color:#7d886e;font-size:18px}.mapping-title{font-size:12px;margin:19px 0 6px;font-weight:650}.map-row{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:8px;padding:6px 0;font-size:11px}.map-row label{overflow-wrap:anywhere}.map-row select{padding:7px}.map-row span{color:#a0ac91}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 20px}.stat{padding:12px;background:#f0f4e9;border-radius:7px}.stat strong{display:block;font-size:24px;font-weight:500}.stat small{font-size:9px;color:#7c896b}.tabbar{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}.tabbar button{font-size:10px;padding:7px 9px;border:0;background:none;border-radius:5px;color:var(--muted)}.tabbar .selected{background:#e9efd9;color:var(--green)}.table-wrap{overflow:auto;max-height:390px;border:1px solid var(--line);border-radius:7px}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);max-width:300px;overflow:hidden;text-overflow:ellipsis}th{background:#edf1e4;position:sticky;top:0;font-size:10px;font-weight:600}td.issue{color:#a66a2c;background:#fcf5e9}.notes{font-size:11px;margin:15px 0}.notes p{padding-left:12px;border-left:2px solid #cfdbb7}.downloads{display:flex;flex-wrap:wrap;gap:8px}.secondary{border:1px solid #d3dcc7;background:#f6f9f0;border-radius:6px;padding:10px;font-size:10px;color:var(--green)}.safe{display:block;margin-top:17px;font-size:11px}.safe input{vertical-align:middle;margin-right:5px}.safe small{display:block;color:#8b927f;margin-left:23px;font-size:10px}#message{border:1px solid #dec99e;background:#fff6df;color:#785b25;padding:13px;border-radius:8px;margin-bottom:20px;font-size:12px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:35px;padding:23px 0;font-size:10px;color:#7e8c70}.muted{color:#9aa18e}button:focus-visible,select:focus-visible{outline:2px solid #839b5b;outline-offset:3px}[hidden]{display:none!important}@media(min-width:1450px){main{padding:0 30px}}@media(max-width:950px){.workspace{grid-template-columns:minmax(0,1fr) 295px}.intro-note{margin-right:0}.card{padding:18px}.options{padding:18px}}@media(max-width:720px){header{height:70px;padding:0 5vw;gap:10px}.brand{font-size:18px}.brand .badge{display:none}.private{font-size:9px}.quiet{font-size:10px}.intro{padding:32px 0}.intro-note{display:none}h1{letter-spacing:-1.8px}.intro p{font-size:12px}.steps{gap:15px;font-size:9px;justify-content:space-between}.steps b{margin-left:3px}.workspace{display:flex;flex-direction:column;gap:0}.left,aside{width:100%}aside{order:0}.left{display:contents}.upload-card{order:-2;width:100%}#mapping-card{order:-1;width:100%}#result-card{order:1;width:100%}.stats{gap:5px}.stat{padding:9px}.stat strong{font-size:20px}.stat small{font-size:8px}footer{font-size:9px;flex-direction:column;gap:8px}.desktop{display:none}}

textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:9px;font:11px/1.6 monospace;color:var(--ink)}#migration-downloads{margin-top:12px}.file{flex-wrap:wrap}.file select{margin-left:auto}#load-config{max-width:100%;font-size:10px}
