:root{--bg:#f3f6fb;--ink:#17243b;--muted:#718096;--line:#e0e7f1;--blue:#1874d2;--teal:#129b8e;--white:#fff;--aside:#111e33;--red:#c43752;--green:#13865f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
.app{display:flex;min-height:100vh}.side{width:246px;flex-shrink:0;background:var(--aside);color:#dce7f8;padding:30px 16px;display:flex;flex-direction:column;gap:6px}.brand{display:flex;align-items:center;gap:10px;color:white;font-size:20px;font-weight:800;padding:0 8px 27px;letter-spacing:-.5px}.logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#1aab9a;font-size:22px}.nav{border:0;background:transparent;color:#adbed6;border-radius:10px;display:flex;align-items:center;gap:12px;width:100%;padding:13px;text-align:left;font-weight:700}.nav.active,.nav:hover{background:#213550;color:#fff}.nav .ico{font-size:19px}.sidefoot{margin-top:auto;border-top:1px solid #314259;padding:17px 8px;color:#9eafc7;font-size:12px}.body{min-width:0;flex:1;padding:32px clamp(18px,3.2vw,52px)}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:27px}.top h1{font-size:27px;letter-spacing:-.9px;margin:0 0 4px}.sub{color:var(--muted);margin:0}.pill{display:inline-flex;gap:7px;align-items:center;background:#e6f8f4;color:#0b816d;border:1px solid #bdebe1;padding:7px 11px;border-radius:25px;font-size:12px;font-weight:700}.section{display:none}.section.active{display:block}.layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(320px,.94fr);gap:22px;align-items:start}.stack{display:flex;flex-direction:column;gap:18px}.panel{border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 7px 22px #233e6108;padding:23px}.panel h2{font-size:17px;margin:0 0 17px;display:flex;align-items:center;gap:11px}.step{display:grid;place-items:center;background:#e7f0fc;color:#1675cb;font-weight:850;border-radius:10px;width:30px;height:30px;font-size:14px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{min-width:0}.field label,.field>.lab{display:block;color:#42526a;font-size:12px;font-weight:740;margin-bottom:6px}.filebox{border:1.5px dashed #b9d3eb;background:#f7fbff;border-radius:11px;padding:12px}
.filebox.dropzone{min-height:166px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;outline:none}
.filebox.dropzone:hover,.filebox.dropzone:focus-visible{background:#edf8ff;border-color:#58a3db}
.filebox.dropzone.is-dragging{background:#e5f8f1;border-color:#0c9a87;box-shadow:0 0 0 4px #b9ecdf;transform:translateY(-1px)}
.filebox.dropzone.is-loading{opacity:.72;cursor:progress}
.drop-main{display:flex;gap:10px;align-items:center;padding:4px 1px 9px;color:#285d83}
.drop-main .drop-ico{display:grid;place-items:center;min-width:36px;height:36px;border-radius:9px;background:#e2f1fc;color:#167ab5;font-size:22px}
.drop-main strong{display:block;font-size:13px;line-height:1.4}
.drop-main small{display:block;color:#7489a2;font-size:11px;line-height:1.4;margin-top:2px}
.dropzone .filename{min-height:15px}
.dropzone .filename.ready{color:#097b65;font-weight:700}
.filebox input{width:100%;max-width:100%;font-size:12px;color:#263a55}.filename{font-size:12px;margin:7px 0 0;color:#367ba9;word-break:break-word}.field select,.field input[type="number"],.field input[type="text"],.field textarea{border:1px solid #d9e3ef;border-radius:9px;background:#fff;color:var(--ink);width:100%;padding:10px 11px;outline:none;min-height:39px}.field select:focus,.field input:focus,.field textarea:focus{border-color:#63a7e5;box-shadow:0 0 0 3px #dceefd}.field textarea{resize:vertical;min-height:110px;font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:13px;line-height:1.75}.pair{display:flex;align-items:center;gap:9px;margin-top:11px}.pair .field{flex:1}.pair .arrow{padding-top:19px;color:#9aabc1}.pair button{align-self:end}.helper{font-size:12px;color:var(--muted);margin:8px 0 0}.checkline{display:flex;gap:8px;align-items:start;margin-top:11px;color:#43536a;font-size:13px}.checkline input{accent-color:var(--teal);margin-top:3px}.btn{border:1px solid #d6e1ef;background:#fff;border-radius:9px;padding:10px 15px;color:#304565;font-weight:750;min-height:41px}.btn:hover{background:#f2f6fc}.btn.primary{background:#1679d1;color:white;border-color:#1679d1}.btn.primary:hover{background:#0e65b4}.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}.btn.teal:hover{background:#0d8075}.btn.danger{color:var(--red)}.actions{display:flex;flex-wrap:wrap;gap:10px}.actions .btn{flex:1}.rightsticky{position:sticky;top:17px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:13px 0 18px}.kpi{background:#f4f7fc;border-radius:10px;padding:12px 9px}.kpi strong{display:block;font-size:22px;letter-spacing:-.8px;color:#15324e}.kpi small{color:#738399;font-size:11px}.kpi.em{background:#e8f8f4}.kpi.em strong{color:#098a75}.status{font-size:13px;white-space:pre-line;border-radius:9px;border:1px solid #dce8f5;background:#f7faff;color:#445e7e;padding:11px 13px}.status.ok{border-color:#c0ebda;background:#effbf6;color:#207b58}.status.err{border-color:#f0c6ce;background:#fff3f5;color:#a52845}.status.warn{border-color:#f2dbac;background:#fff9ec;color:#925d20}.preview-area{overflow:auto;max-height:465px;margin-top:14px;border:1px solid var(--line);border-radius:9px}.data-table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.data-table th{position:sticky;top:0;background:#edf3fb;color:#35516f;text-align:left;z-index:1;font-weight:800}.data-table td,.data-table th{padding:10px 10px;border-bottom:1px solid #e6ecf4;max-width:225px;overflow:hidden;text-overflow:ellipsis}.data-table tr:nth-child(even) td{background:#fbfdff}.data-table td.diff{color:#008d78;font-weight:700}.empty{border:1px dashed #d5e0ed;border-radius:12px;padding:39px 18px;text-align:center;color:#8a9aaf}.empty .big{font-size:35px;margin-bottom:8px}.banner{background:#edf7ff;border:1px solid #cbe5fb;border-radius:11px;color:#446a88;padding:12px 15px;font-size:12px}.hrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.history-grid{display:grid;grid-template-columns:330px 1fr;gap:20px;margin-top:18px;align-items:start}.history-list{display:flex;flex-direction:column;gap:9px;max-height:640px;overflow:auto}.history-item{border:1px solid #e1e8f1;background:#fff;border-radius:11px;padding:13px;text-align:left;cursor:pointer;color:var(--ink);width:100%}.history-item.active{border-color:#3a99dc;background:#f1f8ff;box-shadow:inset 3px 0 #2189d0}.history-item strong{display:block;word-break:break-all}.history-item small{display:block;color:#78869a;margin-top:4px}.historybuttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.historybuttons .btn{font-size:12px;padding:9px}.viewer-meta{font-size:12px;color:#667990;margin:6px 0}.muted{color:var(--muted)}.badge-small{display:inline-block;padding:3px 8px;background:#ddf6ed;color:#118269;border-radius:6px;font-size:11px;font-weight:800}.splitrule{margin:14px 0;border:0;border-top:1px solid var(--line)}.fineprint{font-size:12px;color:#7b8b9e;margin:13px 0 0}.notice{margin:10px 0;color:#997037;font-size:12px}.tabs{display:flex;gap:6px;background:#edf2fa;padding:4px;border-radius:9px}.tabs button{border:0;background:none;color:#60748f;padding:7px 11px;border-radius:7px;font-weight:700}.tabs button.active{background:white;color:#176fb9;box-shadow:0 1px 4px #243a5917}.pagebar{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:13px;font-size:12px;color:#6a7b91}.pagebar button{padding:5px 10px}.toast{position:fixed;bottom:18px;right:19px;z-index:999;background:#152d49;color:#fff;border-radius:10px;padding:14px 17px;box-shadow:0 12px 30px #213c6233;max-width:460px;display:none}.toast.show{display:block}
@media(max-width:1120px){.layout{grid-template-columns:1fr}.rightsticky{position:static}.history-grid{grid-template-columns:1fr}.history-list{max-height:200px}}
@media(max-width:680px){.app{display:block}.side{width:auto;padding:12px;display:flex;flex-direction:row;align-items:center;gap:6px}.brand{font-size:16px;padding:4px;margin-right:auto}.sidefoot{display:none}.side .nav{width:auto;padding:8px 11px;font-size:12px}.side .nav .ico{display:none}.body{padding:17px 12px}.top h1{font-size:21px}.pill{display:none}.twocol{grid-template-columns:1fr}.panel{padding:17px}}

.pill.warn{background:#fff4e8;color:#98601e;border-color:#f3d4ad}.bank-feature{border:1.5px solid #91d9c8;background:linear-gradient(130deg,#edfdf7,#f4faff);padding:15px;border-radius:12px;margin-top:15px}.bank-btn{width:100%;margin-top:11px;background:#d8f5eb;color:#0c7e68;border-color:#a1e0cf}.bank-btn:hover{background:#c7efdf}.recon-ok{color:#05825c;font-weight:800}.recon-warn{color:#b53d55;font-weight:800}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.recon-note{font-size:12px;color:#6e7f98;margin-top:9px}.actions .bank-btn{flex:unset}


/* ExcelFlow 3.3: clean, task-based Vietnamese interface */
:root{--bg:#f5f8fc;--ink:#1f2f47;--muted:#64748b;--line:#e3eaf3;--teal:#07947e;--blue:#2563eb;--aside:#10263e}
body{font-size:14px;line-height:1.58;color:var(--ink)}
.side{width:220px;padding:26px 12px;background:linear-gradient(175deg,#102842,#19324b)}
.side .brand{padding:5px 11px 28px;font-size:19px}
.logo{background:#0daa98;border-radius:12px}
.side .nav{font-size:13px;padding:12px 13px}.side .nav.active{background:#204a68;box-shadow:inset 3px 0 #58e4d1}
.body{padding:29px clamp(17px,2.8vw,40px);max-width:1800px;margin:auto}
.top{margin-bottom:22px}.top h1{font-size:28px;letter-spacing:-.8px}.sub{max-width:780px;font-size:13px}
.layout{grid-template-columns:minmax(490px,1.12fr) minmax(350px,.88fr);gap:20px}
.stack{gap:16px}.panel{padding:22px;border-radius:16px;box-shadow:0 4px 20px #1c3b6007}
.panel h2{font-size:17px;margin-bottom:8px}.step{border-radius:12px;background:#e8f4fd;color:#1667a5}
.sectionhint{margin:0 0 17px 41px;color:#71849c;font-size:12px}
.field label,.field>.lab{font-size:12px;color:#405773;font-weight:750;margin-bottom:7px}
.field select,.field input[type="number"],.field input[type="text"],.field textarea{font-size:13px;border-color:#cbd8e6;min-height:43px;border-radius:10px}
.filebox.dropzone{min-height:137px;border:1.5px dashed #9cbeda;background:#f8fbff;padding:15px;border-radius:13px}
.filebox.dropzone:hover,.filebox.dropzone.is-dragging{background:#eefbf8;border-color:#11a48f}
.drop-main{color:#1d5575}.drop-main .drop-ico{height:42px;min-width:42px;background:#e9f1fb;font-size:22px}
.drop-main strong{font-size:14px}.drop-main small{font-size:12px}
.filebox input{font-size:12px}.filename{margin-top:8px;min-height:16px}
.helper{font-size:12px;line-height:1.65}.checkline{font-size:13px;line-height:1.5}
.btn{border-radius:10px;min-height:42px}.btn.primary{background:#1e75ca;border-color:#1e75ca}.btn.teal{background:#079783;border-color:#079783}
.primary-action{font-size:14px;padding:12px 19px}
.smart-info{background:#f0faf7;border:1px solid #c7eade;border-radius:12px;padding:12px 14px;color:#235f53;font-size:12px;margin-top:13px;line-height:1.7}
.smart-info strong{font-size:13px}.smart-info.neutral{background:#f7faff;border-color:#deebfa;color:#57728e}
.mini-sample{overflow:auto;border:1px solid #e3eaf2;border-radius:11px;margin-top:12px;max-height:255px}.mini-sample table{border-collapse:collapse;width:100%;min-width:600px;font-size:11px}
.mini-sample th{background:#f0f5fb;position:sticky;top:0;font-size:11px;white-space:nowrap;color:#47627c}
.mini-sample th,.mini-sample td{padding:8px 10px;border-bottom:1px solid #e9edf4;text-align:left;vertical-align:top}
.mini-sample td{max-width:280px;word-break:break-word}.mini-sample tr:nth-child(even){background:#fbfcfe}
.mini-sample .subcell{display:block;color:#8b9aab;font-size:10px;margin-top:2px}
.guide-line{background:#f3f8fd;border:1px solid #deebf7;padding:11px 13px;border-radius:10px;font-size:12px;color:#4d6581;line-height:1.65;margin:12px 0}
.mapping-builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.85fr);gap:10px;align-items:end}
.mapping-builder .arrow-merge{display:none}
.mapping-builder .btn{grid-column:1/-1;max-width:225px}
.mapping-list{display:flex;flex-direction:column;gap:7px;margin-top:14px}
.mapping-row{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) auto;align-items:center;gap:6px;background:#f9fbfe;border:1px solid #e1eaf5;border-radius:10px;padding:9px 11px;font-size:12px}
.mapping-row .mapping-name{font-weight:680;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mapping-row .mapping-name small{display:block;font-size:10px;color:#8ca0b3;font-weight:500}
.mapping-row .mapping-arrow{text-align:center;color:#15977e;font-size:18px}
.mapping-row .remove-map{border:0;background:#fff1f0;color:#be5252;width:25px;height:25px;border-radius:8px;font-size:15px;font-weight:700}
.mapping-empty{padding:18px;text-align:center;border:1px dashed #cad8e6;border-radius:11px;color:#8393a7;font-size:12px;margin-top:12px}
.adv-details{border:1px solid #e4ebf3;background:#fafcff;border-radius:11px;margin-top:13px;overflow:hidden}
.adv-details summary{padding:12px 14px;cursor:pointer;user-select:none;color:#466585;font-size:12px;font-weight:780}
.adv-body{border-top:1px solid #e4ebf3;padding:15px;background:#fff}
.bank-switch{display:flex;align-items:center;gap:12px;padding:14px;background:#effbf6;border:1.5px solid #bfe6d6;border-radius:12px;margin-top:14px;cursor:pointer}
.bank-switch input{width:18px;height:18px;accent-color:#0c947d;flex-shrink:0}
.bank-switch strong{font-size:14px;color:#116d60;display:block}.bank-switch small{color:#537d74;font-size:12px;display:block;margin-top:2px}
.bank-switch .toggle-meta{margin-left:auto;padding:4px 8px;background:#daf4e9;color:#078068;border-radius:7px;font-size:10px;white-space:nowrap}
.options-line{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.options-line .checkline{margin:0}
.info-quiet{color:#708197;font-size:12px;margin-top:8px}
.warning-tip{padding:10px 12px;border-radius:9px;background:#fffaf0;border:1px solid #f2e4c6;font-size:12px;color:#846137;line-height:1.6}
.kpis{margin:13px 0 15px}.kpi{padding:12px;border-radius:11px}.kpi strong{font-size:24px}.kpi small{font-size:11px}
.status{font-size:12px;line-height:1.8}
.rightsticky{top:15px}.preview-area{max-height:480px}
.banner{border-radius:12px;line-height:1.65}
.fineprint{font-size:11px;line-height:1.7}
@media(max-width:1290px){.layout{grid-template-columns:1fr}.rightsticky{position:static}.body{padding:24px}.mapping-builder{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.side{width:auto;padding:12px;flex-direction:row;overflow-x:auto}.side .nav{white-space:nowrap}.side .brand{padding:4px;margin-right:auto}.body{padding:15px 10px}.top h1{font-size:22px}.panel{padding:17px}.sectionhint{margin-left:0}.twocol,.mapping-builder{grid-template-columns:1fr}.mapping-builder .btn{max-width:unset}.mapping-row{grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr) auto}.filebox.dropzone{min-height:110px}}


/* ExcelFlow 3.4 multi-file source manager */
.source-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:17px 0 9px}.source-toolbar strong{font-size:14px;color:#187c72}.source-toolbar .helper{margin:1px 0 0}
.source-toolbar .btn{min-height:33px;padding:6px 10px;white-space:nowrap;font-size:11px}
.source-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}
.source-list-empty{border:1px dashed #c8d7e6;background:#f8fbff;border-radius:11px;padding:15px;color:#73859c;font-size:12px}
.source-entry{display:grid;grid-template-columns:29px minmax(0,1.1fr) minmax(130px,.68fr) auto;gap:9px;align-items:center;border:1px solid #dbe8f0;border-radius:11px;background:#fff;padding:9px 10px}
.source-number{background:#e4f6f1;color:#087d68;border-radius:8px;text-align:center;font-weight:850;padding:6px 0}
.source-file-info{min-width:0}.source-file-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2a405a;font-size:12px}.source-file-info small{display:block;color:#798ba1;font-size:11px}
.source-entry select{width:100%;min-width:0;background:#f7fbff;border:1px solid #d2e0ec;padding:8px;border-radius:8px;color:#41546a;font-size:12px}
.source-item-actions{display:flex;gap:3px}.source-item-actions button{width:27px;height:30px;min-height:unset;border:1px solid #dce6f1;border-radius:7px;background:#f9fbfe;color:#536c87;cursor:pointer}.source-item-actions button:hover{background:#e7f3fd}.source-item-actions button.remove-source{background:#fff2f2;color:#c35055;border-color:#f1d7d7}
.source-item-actions button:disabled{opacity:.3;cursor:default}.multi-range-option{padding:10px 12px;border:1px solid #d9ebe5;border-radius:10px;background:#f5fcf9}
.file-results{margin:13px 0;border:1px solid #e0eaf2;border-radius:10px;overflow:auto}.file-results table{border-collapse:collapse;font-size:12px;width:100%}.file-results th,.file-results td{padding:9px 10px;border-bottom:1px solid #e7edf4;text-align:left}.file-results th{background:#eff8f6;color:#447a75}.file-results td:nth-child(n+2){font-variant-numeric:tabular-nums}
@media(max-width:670px){.source-entry{grid-template-columns:29px minmax(0,1fr) auto}.source-entry select{grid-column:2/3}.source-item-actions{grid-column:3;grid-row:1/3;flex-wrap:wrap;max-width:62px}.source-toolbar{align-items:start}}

/* ExcelFlow 3.5 - source-level skip audit log */
.skip-quick{display:flex;justify-content:space-between;align-items:center;gap:9px;background:#f5f9fc;border:1px solid #e0e8f1;border-radius:12px;padding:12px 13px;margin-bottom:12px}
.skip-quick strong{display:block;font-size:12px;color:#39556e}.skip-quick p{margin:2px 0 0;color:#64748b;font-size:11px;line-height:1.5}
.skip-quick .btn{font-size:12px;white-space:nowrap;color:#146685;border-color:#b9d1e3;background:white}
.skip-panel{background:white;border:1px solid #cfdde9;padding:15px;border-radius:13px;margin:15px 0}
.skip-panel[hidden]{display:none}.skip-head{gap:10px;align-items:start}.skip-head h3{font-size:15px;margin:0 0 4px}.skip-head .helper{margin:0}
.skip-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}
.skip-stat{border:1px solid #dfe8f1;background:#f9fbfe;border-radius:9px;padding:10px}
.skip-stat b{font-size:21px;display:block;font-variant-numeric:tabular-nums;color:#244c68}.skip-stat small{font-size:11px;color:#60748c;line-height:1.5}
.skip-stat.attention{background:#fff8f3;border-color:#f2dac2}.skip-stat.attention b{color:#a25020}
.skip-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:11px}
.skip-controls .field select,.skip-controls .field input{min-height:38px;font-size:12px}
.skip-table{max-height:380px;overflow:auto;border:1px solid #e2e9f1;border-radius:9px}
.skip-table table{border-collapse:collapse;font-size:11px;min-width:720px;width:100%;table-layout:fixed}
.skip-table th,.skip-table td{padding:9px 9px;border-bottom:1px solid #e4ebf2;text-align:left;vertical-align:top;word-break:break-word}
.skip-table th{position:sticky;top:0;background:#edf5fa;color:#365979;z-index:1}
.skip-table tbody tr:nth-child(even){background:#fafcff}.skip-table .why{font-weight:670;color:#2e5671}
.skip-table .note{display:block;margin-top:3px;color:#72839b;font-size:10px}
.skip-table .important{color:#b04d24}.skip-pill{display:inline-block;border-radius:6px;background:#eaf7f2;color:#237661;padding:1px 6px;font-size:10px}
.skip-pill.attention{background:#fff1dc;color:#9a531c}
@media(max-width:680px){.skip-controls{grid-template-columns:1fr}.skip-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.skip-head{flex-direction:column}.skip-quick{flex-direction:column;align-items:stretch}.skip-quick .btn{align-self:flex-start}}

/* EXCELFLOW 4.1 — end-user accounting workspace */
:root{--bg:#f7f9fc;--ink:#1c304b;--muted:#65758d;--line:#dae3ef;--blue:#196da3;--teal:#008e7b;--teal-dark:#007d6d;--teal-soft:#e6f7f2;--white:#fff;--aside:#fff;--red:#a63d4b;--green:#07835d}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Segoe UI',Arial,Helvetica,sans-serif;font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}
.ef-app{min-height:100vh}.ef-header{height:64px;border-bottom:1px solid #e3e9f1;background:white;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 clamp(20px,2.6vw,48px);position:sticky;top:0;z-index:50;box-shadow:0 1px 5px rgba(25,48,73,.035)}
.ef-brand{display:flex;align-items:center;gap:14px;min-width:0}.ef-logo{display:grid;place-items:center;width:33px;height:35px;border-radius:6px;background:linear-gradient(150deg,#17b984,#047a64);box-shadow:inset 0 -4px 0 #085e4f;color:#fff;font-size:21px}.ef-brand strong{font-size:24px;letter-spacing:-.8px;color:#152a43;white-space:nowrap}.ef-brand-sep{width:1px;background:#e2e7ef;height:24px;margin:0 3px}.ef-tagline{font-size:15px;color:#728096;white-space:nowrap}
.ef-header-actions{display:flex;align-items:center;gap:8px}.ef-header-actions button{min-height:36px;white-space:nowrap;border-radius:8px;padding:8px 13px;border:1px solid #d5e0eb;background:#fff;color:#1c304b;font-weight:650;box-shadow:none}
.ef-header-actions button:hover{background:#f6f9fc}.ef-header-actions #exportBtn{background:var(--teal);border-color:var(--teal);color:white;font-weight:750;padding:8px 21px}.ef-header-actions #exportBtn:hover{background:var(--teal-dark)}
.ef-shell{width:100%;max-width:1790px;margin:auto;padding:12px 26px 38px}.ef-nav-utilities{display:flex;gap:4px;justify-content:flex-start;margin:0 0 6px}.ef-nav-utilities .nav{font-size:11px;padding:5px 9px;border:0;color:#718298;background:transparent;border-radius:6px}.ef-nav-utilities .nav.active,.ef-nav-utilities .nav:hover{background:#ebf4f6;color:#007d6d}
.section{display:none}.section.active{display:block}
.ef-steps{display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;margin-bottom:10px}
.ef-step{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:7px 14px;border-radius:26px;color:#263a55;font-size:13px;font-weight:700;white-space:nowrap}.ef-step.current{background:#dff4ee;color:#0b6257}.step-dot{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:#eef2f7;color:#485b74;border:1px solid #dce5f0;font-size:12px}.ef-step.complete .step-dot{border:1px solid #00977e;color:#007e6a;background:#eefaf6}.ef-step.current .step-dot{color:#fff;background:var(--teal);border-color:var(--teal)}.ef-step.complete .step-dot:after{content:'✓';font-weight:900}.ef-step.complete .step-dot{font-size:0}.ef-step.complete .step-dot:after{font-size:14px}
.step-line{height:1px;width:clamp(28px,7vw,132px);background:#d2dae6}.ef-step.complete+.step-line{background:#008d79}
.ef-notice{display:flex;align-items:center;gap:10px;padding:10px 18px;background:#eaf3f9;color:#50637e;border-radius:8px;margin-bottom:16px;min-height:40px}.ef-i{display:grid;place-items:center;width:17px;height:17px;border:1px solid #0e9488;border-radius:50%;color:#0b8b7f;font-size:11px;font-weight:800;font-style:normal}
.ef-workspace{display:grid;grid-template-columns:minmax(258px,25%) minmax(490px,1fr) minmax(244px,22%);gap:14px;align-items:stretch;margin-bottom:16px}
.ef-card,.ef-preview-card,.ef-settings{border:1px solid #dce5ef;background:#fff;border-radius:12px;box-shadow:0 2px 7px rgba(25,58,85,.035);min-width:0}
.ef-card{padding:16px}.ef-card-heading{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:12px}.ef-card-heading h2{margin:0;font-size:16px;color:#1a2d48;letter-spacing:-.2px;font-weight:750}.ef-card-heading h2 small{font-size:12px;color:#8190a3;font-weight:500}.ef-icon{font-size:19px;color:#415e7b;font-weight:600;line-height:1}
.ef-files .filebox{position:relative;border:1px dashed #b8cce1;background:#f8fbfe;border-radius:9px;padding:7px 11px;min-height:80px;transition:.16s ease}.ef-files .filebox:hover,.ef-files .filebox.is-dragging{background:#effaf6;border-color:#0e9a84}.ef-files .filebox.is-loading{opacity:.6}.ef-files .drop-main{display:flex;align-items:center;gap:10px;justify-content:center;text-align:center;padding:7px 4px}.ef-files .drop-ico{font-size:21px;color:#607991;background:transparent}.ef-files .drop-main strong{font-size:12px;font-weight:600;color:#58708b}.ef-files .drop-main small{font-size:11px;color:#9aa7b5}.ef-files .filebox input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.ef-files .filename{display:none}
.ef-files .source-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:11px 0 7px}.ef-files .source-toolbar strong{font-size:12px;font-weight:700;color:#264157}.ef-files .source-toolbar .helper{display:none}.ef-files #clearSources{border:0;background:transparent;color:#6f8293;min-height:unset;padding:3px 4px;font-size:11px;font-weight:550}
.ef-files .source-list{max-height:188px;overflow:auto;display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.ef-files .source-list-empty{color:#8b9bad;font-size:12px;text-align:center;padding:18px 4px}.ef-files .source-entry{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;align-items:center;border:1px solid #e0f3ea;background:#f0faf4;border-radius:8px;padding:7px 5px}.ef-files .source-number{display:grid;place-items:center;width:19px;height:21px;border-radius:5px;background:#079c77;color:#fff;font-size:11px;font-weight:700}.ef-files .source-file-info{min-width:0}.ef-files .source-file-info strong{font-size:12px;font-weight:650;display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#203449}.ef-files .source-file-info small{color:#7993a0;font-size:10px;display:block}.ef-files .source-entry select{max-width:86px;min-width:0;border:1px solid #d7e4df;border-radius:6px;background:#fff;font-size:10px;padding:3px}.ef-files .source-item-actions{display:flex;align-items:center;gap:2px;grid-column:3;grid-row:1 / span 2}.ef-files .source-item-actions button{border:0;background:transparent;font-size:14px;color:#6b8293;padding:1px 3px;min-width:15px}.ef-files .source-entry select{grid-column:2;grid-row:2}.ef-files .source-list:has(.source-entry){max-height:230px}
.ef-target-heading{padding-top:12px;margin-top:4px;border-top:1px solid #e8edf3}.ef-files #targetDrop{min-height:60px}.ef-files #targetDrop .drop-main{padding:2px 3px}.ef-files #targetDrop .drop-main small{display:none}
.ef-sheets{margin-top:12px}.ef-sheets .twocol{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ef-sheets .field label{font-size:11px;color:#607289;display:block;margin:0 0 4px}.ef-sheets .field select{width:100%;min-width:0;min-height:34px;padding:7px 8px;font-size:12px}
.ef-mapping{padding:16px 14px;display:flex;flex-direction:column;min-height:365px}.ef-mapping-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ef-mapping-head .ef-card-heading{margin:0}.ef-switches{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.switch{display:flex;align-items:center;gap:7px;font-size:11px;color:#45556c;white-space:nowrap;cursor:pointer}.switch input{position:absolute;opacity:0}.switch-track{width:29px;height:16px;background:#cbd5e1;border-radius:99px;display:inline-flex;align-items:center;padding:2px;transition:background .14s ease}.switch-track:before{content:'';width:12px;height:12px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #1113;transition:transform .14s ease}.switch input:checked+.switch-track{background:var(--teal)}.switch input:checked+.switch-track:before{transform:translateX(13px)}.switch input:focus-visible+.switch-track{outline:3px solid #9fdccc}
.ef-map-head{display:grid;grid-template-columns:minmax(120px,1.1fr) 18px minmax(100px,1fr) minmax(100px,.8fr) minmax(40px,.55fr) 26px;gap:8px;align-items:center;padding:10px 9px;background:#f2f5f9;color:#374a63;font-size:12px;font-weight:750;border-radius:8px 8px 0 0}
#mappingList{border:1px solid #e5ebf3;border-radius:0 0 8px 8px;min-height:165px;overflow:auto;max-height:325px}.ef-mapping .mapping-empty{text-align:center;padding:64px 12px;color:#8999a9;font-size:12px}.ef-mapping .mapping-row{display:grid;grid-template-columns:minmax(120px,1.1fr) 18px minmax(100px,1fr) minmax(100px,.8fr) minmax(40px,.55fr) 26px;gap:8px;align-items:center;padding:8px 9px;min-height:44px;border-bottom:1px solid #e9eef5}.ef-mapping .mapping-row:last-child{border-bottom:0}.ef-mapping .mapping-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#283c56;font-size:12px}.ef-mapping .mapping-name small{display:none}.ef-mapping .mapping-arrow{font-size:16px;color:#8091a2;text-align:center}.ef-mapping .mapping-row .mapping-type select{width:100%;font-size:11px;border:1px solid #d8e2ee;border-radius:7px;background:#fff;height:29px;color:#30445d;padding:2px 7px}.ef-mapping .mapping-option{text-align:center;color:#7f90a3;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ef-mapping .mapping-row .remove-map{border:0;background:transparent;font-size:18px;color:#9daabb;min-height:25px;cursor:pointer}
.ef-addrow{margin:12px 0 6px;padding:11px;border:1px solid #e2ebf2;background:#f8fbfd;border-radius:8px}.ef-addrow .mapping-builder{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) minmax(88px,.8fr) auto;align-items:end;gap:8px}.ef-addrow .field{min-width:0}.ef-addrow .field label{display:block;font-size:11px;color:#64758b;margin:0 0 4px;font-weight:650}.ef-addrow select{width:100%;min-width:0;min-height:34px;border-radius:6px;border:1px solid #d5e2ee;font-size:11px;padding:5px 7px;background:#fff}.ef-addrow button{border-radius:7px;min-height:34px;padding:5px 11px;font-size:12px;background:#0b8a79;border:1px solid #0b8a79;color:white;font-weight:700}
.ef-template-controls{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:10px;border-top:1px solid #edf1f6;flex-wrap:wrap}.ef-template-controls label{font-size:11px;color:#6b7d91}.ef-template-controls select{padding:5px 7px;border-radius:7px;border:1px solid #dbe4ed;font-size:11px;max-width:170px}.ef-template-controls #mappingDetails{margin-left:auto}.ef-template-controls #mappingDetails summary{font-size:11px}.ef-template-controls #mappingDetails .adv-body{position:relative}.ef-template-controls #mappingDetails textarea{min-width:230px}.ef-template-controls details[open]{width:100%}
.ef-audit{display:flex;flex-direction:column}.ef-metric-list{margin-top:2px}.ef-metric{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 3px;border-bottom:1px solid #e8edf4;color:#37475d;font-size:12px}.ef-metric:first-child{border-top:1px solid #e8edf4}.ef-metric strong{font-size:18px;color:#1c304a;font-weight:800;letter-spacing:-.4px}.ef-metric:first-child strong{color:#04896c}.ef-metric-right{display:flex;gap:10px;align-items:center}.ef-metric #showSkipped{font-size:11px;border:0;background:transparent;color:#007e70;font-weight:650;text-decoration:underline;min-height:unset;padding:0}.ef-result{margin-top:26px}.ef-result-title{margin-bottom:9px}.ef-result #importStatus{border:0;background:#eff9f5;color:#167c61;border-radius:8px;min-height:65px;font-size:11px;padding:12px 10px;white-space:pre-wrap;max-height:150px;overflow:auto;line-height:1.5}.ef-result #skipQuickText{font-size:11px;color:#8290a0;margin:10px 0}.ef-preview-action{margin-top:14px}.ef-preview-action #previewBtn{width:100%;background:#f3f8fb;color:#1d5b7c;border:1px solid #cadfe9;border-radius:8px;padding:11px;font-weight:700;min-height:37px}.ef-preview-action #previewBtn:hover{background:#e7f5f8}
.ef-preview-card{padding:14px 12px 12px}.ef-preview-top{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:0 3px 10px;flex-wrap:wrap}.ef-preview-top .ef-card-heading{margin:0}.ef-preview-tabs{display:flex;align-items:center;gap:7px;flex:1;margin-left:12px;flex-wrap:wrap}.ef-tab{border:0;border-radius:7px;padding:7px 13px;background:transparent;color:#556c86;font-size:12px;white-space:nowrap}.ef-tab.active{background:#dff5ed;color:#08775f;font-weight:800}.ef-preview-state{border:1px solid #c8ecdf;color:#0b8970;background:#e8f8f2;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:700}
.ef-row-preview{overflow:auto;max-height:470px;min-height:155px;border:1px solid #dbe4ee;border-radius:8px}.ef-row-preview table{width:100%;border-collapse:collapse;min-width:680px;font-size:12px}.ef-row-preview th{background:#f3f6fa;text-align:left;color:#304359;padding:9px 10px;border-bottom:1px solid #dfe5ef;border-right:1px solid #edf1f6;font-size:11px;white-space:nowrap;font-weight:750;position:sticky;top:0;z-index:2}.ef-row-preview td{padding:9px 10px;border-bottom:1px solid #e4ebf3;border-right:1px solid #edf1f6;vertical-align:middle;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ef-row-preview tr:nth-child(even) td{background:#fcfdff}.ef-row-preview tr:hover td{background:#f4faff}.ef-row-preview .num{text-align:right;font-variant-numeric:tabular-nums}.ef-row-preview .rowid{color:#708298;text-align:center;width:38px}.ef-row-preview .ef-status{display:inline-block;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:650}.ef-row-preview .status-import{background:#e7f3ff;color:#1765a8}.ef-row-preview .status-matched{background:#e7f8ed;color:#087d51}.ef-row-preview .status-skipped{background:#f0f2f5;color:#5d6e82}.ef-row-preview .desc{max-width:450px;min-width:180px}.ef-blank{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:172px;text-align:center;color:#8698a9}.ef-blank strong{font-size:14px;color:#5c6e81}.ef-blank-icon{font-size:28px;color:#93a6b7}
.ef-preview-bottom{display:flex;align-items:center;justify-content:space-between;padding:12px 9px 4px;color:#73849b;font-size:11px}.ef-page-controls{display:flex;align-items:center;gap:7px}.ef-page-controls button{border:1px solid #d7e1ec;background:#fff;border-radius:6px;width:30px;height:29px;color:#3b526e;font-size:18px}.ef-page-controls span{display:grid;place-items:center;min-width:28px;height:29px;padding:0 7px;border:1px solid #b7dfd4;border-radius:6px;background:#eff8f4;color:#087d67}
.ef-detail-fold{margin-top:7px;border-top:1px solid #edf1f5}.ef-detail-fold summary{cursor:pointer;padding:10px 6px;color:#51657c;font-size:12px;font-weight:650}.ef-hidden-detail{overflow:auto;max-height:420px}.ef-hidden-detail table{width:100%;border-collapse:collapse}.ef-hidden-detail th,.ef-hidden-detail td{padding:8px 10px;border-bottom:1px solid #ebeff3;text-align:left}.ef-hidden-detail th{background:#f4f7fa}.ef-hidden-detail .empty{margin-top:9px}.ef-skip-details{margin-top:8px}.ef-skip-details #skipDetails{border-top:1px solid #edf1f5;padding-top:10px}.ef-skip-details .skip-table{max-height:440px;overflow:auto}.ef-skip-details #skipDetails[hidden]{display:none}
.ef-settings{margin-top:14px;padding:0 15px}.ef-settings>summary{list-style:none;cursor:pointer;padding:13px 4px;font-size:12px;font-weight:750;color:#334b63}.ef-settings>summary::-webkit-details-marker{display:none}.ef-settings>summary:after{content:'▾';float:right;color:#69839d}.ef-settings[open]>summary:after{content:'▴'}.ef-settings summary small{font-weight:500;color:#8291a3;margin-left:8px}.ef-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #e8edf4;padding:14px 0}.ef-settings-group h3{font-size:13px;margin:0 0 10px}.ef-settings-group .twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ef-settings-group .field{min-width:0;margin:8px 0}.ef-settings-group .field label{font-size:11px;color:#61748b;margin:0 0 4px;display:block}.ef-settings-group input:not([type=checkbox]),.ef-settings-group select{max-width:100%;width:100%;border:1px solid #d9e3ed;border-radius:7px;min-height:35px;padding:7px;background:#fff}.ef-settings-group textarea{width:100%;border:1px solid #dae3ed;border-radius:7px;padding:8px}.ef-settings-group .checkline{font-size:12px;display:flex;align-items:center;gap:8px;margin:8px 0}.ef-settings-group .adv-details{border:1px solid #e0e8f0;border-radius:8px;margin:10px 0;padding:10px}.ef-settings-group .adv-details>summary{font-size:12px;cursor:pointer}.ef-settings-group .adv-body{padding:10px 0}.ef-settings-group #sourceInsight{font-size:12px;padding:9px 11px;border-radius:8px;background:#f3f8fc}.ef-settings-group #sourcePeek{overflow:auto;max-height:200px}.ef-settings-group #bankPreset{font-size:12px;background:#f2f8fc;border:1px solid #d4e2ec;border-radius:7px;padding:8px 10px}.ef-settings-group #rowFilter{width:100%}.ef-security-note{margin:13px 4px;color:#93a0af;font-size:11px}
#comparePage,#historyPage{padding:12px 0 0}#comparePage .top,#historyPage .top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px}#comparePage .top h1,#historyPage .top h1{margin:0;font-size:24px;letter-spacing:-.5px}#comparePage .sub,#historyPage .sub{margin:0;color:#728399}#comparePage .panel,#historyPage .panel{background:#fff;border:1px solid #dbe4ed;border-radius:12px;box-shadow:none;padding:17px;margin-bottom:14px}#comparePage .panel h2,#historyPage .panel h2{font-size:16px;margin:0 0 13px}#comparePage .data-table,#historyPage table{width:100%}
.ef-app .btn{border-radius:7px}.ef-app input:focus-visible,.ef-app button:focus-visible,.ef-app select:focus-visible,.ef-app textarea:focus-visible{outline:2px solid #5cbfab;outline-offset:2px}
@media(max-width:1260px){.ef-workspace{grid-template-columns:minmax(244px,30%) minmax(450px,1fr)}.ef-audit{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.ef-audit>.ef-card-heading{grid-column:1 / -1}.ef-audit .ef-result{margin-top:0}.ef-mapping-head{align-items:flex-start}.ef-switches{justify-content:flex-start}.ef-addrow .mapping-builder{grid-template-columns:repeat(2,minmax(0,1fr))}.ef-addrow button{grid-column:span 2}}
@media(max-width:880px){.ef-workspace{grid-template-columns:1fr}.ef-audit{display:block;grid-column:auto}.ef-audit .ef-result{margin-top:20px}.ef-header{padding:0 16px}.ef-tagline,.ef-brand-sep{display:none}.ef-steps{justify-content:space-between;gap:3px}.ef-step{padding:7px 3px;gap:4px;font-size:11px}.step-line{width:12px}.ef-settings-grid{grid-template-columns:1fr}}
@media(max-width:580px){.ef-shell{padding:8px 12px 26px}.ef-brand strong{font-size:19px}.ef-header{gap:6px}.ef-header-actions{gap:4px}.ef-header-actions button{padding:5px 7px;font-size:11px}.ef-header-actions #exportBtn{padding:6px 9px}.ef-steps .ef-step{font-size:0}.ef-steps .ef-step .step-dot{font-size:12px}.ef-steps .ef-step.current{font-size:11px}.ef-notice{font-size:12px}.ef-switches{gap:8px}.ef-map-head,.ef-mapping .mapping-row{grid-template-columns:minmax(92px,1fr) 13px minmax(92px,1fr) minmax(75px,.8fr) 18px;gap:5px}.ef-map-head>:nth-child(5),.ef-mapping .mapping-row .mapping-option{display:none}.ef-preview-tabs{margin-left:0}.ef-preview-state{display:none}.ef-files .source-entry{grid-template-columns:22px 1fr auto}.ef-addrow .mapping-builder{grid-template-columns:1fr}.ef-addrow button{grid-column:auto}}

.ef-brand-link{border:0!important;background:transparent!important;color:#152a43!important;padding:0!important;font-size:24px;font-weight:800!important;letter-spacing:-.8px;line-height:1.2;min-height:auto!important} 
.ef-brand-link:hover{color:#087d6a!important} 
.ef-recon-link{border:0;background:transparent;color:#2e718b;font-size:11px;text-decoration:underline;padding:5px 0;align-self:flex-start;cursor:pointer;margin:4px 0 0} 
.ef-files #targetDrop:has(.filename.ready) {background:#f1faf6;border:1px solid #dcf1e8;min-height:48px} 
.ef-files #targetDrop:has(.filename.ready) .drop-main{display:none} 
.ef-files #targetDrop .filename.ready{display:block;color:#1a6049;font-weight:700;background:transparent;padding:12px 6px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} 
.ef-highlight{outline:3px solid #5fbda8;outline-offset:3px} 

/* ExcelFlow 4.2 — navigation and explicit user approval */
.ef-page-return{display:inline-flex;align-items:center;gap:8px;border:1px solid #d6e3ed;background:#fff;color:#173b56;border-radius:10px;padding:9px 13px;font-weight:700;font-size:13px;min-height:38px;margin:0 0 14px;cursor:pointer}
.ef-page-return:hover,.ef-page-return:focus-visible{border-color:#008e7b;background:#effaf7;outline:none}
.ef-approval-overlay[hidden]{display:none!important}
.ef-approval-overlay{position:fixed;inset:0;z-index:9999;background:rgba(15,35,54,.52);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}
.ef-approval-dialog{width:min(100%,475px);background:white;border-radius:18px;padding:26px;box-shadow:0 30px 100px #071a3355;border:1px solid #e0e8f0;color:#183349}
.ef-approval-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e9f7f2;color:#00846e;font-size:22px;font-weight:800;margin-bottom:14px}
.ef-approval-title{font-size:21px;font-weight:800;line-height:1.35;margin:0 0 10px}
.ef-approval-desc{font-size:14px;line-height:1.65;color:#556b80;white-space:pre-line;margin:0 0 20px;overflow-wrap:anywhere}
.ef-approval-actions{display:flex;gap:10px;justify-content:flex-end}
.ef-approval-actions button{border:1px solid #d7e2ee;background:white;color:#25445e;padding:11px 19px;border-radius:10px;font-size:14px;font-weight:700;min-width:105px;cursor:pointer}
.ef-approval-actions .ef-approval-yes{background:#008c78;color:#fff;border-color:#008c78}
.ef-approval-actions .ef-approval-yes.danger{background:#c83b52;border-color:#c83b52}
.ef-approval-actions button:focus-visible{outline:3px solid #9accc4;outline-offset:2px}
@media(max-width:560px){.ef-approval-dialog{padding:20px}.ef-approval-actions button{flex:1}}

/* ExcelFlow 4.4.4 — responsive production layout. Keep desktop unchanged. */
.ef-app{min-width:0}
.ef-app button,.ef-app select,.ef-app input{max-width:100%}
.ef-header-actions{min-width:0}
.ef-card,.ef-preview-card,.ef-settings,.ef-workspace,.ef-shell{min-width:0}
#mappingList{scrollbar-width:thin}
.ef-row-preview{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.ef-approval-dialog{max-height:min(90dvh,720px);overflow-y:auto}
@media(max-width:1100px){
 .ef-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .ef-files{grid-column:1}
 .ef-mapping{grid-column:2}
 .ef-audit{grid-column:1 / -1}
 .ef-audit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start}
 .ef-audit>.ef-card-heading{grid-column:1 / -1}
 .ef-audit .ef-result{margin-top:0}
 .ef-mapping-head{display:block}
 .ef-switches{margin-top:12px;justify-content:flex-start}
 .ef-map-head,.ef-mapping .mapping-row{grid-template-columns:minmax(86px,1.1fr) 12px minmax(86px,1fr) minmax(82px,.9fr) 24px;gap:5px}
 .ef-map-head>:nth-child(5),.ef-mapping .mapping-option{display:none}
}
@media(max-width:900px){
 .ef-workspace{grid-template-columns:minmax(0,1fr)}
 .ef-files,.ef-mapping,.ef-audit{grid-column:auto}
 .ef-audit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
 .ef-audit>.ef-card-heading{grid-column:1 / -1;margin-bottom:0}
 .ef-header{padding:10px 18px;height:auto;min-height:64px}
 .ef-header-actions{flex-wrap:wrap;justify-content:flex-end}
 .ef-steps{gap:4px;justify-content:space-between}
 .ef-step{flex:1;justify-content:center;gap:6px;padding:9px 4px}
 .step-line{width:15px;flex:0 0 15px}
 .ef-map-head,.ef-mapping .mapping-row{grid-template-columns:minmax(100px,1.1fr) 16px minmax(100px,1fr) minmax(100px,.85fr) minmax(40px,.5fr) 28px;gap:8px}
 .ef-map-head>:nth-child(5),.ef-mapping .mapping-option{display:block}
 .ef-addrow .mapping-builder{grid-template-columns:repeat(3,minmax(0,1fr))}
 .ef-addrow button{grid-column:1 / -1}
}
@media(max-width:600px){
 html,body{max-width:100%;overflow-x:hidden}
 .ef-header{padding:12px 14px;display:grid;grid-template-columns:1fr;align-items:stretch;gap:12px;position:relative}
 .ef-brand{min-width:0;justify-content:flex-start}
 .ef-logo{flex:0 0 33px}
 .ef-brand-link{font-size:23px!important;max-width:none!important}
 .ef-header-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);gap:7px;width:100%}
 .ef-header-actions button,.ef-header-actions #exportBtn{width:100%;min-width:0;min-height:42px;padding:8px 4px!important;font-size:12px;white-space:normal;line-height:1.18;text-align:center}
 .ef-header-actions #exportBtn{font-size:12px!important}
 .ef-shell{padding:12px 12px 26px}
 .ef-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:2px 0 14px}
 .ef-steps .step-line{display:none}
 .ef-steps .ef-step,.ef-steps .ef-step.current{font-size:11px!important;display:flex;flex-direction:column;gap:5px;border-radius:10px;padding:9px 1px;min-height:65px;align-items:center;justify-content:center;text-align:center;white-space:normal}
 .ef-steps .ef-step .step-dot{font-size:12px;width:25px;height:25px;flex:0 0 25px}
 .ef-notice{padding:10px 12px;font-size:12px;line-height:1.5;margin-bottom:14px}
 .ef-workspace{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
 .ef-card,.ef-preview-card{padding:15px 13px;border-radius:12px;width:100%}
 .ef-card-heading{margin-bottom:12px}
 .ef-card-heading h2{font-size:16px}
 .ef-files .source-toolbar{flex-wrap:wrap;gap:8px}
 .ef-files .source-toolbar .btn{min-height:36px}
 .ef-files .source-entry{grid-template-columns:24px minmax(0,1fr) auto}
 .ef-files .source-entry select{grid-column:1/-1;min-width:0;width:100%}
 .ef-files .source-item-actions{grid-column:3;grid-row:1/3;gap:4px}
 .ef-files .twocol{grid-template-columns:1fr;gap:9px}
 .ef-mapping-head{display:block}
 .ef-switches{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0 8px}
 .ef-switches .option-toggle{min-width:0}
 .ef-switches label{font-size:12px;line-height:1.4}
 .ef-map-head{display:none}
 #mappingList{max-height:none;min-height:0;overflow:visible;border:0;border-radius:0}
 .ef-mapping .mapping-empty{padding:27px 12px;border:1px dashed #cfddec;border-radius:10px}
 .ef-mapping .mapping-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;gap:8px;align-items:center;position:relative;padding:14px 12px 12px;border:1px solid #dbe4ed;border-radius:11px;margin:8px 0;background:#fff;min-height:0}
 .ef-mapping .mapping-row .mapping-name{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.4;font-size:12px}
 .ef-mapping .mapping-row .mapping-name:first-child{grid-column:1;grid-row:1;padding-top:17px}
 .ef-mapping .mapping-row .mapping-name:first-child:before{content:'Nguồn';position:absolute;top:8px;left:12px;font-size:10px;color:#73849b;font-weight:800}
 .ef-mapping .mapping-row .mapping-arrow{display:none}
 .ef-mapping .mapping-row .mapping-name:nth-child(3){grid-column:2;grid-row:1;padding-top:17px}
 .ef-mapping .mapping-row .mapping-name:nth-child(3):before{content:'Đích';position:absolute;top:8px;left:calc(50% - 9px);font-size:10px;color:#73849b;font-weight:800}
 .ef-mapping .mapping-row .mapping-type{grid-column:1/3;grid-row:2;min-width:0}
 .ef-mapping .mapping-row .mapping-type:before{content:'Kiểu dữ liệu';display:block;font-size:10px;font-weight:800;color:#73849b;margin:1px 0 5px}
 .ef-mapping .mapping-row .mapping-type select{width:100%;min-height:40px;font-size:13px}
 .ef-mapping .mapping-row .mapping-option{display:none!important}
 .ef-mapping .mapping-row .remove-map{grid-column:3;grid-row:1/3;align-self:center}
 .ef-addrow .mapping-builder{display:grid;grid-template-columns:1fr;gap:10px}
 .ef-addrow button{grid-column:1}
 .ef-addrow .field select{min-height:43px}
 .ef-audit{display:block}
 .ef-audit .ef-result{margin-top:16px}
 .ef-preview-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center}
 .ef-preview-top>.ef-card-heading{grid-column:1}
 .ef-preview-state{grid-column:2;grid-row:1;font-size:10px;padding:5px 7px}
 .ef-preview-tabs{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;gap:3px}
 .ef-tab{padding:8px 2px;font-size:11px;white-space:normal;line-height:1.3;text-align:center}
 .ef-row-preview{width:100%;max-width:100%;min-height:170px;overflow-x:auto;overflow-y:auto;max-height:440px}
 .ef-row-preview table{min-width:700px}
 .ef-preview-bottom{gap:12px;align-items:center;flex-wrap:wrap}
 .ef-settings{margin:12px 0 0;padding:0 12px}
 .ef-settings-grid{display:block}
 .ef-settings-group{margin-bottom:14px}
 .ef-settings-group .twocol{grid-template-columns:1fr}
 #comparePage .top,#historyPage .top{flex-direction:column;align-items:flex-start}
 #comparePage .top h1,#historyPage .top h1{font-size:20px}
 #comparePage .panel,#historyPage .panel{padding:13px}
 #comparePage .layout,#historyPage .layout,#historyPage .history-grid{display:block}
 #comparePage .panel,#historyPage .panel{max-width:100%;overflow-x:auto}
 #comparePage table,#historyPage table{min-width:600px}
 .ef-page-return{min-height:44px}
 .ef-approval-overlay{padding:12px;align-items:center}
 .ef-approval-dialog{padding:20px 17px;border-radius:14px;width:100%;max-height:calc(100dvh - 24px)}
 .ef-approval-title{font-size:18px}
 .ef-approval-desc{font-size:13px}
 .ef-approval-actions{display:grid;grid-template-columns:1fr 1fr}
 .ef-approval-actions button{min-height:44px;min-width:0}
}
@media(max-width:370px){
 .ef-header-actions button,.ef-header-actions #exportBtn{font-size:11px!important}
 .ef-shell{padding-left:9px;padding-right:9px}
 .ef-steps .ef-step,.ef-steps .ef-step.current{font-size:10px!important}
 .ef-preview-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ===== ExcelFlow 4.4.4 popup preview ===== */
.ef-preview-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.ef-preview-tools .ef-tool-btn{position:relative;border:0;background:#2f3136;border-radius:20px;width:64px;height:64px;min-height:64px;padding:0;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(20,24,31,.22)}
.ef-preview-tools .ef-tool-btn::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:-7px;width:28px;height:8px;border-radius:999px;background:rgba(255,255,255,.95);filter:blur(.2px)}
.ef-preview-tools .ef-tool-btn:hover{background:#25272b;transform:translateY(-1px)}
.ef-preview-tools .ef-tool-btn svg{width:26px;height:26px;display:block}
.ef-preview-tools .ef-tool-btn .screen-reader{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ef-preview-modal-backdrop{position:fixed;inset:0;background:rgba(16,26,40,.48);backdrop-filter:blur(3px);z-index:1200;display:none;padding:20px}
.ef-preview-modal-backdrop.show{display:block}
.ef-preview-modal{width:min(1440px,calc(100vw - 28px));height:min(88vh,960px);margin:auto;background:#fff;border-radius:20px;border:1px solid #dce5ef;box-shadow:0 24px 60px rgba(14,25,42,.22);display:flex;flex-direction:column;overflow:hidden}
.ef-preview-modal.fullscreen{width:calc(100vw - 16px);height:calc(100vh - 16px);border-radius:18px}
.ef-modal-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #e7edf5;background:#fbfdff}
.ef-modal-title{display:flex;align-items:center;gap:10px;min-width:0}
.ef-modal-title h3{margin:0;font-size:20px;color:#1a314d;letter-spacing:-.02em}.ef-modal-title p{margin:3px 0 0;font-size:12px;color:#6f7f95}
.ef-modal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ef-modal-actions button{border:1px solid #d7e1ec;background:#fff;border-radius:10px;padding:9px 12px;min-height:38px;color:#304565;font-size:12px;font-weight:700;cursor:pointer}
.ef-modal-actions button:hover{background:#f4f8fc}
.ef-modal-actions .teal{background:#0f8f7f;border-color:#0f8f7f;color:#fff}.ef-modal-actions .teal:hover{background:#0c7b6e}
.ef-modal-toolbar{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(160px,.7fr) auto auto auto;gap:10px;padding:14px 18px;border-bottom:1px solid #e7edf5;background:#fff}
.ef-modal-toolbar .field{min-width:0}.ef-modal-toolbar .field label{display:block;margin-bottom:6px;color:#5a6c82;font-size:11px;font-weight:700}.ef-modal-toolbar input,.ef-modal-toolbar select{width:100%;border:1px solid #d9e3ef;border-radius:10px;padding:10px 12px;min-height:40px}
.ef-modal-toolbar .toolbtn{align-self:end;border:1px solid #d7e1ec;background:#fff;border-radius:10px;padding:10px 12px;min-height:40px;font-size:12px;font-weight:700;cursor:pointer;color:#243b53;line-height:1.2;white-space:nowrap}.ef-modal-toolbar .toolbtn:hover{background:#f4f8fc;color:#1c314a}.ef-modal-toolbar .toolbtn:disabled{opacity:.55;cursor:not-allowed;color:#7b8ba1;background:#f7f9fc}.ef-modal-toolbar .toolbtn.primary{background:#122d46;border-color:#122d46;color:#fff}.ef-modal-toolbar #efModalAdd{background:#eaf8f4;border-color:#cceee2;color:#0a7a63}.ef-modal-toolbar #efModalAdd:hover{background:#def4ec;color:#086a56}.ef-modal-toolbar #efModalEdit{background:#eef5ff;border-color:#d6e5fb;color:#215dba}.ef-modal-toolbar #efModalEdit:hover{background:#e6f0ff;color:#184f9f}.ef-modal-toolbar #efModalDelete{background:#fff3f4;border-color:#f3d5da;color:#b64055}.ef-modal-toolbar #efModalDelete:hover{background:#feecee;color:#9f3147}
.ef-modal-stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid #eef2f7;background:#fcfdff;font-size:12px;color:#617387}
.ef-modal-stats .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f2f7fb;border:1px solid #dde7f2;color:#35506d;font-weight:700}
.ef-modal-body{flex:1;min-height:0;overflow:auto;padding:0 18px 18px;background:#fff}
.ef-modal-tablewrap{min-width:100%;overflow:auto;border:1px solid #e5ebf3;border-radius:14px;margin-top:14px}
.ef-modal-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;background:#fff}
.ef-modal-table th,.ef-modal-table td{padding:10px 12px;border-bottom:1px solid #edf1f6;font-size:13px;vertical-align:top;white-space:nowrap}
.ef-modal-table th{position:sticky;top:0;background:#f8fbfe;color:#415972;font-size:12px;font-weight:800;z-index:1}
.ef-modal-table tr:hover td{background:#fbfdff}
.ef-modal-table tr.is-selected td{background:#eaf8f4!important}
.ef-modal-table .wrap{white-space:normal;min-width:220px;max-width:420px}
.ef-mini-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800}
.ef-mini-badge.import{background:#eaf3ff;color:#1867c9}.ef-mini-badge.matched{background:#e8f8f2;color:#0a7a63}.ef-mini-badge.skipped{background:#f4f5f7;color:#68788a}
.ef-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid #e7edf5;background:#fbfdff;color:#6a7b8f;font-size:12px}
.ef-editor-backdrop{position:fixed;inset:0;background:rgba(17,29,45,.34);display:none;z-index:1300;padding:20px}.ef-editor-backdrop.show{display:block}
.ef-editor{width:min(780px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto;margin:auto;background:#fff;border-radius:18px;border:1px solid #dce5ef;box-shadow:0 18px 48px rgba(14,25,42,.24);padding:18px}
.ef-editor h4{margin:0 0 14px;font-size:18px;color:#19314d}.ef-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ef-editor-grid .full{grid-column:1/-1}
.ef-editor .field label{display:block;margin-bottom:6px;color:#5a6c82;font-size:11px;font-weight:700}.ef-editor .field input,.ef-editor .field select,.ef-editor .field textarea{width:100%;border:1px solid #d9e3ef;border-radius:10px;padding:10px 12px;min-height:40px}.ef-editor textarea{min-height:88px;resize:vertical}
.ef-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.ef-editor-actions button{border:1px solid #d7e1ec;background:#fff;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.ef-editor-actions .primary{background:#0f8f7f;border-color:#0f8f7f;color:#fff}
@media(max-width:980px){.ef-modal-toolbar{grid-template-columns:1fr 1fr 1fr}.ef-modal-toolbar .field:first-child{grid-column:1/-1}}
@media(max-width:640px){.ef-preview-top{gap:10px}.ef-preview-tools{width:100%;margin-left:0}.ef-preview-tools .ef-tool-btn{flex:0 0 auto;width:56px;height:56px;min-height:56px}.ef-modal-backdrop{padding:10px}.ef-preview-modal,.ef-preview-modal.fullscreen{width:calc(100vw - 8px);height:calc(100vh - 8px);border-radius:14px}.ef-modal-header,.ef-modal-toolbar,.ef-modal-footer{padding-left:12px;padding-right:12px}.ef-modal-toolbar{grid-template-columns:1fr 1fr}.ef-modal-toolbar .field:first-child{grid-column:1/-1}.ef-modal-toolbar .toolbtn{width:100%;padding:10px 8px}.ef-modal-body{padding:0 12px 12px}.ef-editor{padding:14px}.ef-editor-grid{grid-template-columns:1fr}}


/* ExcelFlow 4.4.4 — compact preview action */
.ef-preview-top{align-items:center!important}
.ef-preview-tools{width:auto!important;flex:0 0 auto!important;margin-left:auto!important;display:flex!important;align-items:center!important;gap:0!important}
.ef-preview-tools #efOpenPreviewExpand{box-sizing:border-box!important;appearance:none!important;position:static!important;flex:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;max-width:34px!important;max-height:34px!important;padding:0!important;margin:0!important;border:1px solid #dbe3ec!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important;transform:none!important;color:#526780!important;cursor:pointer}
.ef-preview-tools #efOpenPreviewExpand::before,.ef-preview-tools #efOpenPreviewExpand::after{display:none!important;content:none!important}
.ef-preview-tools #efOpenPreviewExpand svg{width:17px!important;height:17px!important;flex:none!important}
.ef-preview-tools #efOpenPreviewExpand svg path{stroke:#526780!important;stroke-width:1.9!important}
.ef-preview-tools #efOpenPreviewExpand:hover{background:#f2f6fa!important;border-color:#bfcbd9!important}
.ef-preview-tools #efOpenPreviewExpand:focus-visible{outline:2px solid #10917b!important;outline-offset:2px}
@media(max-width:640px){.ef-preview-tools{width:auto!important;margin-left:auto!important}.ef-preview-tools #efOpenPreviewExpand{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}}
