@font-face{font-family:Noto;src:url('/assets/noto-400.ttf');font-display:swap}@font-face{font-family:Noto;src:url('/assets/noto-700.ttf');font-weight:700;font-display:swap}*{box-sizing:border-box}body{margin:0;font:14px/1.65 Noto,system-ui,sans-serif;color:var(--ink);background:var(--page);font-synthesis:none}button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-underline-offset:4px}button,input,select,textarea,a,summary{transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out,box-shadow .18s ease-out}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:var(--selection);color:var(--ink)}input,textarea{caret-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}button:disabled{cursor:not-allowed}h1,h2,h3,p{overflow-wrap:anywhere}strong,.metrics,.summary,.totals,.date,.slot{font-variant-numeric:tabular-nums}.demo-bar{position:sticky;top:0;z-index:30;min-height:46px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:4px 24px;background:var(--bar,#fff);color:var(--bar-ink,var(--ink));border-bottom:1px solid var(--line);font-size:12px}.demo-bar>a{font-weight:700;text-decoration:none;padding:7px 0}.demo-bar>span{font-size:11px;color:var(--muted)}.demo-tools{display:flex;align-items:center;gap:18px}.demo-tools>button{background:none;border:0;color:inherit;padding:7px 0;font-size:12px}.demo-info{position:relative}.demo-info summary{cursor:pointer;list-style:none;padding:7px 0;color:inherit}.demo-info summary::-webkit-details-marker{display:none}.demo-info summary::after{content:'＋';font-size:12px;margin-left:5px}.demo-info[open] summary::after{content:'−'}.demo-info p{position:absolute;top:100%;right:-70px;min-width:280px;max-width:calc(100vw - 32px);margin:9px 0 0;padding:18px;background:var(--panel,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px #14202f20;font-size:13px;line-height:1.8;z-index:40}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.primary{font-size:13px;font-weight:700;background:var(--accent);color:#fff;border:0;border-radius:7px;min-height:44px;padding:10px 18px}.primary:hover{background:var(--accent-hover)}.primary:active{box-shadow:inset 0 2px 4px #0002}.primary:disabled{background:var(--disabled,#a8afb8);color:var(--disabled-ink,#fff)}dialog{max-height:calc(100dvh - 40px);overflow-y:auto;border:0;border-radius:14px;background:var(--panel,#fff);color:var(--ink);box-shadow:0 24px 90px #1220313d;padding:28px}dialog::backdrop{background:#14202f70}dialog header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}dialog h2{margin:0;font-size:20px}dialog header button{border:0;background:none;color:var(--muted);font-size:25px;min-width:40px;min-height:40px}dialog label{display:block;font-size:13px;color:var(--muted);margin-top:14px}dialog input:not([type=hidden]),dialog select,dialog textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;min-height:44px;padding:10px 12px;margin-top:5px}dialog textarea{resize:vertical}#form-error{color:var(--danger);font-size:13px;min-height:20px}summary{cursor:pointer}button svg{display:block;width:22px;height:22px}@media(max-width:600px){.demo-bar{padding:4px 16px;gap:8px;font-size:11px}.demo-bar>span{display:none}.demo-tools{gap:14px}.demo-info p{right:-65px;min-width:270px}.demo-tools>button{font-size:11px}dialog{padding:22px;width:calc(100% - 28px)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
:root{--ink:#302e36;--muted:#67626f;--page:#f3f2ef;--panel:#fff;--line:#dcd9d3;--accent:#5d4b82;--accent-hover:#493969;--focus:#8061b1;--selection:#dfd2f1;--danger:#a34f28;--disabled:#dedbe3;--disabled-ink:#69636f}main{max-width:1560px;margin:auto;padding:0 38px 25px}.brand-row{display:flex;align-items:center;justify-content:space-between;padding:25px 0;border-bottom:1px solid var(--line);gap:20px}.brand{font:600 32px/1 system-ui;letter-spacing:-.035em;text-decoration:none;display:flex;align-items:center;gap:15px}.brand span{font:12px/1.5 Noto;letter-spacing:0;color:var(--muted);border-left:1px solid #cfcbc5;padding-left:15px}.workspace-link{font-size:12px;color:var(--muted)}.heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0 22px}.heading h1{font-size:26px;margin:0;letter-spacing:-.025em;line-height:1.4}.heading p{font-size:13px;color:var(--muted);margin:7px 0 0}.steps{display:flex;gap:15px;align-items:center;font-size:12px;color:var(--muted)}.steps span:first-child{color:var(--ink);font-weight:700}.steps b{font-weight:400;color:#a49da9}.editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);background:#fff;min-height:540px;box-shadow:0 12px 35px #27222e0a}.source{min-width:0;display:flex;flex-direction:column;padding:25px;background:#e8e5df;border-top:3px solid #aaa092}.result{min-width:0;padding:25px;border-top:3px solid #706087}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.panel-head h2{font-size:15px;margin:0}.panel-head button{font-size:12px;color:#4b4260;padding:4px 0;border:0;background:none;min-height:32px;text-decoration:underline;text-underline-offset:4px}.panel-head button:hover{color:var(--accent)}.upload{display:block;padding:13px 15px;background:#f3f1ec;border:1px dashed #aaa296;border-radius:5px;font-size:12px;color:#625c51;cursor:pointer}.upload input{display:block;width:100%;font-size:12px;margin-top:8px;color:#625c51}.upload input::file-selector-button{font:inherit;background:#fff;border:1px solid #cac3b8;border-radius:4px;padding:6px 10px;margin-right:10px;color:#514b42;cursor:pointer}.source textarea{width:100%;flex:1;min-height:260px;resize:vertical;border:0;border-radius:3px;padding:20px;background:#fffefa;color:#4f4a44;font:13px/2 ui-monospace,Noto,monospace;margin-top:18px;box-shadow:0 2px 8px #46372d08}.source-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:20px}.source-footer span{font-size:11px;color:#615c52}.badge{font-size:11px;border-radius:5px;color:#625776;background:#eee9f6;padding:5px 9px}.badge.valid{background:#e6f1e7;color:#376347}.badge.error{background:#f9ecdf;color:#985528}.document-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.document-fields label{font-size:12px;color:var(--muted)}.document-fields input{display:block;width:100%;padding:9px 10px;min-height:40px;border:1px solid #d8d4de;border-radius:5px;margin-top:6px;color:var(--ink);background:#fff}.table-wrap{overflow:auto;margin-top:22px}table{width:100%;border-collapse:collapse;text-align:left}th{padding:12px 6px;background:#f3f1f6;font-size:11px;font-weight:400;color:#635c6f;white-space:nowrap}td{padding:11px 4px;border-bottom:1px solid #e9e5ed;font-size:12px}td input{width:100%;min-width:50px;min-height:37px;border:1px solid transparent;border-radius:4px;padding:6px;background:#f8f7fa;color:var(--ink);font-size:12px}td input:hover{border-color:#d9d2e3}td:first-child{width:43%}td:first-child input{min-width:118px}td:nth-child(2){width:13%}td:nth-child(3){width:20%}td:nth-child(4){white-space:nowrap}td button{width:28px;min-height:36px;background:none;border:0;border-radius:4px;font-size:20px;color:#766680}td button:hover{background:#f7eae7;color:#a34f28}.add-row{border:0;background:none;color:#655080;min-height:40px;font-size:12px;margin-top:6px;padding:8px 0}.totals{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #d8d4de;margin-top:16px;padding:18px 0}.totals span{font-size:12px;color:var(--muted)}.totals strong{font:600 26px/1.3 system-ui;letter-spacing:-.025em}.issues{min-height:25px;color:#985528;font-size:12px;line-height:1.8}.issues p{margin:3px 0}.issues:empty{display:none}.export{width:100%;margin-top:16px;min-height:45px}#status{font-size:12px;color:#655080;min-height:24px;padding:13px 0;margin:0}.empty-row td{height:114px;text-align:center;color:var(--muted);font-size:12px;background:#faf9fc;padding:25px}.result:has(.empty-row) .totals{margin-top:10px}@media(max-width:1100px){main{padding:0 25px 25px}.source,.result{padding:22px}.source-footer{display:block}.source-footer .primary{width:100%;margin-top:12px}.editor{grid-template-columns:1fr 1.15fr}.document-fields{grid-template-columns:1fr;gap:12px}.source textarea{min-height:300px}}@media(max-width:760px){main{padding:0 18px 20px}.brand-row{padding:22px 0}.brand{font-size:29px}.brand span{font-size:11px}.workspace-link{display:none}.heading{align-items:flex-start;padding:22px 0}.heading h1{font-size:23px}.heading p{font-size:12px;max-width:24ch}.steps{font-size:11px;gap:8px;padding-top:7px}.editor{display:block;box-shadow:none}.source,.result{padding:20px}.source textarea{min-height:250px}.source-footer{display:flex}.source-footer .primary{width:auto;margin-top:0}.document-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.table-wrap table{min-width:435px}.source-footer span{font-size:11px}.totals strong{font-size:24px}}

.document-fields>label,.document-fields input{min-width:0}.heading>div{min-width:0}
.table-wrap{contain:layout inline-size}
@media(pointer:coarse){.demo-bar>a,.demo-tools>button,.demo-info summary{min-height:44px;display:flex;align-items:center}.panel-head button,.add-row,.document-fields input,td input{min-height:44px}td button{width:44px;min-height:44px}}
.table-hint{display:none}@media(max-width:760px){.table-hint{display:block;margin:18px 0 8px;font-size:12px;color:var(--muted)}.table-hint+.table-wrap{margin-top:0}}
.mapping{margin-top:18px;font-size:12px}.mapping>summary{min-height:44px;display:flex;align-items:center;font-weight:700}.mapping-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:12px}.mapping-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mapping label{display:block;color:var(--muted);min-width:0}.mapping input,.mapping select{display:block;width:100%;min-width:0;min-height:44px;margin-top:5px;border:1px solid #bbb5c3;border-radius:5px;padding:8px;background:#fff;color:var(--ink)}.mapping button,.batch-workspace button{min-height:44px;border:1px solid #cfc8d9;border-radius:6px;background:#fff;color:var(--accent);padding:9px 13px}.mapping button:hover,.batch-workspace button:hover{background:#eee9f6}.batch-workspace{margin-top:30px;border-top:1px solid var(--line);padding-top:25px}.batch-workspace>header{display:flex;align-items:center;justify-content:space-between;gap:20px}.batch-workspace h2{font-size:18px;margin:0}.batch-workspace header p{font-size:12px;color:var(--muted);margin:7px 0 0}.batch-actions,.queue-row-actions{display:flex;gap:8px;flex-wrap:wrap}.queue-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.queue-row>div:first-child{min-width:0}.queue-row p{margin:5px 0;font-size:13px}.queue-row small,.queue-empty{font-size:12px;color:var(--muted)}.source-trace{font-size:11px;color:var(--muted);margin-top:7px}.source-trace summary{min-height:32px}.source-trace p{white-space:pre-wrap;margin:4px 0;max-width:250px}.queue-row strong{overflow-wrap:anywhere}.batch-workspace button:focus-visible,.mapping button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(max-width:760px){.mapping-body{grid-template-columns:1fr}.mapping-controls{grid-template-columns:1fr}.batch-workspace>header,.queue-row{align-items:stretch;flex-direction:column}.queue-row{gap:12px}.queue-row-actions button{flex:1;white-space:nowrap}.batch-actions button{flex:1}.mapping button{width:100%}.source-trace summary{min-height:44px;display:flex;align-items:center}}
