:root{--navy:#12324a;--navy2:#0b2539;--blue:#176bd6;--line:#cad8e6;--bg:#eef4f8;--text:#15263a;--muted:#64758a;--green:#16833d;--red:#ca2d2d}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:15px}.topbar{height:64px;background:linear-gradient(110deg,var(--navy2),var(--navy));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 26px}.brand{display:flex;align-items:center;gap:12px;font-size:24px}.brand-icon{font-size:28px}.top-note{opacity:.8}.page{max-width:1780px;margin:0 auto;padding:14px}.steps{display:grid;grid-template-columns:1fr 36px 1fr 36px 1fr 36px 1fr;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 20px;margin-bottom:12px}.step{display:flex;gap:12px;align-items:center}.step>span{width:34px;height:34px;border-radius:50%;background:#52667a;color:#fff;display:grid;place-items:center;font-weight:700}.step.active>span{background:var(--blue)}.step small{display:block;color:var(--muted);margin-top:3px}.arrow{text-align:center;color:#5e7083;font-size:34px}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 22px;margin-bottom:12px}h2{margin:0 0 12px;font-size:22px}h3{margin:14px 0 8px;font-size:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-head.wrap{align-items:flex-start}.section-head p,.fixed-panel p{margin:3px 0;color:var(--muted)}.upload-row{display:flex;gap:12px;align-items:center;margin-bottom:12px}.upload-row input[type=file]{flex:1;border:1px solid var(--line);background:#fff;border-radius:5px;padding:9px}.btn{border:1px solid #b9c9d9;background:#f6f9fc;color:#17324a;border-radius:5px;padding:10px 16px;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.danger{color:var(--red);border-color:#e3a3a3;background:#fff}.btn.small{padding:7px 11px;white-space:nowrap}.btn.check{border-color:var(--blue);color:var(--blue);background:#eef6ff;min-width:210px;font-size:17px}.btn.generate{background:#16913e;color:#fff;border-color:#16913e;min-width:230px;font-size:17px}.btn:disabled{opacity:.45;cursor:not-allowed}.status{padding:10px 14px;border-radius:6px}.status.ok{background:#eaf7ee;color:#126d32}.status.error,.summary.error{background:#fff0f0;color:#a62626}.status.loading,.summary.loading{background:#edf5ff;color:#205f9a}.status.muted,.summary.muted{background:#f2f5f7;color:var(--muted)}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:5px}table{width:100%;border-collapse:collapse;white-space:nowrap}th{background:#e4edf5;text-align:left;font-size:13px;padding:10px 12px;border-right:1px solid #cedbe7;position:sticky;top:0;z-index:1}td{padding:9px 12px;border-top:1px solid #dbe5ed;border-right:1px solid #dbe5ed}.source-table td{max-width:270px;overflow:hidden;text-overflow:ellipsis}.source-table tr.row-excluded td{background:#fff5f5;color:#8b5555}.cleanup-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:14px;margin-top:5px}.cleanup-bar small{display:block;color:var(--muted);margin-top:4px}.source-toolbar{display:flex;justify-content:space-between;align-items:center;margin:12px 0 8px}.source-toolbar label{display:flex;align-items:center;gap:8px}.source-toolbar select{border:1px solid var(--line);border-radius:5px;padding:7px 9px;background:#fff}.pager{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.mapping-table select,.fixed-row select,.fixed-row input{width:100%;min-width:190px;border:1px solid #bfcddd;border-radius:4px;padding:8px;background:#fff}.mapping-table th:nth-child(1){width:8%}.mapping-table th:nth-child(2),.mapping-table th:nth-child(3),.mapping-table th:nth-child(4){width:17%}.mapping-table th:nth-child(5){width:28%}.mapping-table th:nth-child(6){text-align:center;width:8%}.mapping-table td:nth-child(6){text-align:center}.mapping-table td:first-child small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.sample{max-width:250px;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-block;padding:4px 9px;border-radius:5px;font-size:12px;font-weight:700}.pill.yes{background:#ccefd4;color:#146a30}.pill.no{background:#e5eaee;color:#53606d}.actions{display:flex;gap:8px;flex-wrap:wrap}.fixed-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.fixed-row{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;margin-top:9px}.generate-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}.summary{border:1px solid var(--line);border-radius:6px;padding:13px 20px;min-height:54px}.summary.oktext{background:#effaf2;color:#176e34}.errors{margin-top:12px;border:1px solid #efb2b2;background:#fff4f4;color:#8f2323;border-radius:6px;padding:12px;max-height:260px;overflow:auto}.errors ul{margin:8px 0 0;padding-left:22px}.hidden{display:none!important}@media(max-width:950px){.steps{grid-template-columns:1fr;gap:8px}.arrow{display:none}.section-head,.fixed-panel,.generate-row,.cleanup-bar{display:flex;flex-direction:column;align-items:stretch}.upload-row{flex-direction:column;align-items:stretch}.fixed-row{grid-template-columns:1fr}.top-note{display:none}.brand{font-size:19px}.page{padding:8px}.card{padding:14px}}

/* v2.2: mapiranje direktno u zaglavlju izvornog Excela */
.source-col-head{min-width:190px;vertical-align:top;padding:8px 9px}.source-col-letter{font-weight:800;font-size:14px;margin-bottom:6px}.header-map-select{width:100%;min-width:170px;border:1px solid #9db2c6;border-radius:4px;background:#fff;padding:7px 28px 7px 8px;font-weight:600;color:#17324a}.mapping-hint{color:var(--blue);font-weight:600}.auto-code-panel{margin-top:16px;padding:15px 16px;border:1px solid var(--line);border-radius:7px;background:#f8fbfd}.auto-code-title p{margin:5px 0 0 25px;color:var(--muted)}.check-line{display:flex;align-items:center;gap:8px}.check-line input{width:18px;height:18px}.auto-code-fields{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) minmax(220px,.8fr);gap:12px;align-items:end;margin-top:14px}.auto-code-fields label{font-size:13px;font-weight:700}.auto-code-fields input{display:block;width:100%;margin-top:6px;border:1px solid #bfcddd;border-radius:4px;padding:9px;background:#fff;font-size:15px}.auto-code-example{border-left:3px solid var(--blue);padding:7px 12px}.auto-code-example span{display:block;color:var(--muted);font-size:12px}.auto-code-example strong{display:block;margin-top:3px;font-size:16px}.fixed-target-select{width:100%;min-width:190px;border:1px solid #bfcddd;border-radius:4px;padding:8px;background:#fff}@media(max-width:950px){.auto-code-fields{grid-template-columns:1fr}.source-toolbar{align-items:flex-start;gap:8px;flex-wrap:wrap}.mapping-hint{width:100%}}

/* v2.4: obrada više sheetova + sigurno označavanje redova */
.sheet-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:5px 0 0}.sheet-selector{display:flex;align-items:flex-end;gap:14px;min-width:0}.sheet-selector label{font-size:13px;font-weight:700}.sheet-selector select{display:block;margin-top:6px;min-width:300px;max-width:520px;border:1px solid #9db2c6;border-radius:5px;background:#fff;padding:9px 34px 9px 10px;font-size:15px;font-weight:600;color:#17324a}.sheet-progress{display:inline-block;padding:8px 11px;border-radius:5px;background:#eef4f8;color:#41566a;font-weight:700;white-space:nowrap}.btn.sheet-done{border-color:#7fb98f;background:#eef9f1;color:#176e34}.status.warning{background:#fff8df;color:#7b5d00}.select-head,.select-cell{text-align:center!important;min-width:74px;max-width:74px}.row-select-radio{width:19px;height:19px;cursor:pointer}.source-table tbody tr{cursor:pointer}.source-table tbody tr.row-selected td{background:#fff2ad!important;border-top-color:#d9b72f;border-bottom:1px solid #d9b72f}.source-table tbody tr.row-selected td:first-child{box-shadow:inset 4px 0 0 #c18b00}.source-table tbody tr.row-excluded.row-selected td{background:#ffe7b3!important;color:#6a4b20}.source-table tbody tr:hover td{background:#f7fbff}.source-table tbody tr.row-selected:hover td{background:#fff2ad!important}
@media(max-width:950px){.sheet-bar,.sheet-selector{display:flex;flex-direction:column;align-items:stretch}.sheet-selector select{min-width:0;width:100%;max-width:none}.sheet-progress{white-space:normal}}
