*{box-sizing:border-box}body{margin:0;background:#f6f8f3;color:#152820;font:16px/1.6 system-ui,sans-serif}main{max-width:1040px;margin:auto;padding:32px 24px}h1{font-size:38px;line-height:1.15}h2{font-size:23px}a{color:#176344}section{background:white;border:1px solid #d8e2d7;border-radius:12px;padding:24px;margin:24px 0}.badge{background:#fff0c5;padding:10px 15px;border-radius:8px;font-weight:700}button{background:#176344;color:white;border:0;border-radius:6px;padding:11px 16px;font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}label{display:block;margin:12px 0}select,input:not([type=checkbox]){max-width:100%;padding:8px;border:1px solid #b7c6ba;border-radius:5px;font:inherit}select{margin-left:10px}#fields,#option-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#option-fields input{width:130px}.scroll{overflow:auto;margin:18px 0}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;padding:10px;border-bottom:1px solid #d8e2d7;white-space:nowrap}th{background:#edf3eb}#message{font-weight:650;white-space:pre-wrap}.small{font-size:13px;color:#51645a}:focus-visible{outline:3px solid #d78828;outline-offset:3px}[hidden]{display:none!important}@media(max-width:600px){#fields,#option-fields{grid-template-columns:1fr}main{padding:20px 14px}section{padding:18px}h1{font-size:30px}}
select{appearance:none;-webkit-appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2351645a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding:10px 40px 10px 12px;border-color:#d8e2d7;min-height:42px;transition:border-color .15s,box-shadow .15s}select:hover{border-color:#176344}select:focus-visible{box-shadow:0 0 0 3px #17634420}.file-control{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px;background:#f6f8f3;border:1px dashed #b7c6ba;border-radius:10px}.file-control button{display:inline-flex;align-items:center;gap:9px}.file-control button:before{content:'';width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M12 18v-6m-3 3 3-3 3 3'/%3E%3C/svg%3E") center/contain no-repeat}#selected-file{color:#51645a;font-size:14px;overflow-wrap:anywhere;min-width:0}#fields label{display:flex;align-items:center;gap:8px}#fields select{margin-left:0;min-width:0;max-width:100%}@media(max-width:600px){#fields label{flex-wrap:wrap}.file-control{gap:10px}}
#mapping{padding:30px}#mapping h2{margin:0 0 8px}.mapping-intro{color:#63766a;font-size:14px;max-width:680px;margin:0 0 24px}.structure-field{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin:0 0 24px;background:#edf4ed;border:1px solid #dce8dd;border-radius:10px;font-weight:650}.structure-field select{width:290px;font-weight:400;background-color:#fff}#fields{gap:18px 22px}#fields .mapping-field{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:0;margin:0}.field-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:650}.field-badge{font-size:11px;font-weight:500;color:#176344;background:#eaf3eb;padding:2px 8px;border-radius:12px}.field-badge.optional{background:#f0f2f0;color:#768178}#fields .mapping-field select{width:100%;min-height:48px;border-radius:8px;padding-left:14px;background-color:#fcfdfb;font-size:15px}.field-hint{font-size:12px;font-weight:400;color:#768178;line-height:1.5}#options{margin-top:26px;padding:22px;background:#f7f9f5;border:1px solid #e2e8de;border-radius:12px}#options>p{margin:0 0 16px;font-size:13px;color:#63766a}#option-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}#option-fields .option-card{margin:0;padding:16px;background:#fff;border:1px solid #e0e7dc;border-radius:10px}.option-heading{display:block;font-size:13px;font-weight:650;margin-bottom:10px}.option-pair{display:flex;flex-direction:column;gap:10px}#option-fields input,#option-fields select{width:100%;min-width:0;margin:0;min-height:44px;border-radius:7px}#option-fields input{padding:10px 12px}#convert{margin-top:26px;min-height:48px;padding:12px 24px;border-radius:8px;box-shadow:0 3px 9px #17634418}#convert:hover{background:#124f37}@media(max-width:650px){#mapping{padding:20px}.structure-field{flex-direction:column;align-items:stretch;gap:10px;padding:16px}.structure-field select{width:100%;margin:0}#fields{grid-template-columns:1fr;gap:18px}#option-fields{grid-template-columns:1fr}#options{padding:16px}#convert{width:100%}}
.issue-success{display:flex;align-items:center;gap:10px;margin:20px 0;padding:14px 18px;border:1px solid #cfe3d3;border-radius:9px;background:#edf7ef;color:#176344;font-weight:600;font-size:14px}.issue-success:before{content:'✓';display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:#176344;color:white;font-size:13px}#export-box{margin-top:22px;padding:16px 18px;border:1px solid #d8e2d7;border-radius:9px;background:#f6f8f3}#export-note{margin:0 0 8px;font-size:14px;color:#51645a}#save-link{display:inline-block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.issue-failure{border-color:#efc9c5;background:#fff1ef;color:#9f3029}.issue-failure:before{content:'!';background:#b83f35}.issue-warning{border-color:#ead9ad;background:#fff8e9;color:#856316}.issue-warning:before{content:'!';background:#a77b20}#result>h2{margin-bottom:12px}#result>.issue-success{margin-top:0}
#mapping-details{border-top:1px solid #e2e8de;margin:18px 0;padding:14px 0;font-size:14px;color:#51645a}#mapping-details summary{cursor:pointer;font-weight:500}#mapping-details button{background:#edf3eb;color:#176344;font-size:13px;padding:8px 12px}#excluded-note{font-size:13px}#mapping-details .scroll{margin:12px 0}#checkout-flow{margin-top:20px}#checkout-flow .small{margin-bottom:0}
#upload-section{padding:30px}#upload-section h2{margin:0 0 8px}.upload-intro{margin:0 0 20px;font-size:14px;color:#63766a}#upload-section .file-control{padding:24px;background:#f8faf6;border:1px dashed #bacfbd;border-radius:12px;gap:18px}#upload-section .file-control.has-file{border-style:solid;background:#edf6ef;border-color:#cfe3d3}#upload-section .file-control button{min-height:46px;border-radius:8px;padding:12px 20px}#upload-section .upload-note{margin:10px 0 0;font-size:12px;color:#768178}#upload-section .sample-actions{border-top:1px solid #e4e9e0;padding-top:16px;margin:20px 0 0;align-items:center;gap:10px}.sample-label{font-size:13px;color:#63766a;margin-right:4px}#upload-section .sample-actions button{background:#fff;color:#51645a;border:1px solid #dce5d9;border-radius:7px;font-size:13px;padding:7px 12px;box-shadow:none}#upload-section .sample-actions button:hover{background:#edf3eb;border-color:#a9c5ae;color:#176344}#selected-file{flex:1;font-weight:500}@media(max-width:650px){#upload-section{padding:20px}#upload-section .file-control{padding:18px;gap:12px}#selected-file{flex-basis:100%}.sample-label{width:100%}}
#mapping,#result{scroll-margin-top:24px}
