{"id":13299,"date":"2026-09-04T12:59:58","date_gmt":"2026-09-04T10:59:58","guid":{"rendered":"https:\/\/www.dapa.hr\/?page_id=13299"},"modified":"2026-09-10T09:46:25","modified_gmt":"2026-09-10T07:46:25","slug":"zamolba-test","status":"publish","type":"page","link":"https:\/\/www.dapa.hr\/en\/zamolba-test\/","title":{"rendered":"Request to issue copies - test version"},"content":{"rendered":"<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cuprum:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n    <style>\n    :root{\n        --dz-gold:#c0b283;\n        --dz-gold-dark:#a3936a;\n        --dz-ink:#2b2b2b;\n        --dz-muted:#6b6b6b;\n        --dz-bg:#faf9f6;\n        --dz-border:#e6e2d8;\n    }\n    .dz-form{max-width:980px;margin:0 auto;font-family:'Cuprum',Arial,sans-serif;font-size:18px;color:var(--dz-ink);}\n    .dz-form fieldset{\n        border:1px solid var(--dz-border);\n        border-top:3px solid var(--dz-gold);\n        border-radius:10px;\n        padding:22px 26px 26px;\n        margin-bottom:22px;\n        background:#fff;\n        box-shadow:0 2px 10px rgba(0,0,0,.04);\n    }\n    .dz-form legend{\n        font-weight:700;\n        padding:0 10px;\n        font-size:15px;\n        letter-spacing:.08em;\n        text-transform:uppercase;\n        color:var(--dz-gold-dark);\n    }\n    .dz-form label{display:block;margin:14px 0 6px;font-weight:500;color:var(--dz-ink);}\n    .dz-form input[type=text],.dz-form input[type=email],.dz-form input[type=tel],.dz-form input[type=date],.dz-form textarea{\n        width:100%;padding:10px 4px;border:none;border-bottom:2px solid var(--dz-border);\n        border-radius:0;box-sizing:border-box;background:transparent;font-family:inherit;font-size:16px;\n        transition:border-color .15s ease;\n    }\n    .dz-form input[type=text]:focus,.dz-form input[type=email]:focus,.dz-form input[type=tel]:focus,.dz-form input[type=date]:focus,.dz-form textarea:focus{\n        outline:none;border-bottom-color:var(--dz-gold);\n    }\n    .dz-form input[readonly]{background:var(--dz-bg);color:var(--dz-muted);cursor:default;}\n    .dz-form input[type=file]{width:100%;padding:10px;border:1px dashed var(--dz-border);border-radius:6px;background:var(--dz-bg);}\n    .dz-checkbox-row{display:flex;align-items:center;gap:10px;margin:3px 0;font-weight:400;}\n    .dz-checkbox-row label{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%;margin:0;}\n    .dz-checkbox-row input{width:auto;accent-color:var(--dz-gold-dark);transform:scale(1.15);}\n    .dz-sub{margin-left:30px;padding-left:14px;border-left:2px solid var(--dz-border);}\n\n    .dz-cat-heading{\n        font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;\n        color:var(--dz-gold-dark);margin:20px 0 10px;padding-bottom:6px;\n        border-bottom:1px solid var(--dz-border);\n    }\n    .dz-cat-heading:first-of-type{margin-top:14px;}\n    .dz-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}\n    .dz-choice-card{\n        display:flex;align-items:flex-start;gap:10px;border:1px solid var(--dz-border);\n        border-radius:8px;padding:12px 14px;cursor:pointer;background:#fff;\n        transition:border-color .15s ease,background .15s ease;font-weight:400;margin:0;\n    }\n    .dz-choice-card:hover{border-color:var(--dz-gold);}\n    .dz-choice-card:has(input:checked){\n        border-color:var(--dz-gold);background:#faf6ec;\n        box-shadow:0 0 0 1px var(--dz-gold) inset;\n    }\n    .dz-choice-card input{margin:3px 0 0;width:18px;height:18px;flex-shrink:0;accent-color:var(--dz-gold-dark);}\n    .dz-choice-title{display:block;font-weight:500;color:var(--dz-ink);}\n    .dz-choice-en{display:none !important;font-size:12px;font-style:italic;color:var(--dz-muted);margin-top:1px;}\n    .dz-sub-inline{grid-column:1 \/ -1;margin:0;border-left:none;padding-left:0;background:var(--dz-bg);border:1px dashed var(--dz-border);border-radius:8px;padding:12px 14px;}\n    .dz-chip-row{display:flex;flex-wrap:wrap;gap:8px;}\n    .dz-chip{\n        display:flex;align-items:center;gap:6px;border:1px solid var(--dz-border);border-radius:20px;\n        padding:6px 14px;cursor:pointer;background:#fff;font-weight:400;margin:0;transition:.15s;\n    }\n    .dz-chip:hover{border-color:var(--dz-gold);}\n    .dz-chip:has(input:checked){border-color:var(--dz-gold);background:#faf6ec;}\n    .dz-chip input{width:auto;accent-color:var(--dz-gold-dark);}\n    @media (max-width:600px){ .dz-choice-grid{grid-template-columns:1fr;} }\n    .dz-hidden{display:none;}\n    .dz-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;}\n    .dz-submit{\n        background:var(--dz-gold);border:none;color:#fff;padding:16px 32px;border-radius:6px;\n        font-family:inherit;font-size:16px;line-height:1.4;font-weight:700;letter-spacing:.05em;text-transform:uppercase;\n        cursor:pointer;transition:background .15s ease;white-space:nowrap;box-sizing:content-box;height:auto;\n        display:block;margin:0 auto;\n    }\n    .dz-submit:hover{background:var(--dz-gold-dark);}\n    .dz-submit:disabled{background:#c9c4b8;cursor:not-allowed;opacity:.7;}\n    .dz-submit:disabled:hover{background:#c9c4b8;}\n    .dz-progress-wrap{\n        position:sticky;top:0;z-index:50;background:#fff;padding:12px 18px;\n        border:1px solid var(--dz-border);border-radius:8px;margin-bottom:22px;\n        box-shadow:0 2px 10px rgba(0,0,0,.08);\n    }\n    .dz-progress-label{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:600;color:var(--dz-ink);margin-bottom:8px;}\n    .dz-progress-label .dz-en{font-size:12px;}\n    #dz-progress-text{font-weight:700;color:var(--dz-gold-dark);}\n    #dz-progress-text.dz-complete{color:#2e7d32;}\n    .dz-progress-bar-bg{background:var(--dz-bg);border-radius:20px;height:10px;overflow:hidden;}\n    .dz-progress-bar-fill{background:var(--dz-gold);height:100%;width:0%;transition:width .25s ease,background .25s ease;border-radius:20px;}\n    .dz-progress-bar-fill.dz-complete{background:#2e7d32;}\n    .dz-en-toggle-corner{\n        display:flex;\n        justify-content:flex-end;\n        align-items:center;\n        margin:0 0 8px;\n    }\n    .dz-en-toggle-row{\n        display:inline-flex;\n        align-items:center;\n        gap:7px;\n        margin:0;\n        padding:0;\n        border:0;\n        background:transparent;\n        box-shadow:none;\n        font-size:12.5px;\n        font-weight:400;\n        color:var(--dz-gold-dark);\n        cursor:pointer;\n        text-align:right;\n        line-height:1.3;\n    }\n    .dz-en-toggle-row input{\n        width:auto;\n        margin:0;\n        accent-color:var(--dz-gold-dark);\n    }\n    .dz-en-toggle-row > span{\n        text-decoration:underline;\n        text-underline-offset:2px;\n    }\n    @media (max-width:600px){\n        .dz-en-toggle-corner{\n            margin-bottom:7px;\n        }\n        .dz-en-toggle-row{\n            font-size:11.5px;\n        }\n    }\n    .dz-steps-overview{\n        display:flex;align-items:center;justify-content:center;flex-wrap:wrap;\n        gap:4px;margin-bottom:6px;font-size:13px;\n    }\n    .dz-step-item{\n        display:flex;align-items:center;gap:6px;color:var(--dz-muted);font-weight:500;\n        padding:5px 8px;border-radius:20px;transition:.2s;\n    }\n    .dz-step-item .dz-step-num{\n        display:inline-flex;align-items:center;justify-content:center;\n        width:19px;height:19px;border-radius:50%;background:var(--dz-border);\n        color:#fff;font-size:11px;font-weight:700;\n    }\n    .dz-step-item.dz-step-active{color:var(--dz-ink);background:#faf6ec;}\n    .dz-step-item.dz-step-active .dz-step-num{background:var(--dz-gold);}\n    .dz-step-item.dz-step-done{color:#2e7d32;}\n    .dz-step-item.dz-step-done .dz-step-num{background:#2e7d32;}\n    .dz-step-arrow{color:var(--dz-border);font-weight:700;}\n    @media (max-width:600px){ .dz-step-item span:not(.dz-step-num){display:none;} }\n    .dz-download-confirmed{border-top-color:#2e7d32 !important;}\n    .dz-en{\n        display:none !important;font-size:12.5px;font-style:italic;font-weight:400;\n        color:var(--dz-muted);letter-spacing:normal;text-transform:none;margin:1px 0 6px;\n    }\n    legend .dz-en{display:block;margin:2px 0 0;font-size:11.5px;}\n    .dz-note{font-size:13.5px;color:var(--dz-muted);margin-top:6px;line-height:1.5;}\n    .dz-note-important{padding:10px 12px;background:#faf6ec;border-left:3px solid var(--dz-gold);border-radius:4px;margin:10px 0 16px;color:var(--dz-ink);}\n    .dz-note-important-hr{margin:0;font-size:13.5px;line-height:1.5;}\n    .dz-note-important .dz-note-important-en{margin:4px 0 0;font-size:12.5px;line-height:1.45;color:var(--dz-muted);}\n    .dz-msg{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-weight:500;}\n    .dz-preview-box{background:var(--dz-bg);border:1px solid var(--dz-border);border-radius:6px;padding:12px 14px;margin:10px 0 16px;font-size:14px;color:var(--dz-ink);}\n    .dz-gdpr-details{margin:0 0 22px;}\n    .dz-gdpr-content{background:#fafaf8;border:1px solid var(--dz-border);border-radius:8px;padding:14px 16px;margin-top:8px;font-size:14.5px;line-height:1.6;color:var(--dz-muted);}\n    .dz-gdpr-content strong{color:var(--dz-ink);font-weight:600;}\n    .dz-gdpr-content ul{margin:6px 0 0;padding-left:18px;}\n    .dz-gdpr-content li{margin-bottom:4px;}\n    .dz-gdpr-footnote{margin:8px 0 0;font-size:11px;opacity:.8;}\n    .dz-msg.ok{background:#eef6ee;color:#2c5a2c;border-left:4px solid #4a8a4a;}\n    .dz-msg.err{background:#fff4f2;color:#8f2f27;border-left:4px solid #c0453a;}\n    .dz-step{\n        background:var(--dz-gold);color:#fff;border-radius:50%;width:28px;height:28px;\n        display:inline-flex;align-items:center;justify-content:center;font-weight:700;\n        margin-right:10px;font-size:14px;vertical-align:middle;\n    }\n    .dz-download-box{\n        max-width:980px;margin-left:auto;margin-right:auto;\n        border:1px solid var(--dz-border);border-top:3px solid var(--dz-gold);border-radius:10px;\n        padding:28px;text-align:center;margin-bottom:18px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04);\n    }\n    .dz-download-btn{\n        display:inline-block;background:var(--dz-gold);color:#fff !important;text-decoration:none;\n        padding:16px 32px;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;\n        margin-top:14px;transition:background .15s ease;line-height:1.4;font-size:15px;\n        white-space:nowrap;box-sizing:content-box;height:auto;font-family:inherit;\n    }\n    .dz-download-btn:hover{background:var(--dz-gold-dark);color:#fff !important;}\n    .dz-download-actions{\n        display:flex;justify-content:center;align-items:stretch;gap:14px;flex-wrap:wrap;margin-top:14px;\n    }\n    .dz-download-actions .dz-download-btn{margin-top:0;}\n    .dz-download-status{\n        max-width:720px;margin:16px auto 0;padding:12px 14px;text-align:left;\n        background:#eef6ee;border:1px solid #cfe3cf;border-left:4px solid #4a8a4a;\n        border-radius:8px;color:#2c5a2c;font-size:13.5px;line-height:1.5;\n    }\n    .dz-download-status[hidden]{display:none !important;}\n    .dz-download-status p{margin:0;}\n    .dz-download-status .dz-en{margin:4px 0 0;color:#557055;}\n    .dz-back-btn{\n        border:0;cursor:pointer;font-family:inherit;appearance:none;-webkit-appearance:none;\n        text-transform:none;letter-spacing:normal;\n    }\n    .dz-form input[type=file]{\n        display:block;width:100%;padding:12px;border:1px dashed var(--dz-border);border-radius:8px;\n        background:var(--dz-bg);font-family:inherit;font-size:15px;color:var(--dz-ink);cursor:pointer;\n        box-sizing:border-box;\n    }\n    \/* Moderni zavr\u0161ni upload \u2013 Korak 8, jedan zajedni\u010dki okvir *\/\n    .dz-step8-frame{\n        max-width:980px;margin:18px auto 0;background:#fff;border:1px solid var(--dz-border);\n        border-top:3px solid var(--dz-gold);border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.04);overflow:hidden;\n    }\n    .dz-step8-heading{\n        margin:0;padding:24px 28px 20px;text-align:center;background:#fff;border:0;border-bottom:1px solid var(--dz-border);\n        border-radius:0;box-shadow:none;\n    }\n    .dz-step8-heading p{margin:0;font-size:18px;line-height:1.45;color:var(--dz-ink);}\n    .dz-step8-heading .dz-en{margin-top:5px;font-size:13px;font-weight:400;color:var(--dz-muted);}\n    @media (max-width:600px){\n        .dz-step8-heading{padding:20px 16px 16px;}\n        .dz-step8-heading p{font-size:16px;}\n    }\n    \/* Jedinstveni informativni blok kroz sve korake *\/\n    .dz-info-note{\n        position:relative;background:#faf8f1;border:1px solid #e5dfcf;border-left:4px solid var(--dz-gold);\n        border-radius:10px;padding:15px 18px 15px 52px;color:var(--dz-ink);line-height:1.55;\n        box-shadow:0 1px 4px rgba(0,0,0,.025);\n    }\n    .dz-info-note::before{\n        content:'i';position:absolute;left:16px;top:16px;width:24px;height:24px;border-radius:50%;\n        background:var(--dz-gold);color:#fff;font-family:Arial,sans-serif;font-size:15px;font-weight:700;\n        line-height:24px;text-align:center;font-style:normal;\n    }\n    .dz-info-note p{margin:0 0 8px;}\n    .dz-info-note p:last-child{margin-bottom:0;}\n    .dz-info-note .dz-en{margin-top:7px;color:var(--dz-muted);font-size:.92em;line-height:1.5;}\n    .dz-info-note a{color:var(--dz-gold-dark);}\n    .dz-info-note-compact{padding-top:12px;padding-bottom:12px;}\n    .dz-info-note-compact::before{top:13px;}\n    @media(max-width:600px){\n        .dz-info-note{padding:13px 14px 13px 46px;border-radius:9px;}\n        .dz-info-note::before{left:13px;top:14px;width:22px;height:22px;line-height:22px;font-size:14px;}\n        .dz-info-note-compact::before{top:12px;}\n    }\n\n    .dz-delivery-note{\n        max-width:980px;margin:0 auto 18px;font-size:14px;\n    }\n    .dz-delivery-note p{margin:0 0 8px;}\n    .dz-delivery-note p:last-child{margin-bottom:0;}\n    .dz-delivery-note ul{margin:8px 0 10px 20px;padding:0;}\n    .dz-delivery-note li{margin:4px 0;}\n    .dz-delivery-note a{color:var(--dz-gold-dark);}\n    .dz-next-steps{\n        max-width:980px;\n        margin:24px auto 0;\n        border:1px solid var(--dz-border);\n        border-radius:10px;\n        background:#fff;\n        overflow:hidden;\n        box-shadow:0 1px 5px rgba(0,0,0,.03);\n    }\n\n    \/* Korak 1: sklopiva uvodna napomena *\/\n    details.dz-step1-intro{\n        margin:0 0 20px;\n        border:1px solid var(--dz-border);\n        border-radius:10px;\n        background:#fff;\n        overflow:hidden;\n        box-shadow:0 1px 5px rgba(0,0,0,.03);\n    }\n    details.dz-step1-intro summary{\n        cursor:pointer;\n        list-style:none;\n        padding:16px 18px;\n        font-weight:700;\n        color:var(--dz-gold-dark);\n    }\n    details.dz-step1-intro summary::-webkit-details-marker{display:none;}\n    .dz-step1-intro-body{\n        padding:17px 20px;\n        border-top:1px solid var(--dz-border);\n        font-size:14px;\n        line-height:1.6;\n        text-align:left;\n        font-weight:400;\n    }\n    .dz-step1-intro-body p{margin:0 0 12px;text-align:left;}\n    .dz-step1-intro-body p:last-child{margin-bottom:0;}\n    .dz-step1-intro-body strong{font-weight:600;color:var(--dz-ink);}\n    .dz-step1-intro-separator{height:1px;background:var(--dz-border);margin:16px 0;}\n    .dz-step1-legal{font-size:13px;color:var(--dz-muted);}\n    .dz-step1-intro-en{margin-top:14px;font-size:12.5px;line-height:1.55;color:var(--dz-muted);font-style:italic;}\n    .dz-step1-intro-en p{margin-bottom:10px;}\n    .dz-step1-legal-en{padding-top:12px;border-top:1px solid var(--dz-border);}\n    @media (max-width:640px){\n        details.dz-step1-intro summary{padding:14px 15px;}\n        .dz-step1-intro-body{padding:15px;font-size:13.5px;}\n    }\n    details.dz-next-steps summary{\n        cursor:pointer;\n        list-style:none;\n        padding:16px 18px;\n        font-weight:700;\n        color:var(--dz-gold-dark);\n        display:flex;\n        justify-content:space-between;\n        align-items:center;\n        gap:14px;\n    }\n    details.dz-next-steps summary::-webkit-details-marker{display:none;}\n    details.dz-next-steps summary::after{content:'+';font-size:22px;line-height:1;font-weight:400;}\n    details.dz-next-steps[open] summary::after{content:'\u2212';}\n    .dz-next-steps summary .dz-en{font-size:12px;font-weight:400;font-style:italic;color:var(--dz-muted);margin:4px 0 0;}\n    .dz-next-steps-body{padding:17px 20px;border-top:1px solid var(--dz-border);font-size:16px;line-height:1.65;}\n    .dz-next-steps-body p{margin:0 0 12px;}\n    .dz-next-steps-body p:last-child{margin-bottom:0;}\n    .dz-next-steps-body h3{margin:0 0 12px;color:var(--dz-gold-dark);font-size:18px;}\n    .dz-next-steps-open{margin-top:22px;}\n    .dz-next-steps-open .dz-next-steps-body{border-top:0;}\n    .dz-upload-mode-hidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;}\n    .dz-modern-upload-card{\n        max-width:none;margin:0;border:0;border-radius:0;padding:28px;background:#fff;box-shadow:none;\n    }\n    .dz-upload-intro{text-align:center;color:var(--dz-muted);font-size:16px;margin:0 0 26px;}\n    .dz-upload-group+.dz-upload-group{margin-top:34px;padding-top:0;}\n    .dz-upload-group-head{display:block;margin-bottom:18px;}\n    .dz-upload-group-head h4{margin:2px 0 4px;font-size:21px;color:var(--dz-ink);text-transform:none;letter-spacing:0;}\n    .dz-upload-group-head p{margin:0;color:var(--dz-muted);font-size:15px;line-height:1.4;}\n    .dz-required{color:var(--dz-gold-dark);}\n    .dz-upload-subtitle{font-weight:700;margin:18px 0 8px;font-size:17px;}\n    .dz-upload-subtitle-spaced{margin-top:22px;}\n    .dz-upload-muted{font-weight:400;color:var(--dz-muted);}\n    .dz-upload-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;}\n    .dz-dropzone{min-height:138px;border:2px dashed #c8bea0;border-radius:11px;background:#fbfaf7;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px;cursor:pointer;transition:.18s ease;color:var(--dz-ink);}\n    .dz-dropzone:hover,.dz-dropzone.dz-dragover{border-color:var(--dz-gold-dark);background:#f6f3e9;}\n    .dz-drop-icon{font-size:34px;line-height:1;color:var(--dz-gold-dark);margin-bottom:7px;}\n    .dz-dropzone strong{font-size:17px;margin-bottom:5px;}\n    .dz-dropzone small{display:block;color:var(--dz-muted);font-size:14px;}\n    .dz-upload-file-slot{margin-top:9px;}\n    .dz-modern-file-row{background:#f2f4f6;border:0;border-radius:9px;padding:12px 14px;margin:7px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;}\n    .dz-modern-file-row .dz-file-name{min-width:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n    .dz-modern-file-size{display:block;color:var(--dz-muted);font-size:13px;font-weight:400;margin-top:2px;}\n    .dz-modern-remove{background:none!important;border:0!important;color:#b44436!important;font-family:inherit!important;font-size:15px!important;font-weight:700!important;padding:6px!important;white-space:nowrap;cursor:pointer;}\n    .dz-second-page-wrap{margin-top:20px;}\n    .dz-upload-limit{margin-top:18px;}\n    .dz-modern-summary{margin:8px 0 18px;text-align:center;}\n    .dz-modern-summary #dz-file-list:empty{display:none;}\n    .dz-modern-summary #dz-total-size{font-size:14px;color:var(--dz-muted);font-weight:600;margin:0;}\n    @media(max-width:640px){\n        .dz-modern-upload-card{padding:20px 15px;}\n        .dz-dropzone{min-height:115px;padding:16px 12px;}\n        .dz-upload-group-head h4{font-size:19px;}\n        .dz-modern-file-row{align-items:flex-start;}\n    }\n\n    .dz-form input[type=file]::-webkit-file-upload-button{\n        background:var(--dz-gold);color:#fff;border:none;padding:10px 20px;border-radius:6px;\n        font-family:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:13px;\n        cursor:pointer;margin-right:14px;transition:background .15s ease;\n    }\n    .dz-form input[type=file]:hover::file-selector-button,\n    .dz-form input[type=file]:hover::-webkit-file-upload-button{background:var(--dz-gold-dark);}\n    @media (max-width:600px){ .dz-cols{grid-template-columns:1fr;} .dz-form{font-size:16px;} }\n\n    .dz-field{position:relative;}\n    .dz-field input,.dz-field textarea{padding-right:32px;}\n    .dz-icon{position:absolute;top:8px;right:6px;font-weight:700;font-size:17px;opacity:0;transition:opacity .15s;pointer-events:none;}\n    .dz-icon.show{opacity:1;}\n    .dz-icon.ok{color:#2e7d32;}\n    .dz-icon.err{color:#c0392b;}\n    .dz-form input.dz-ok,.dz-form textarea.dz-ok{border-bottom-color:#2e7d32;}\n    .dz-form input.dz-err,.dz-form textarea.dz-err{border-bottom-color:#c0392b;}\n    fieldset.dz-group-ok{border-top-color:#2e7d32;}\n    .dz-legend-icon{margin-left:8px;font-size:15px;}\n    .dz-legend-icon.ok{color:#2e7d32;}\n    .dz-inline-icon{margin-left:8px;font-weight:700;font-size:14px;}\n    .dz-inline-icon.ok{color:#2e7d32;}\n    .dz-inline-icon.err{color:#b3261e;}\n    .dz-link-button:hover{color:var(--dz-gold);}\n    .dz-modal-backdrop{\n        position:fixed;inset:0;background:rgba(23,27,32,.50);\n        -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);\n        z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;\n        animation:dzModalFadeIn .16s ease-out;\n    }\n    .dz-modal-backdrop.dz-hidden{display:none;}\n    @keyframes dzModalFadeIn{from{opacity:0}to{opacity:1}}\n    @keyframes dzModalPopIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}\n    .dz-modal{\n        --dz-modal-accent:var(--dz-gold-dark);\n        background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px;max-width:520px;width:100%;\n        padding:0;box-shadow:0 22px 70px rgba(20,25,32,.24),0 3px 12px rgba(20,25,32,.08);\n        max-height:min(86vh,720px);overflow:auto;animation:dzModalPopIn .18s ease-out;outline:none;\n    }\n    .dz-modal.dz-modal-error{--dz-modal-accent:#b43b32;}\n    .dz-modal.dz-modal-warning{--dz-modal-accent:#a18439;}\n    .dz-modal.dz-modal-success{--dz-modal-accent:#2e7d32;}\n    .dz-modal.dz-modal-info{--dz-modal-accent:var(--dz-gold-dark);}\n    .dz-modal-head{display:flex;align-items:flex-start;gap:14px;padding:24px 24px 13px;}\n    .dz-modal-icon{\n        flex:0 0 42px;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;\n        background:color-mix(in srgb,var(--dz-modal-accent) 11%,white);color:var(--dz-modal-accent);\n        font-size:21px;font-weight:800;line-height:1;\n    }\n    .dz-modal-title-wrap{min-width:0;flex:1;padding-top:2px;}\n    .dz-modal h3{margin:0;color:var(--dz-ink);font-size:21px;line-height:1.24;font-weight:700;letter-spacing:0;}\n    .dz-modal h3 .dz-en{\n        display:none;\n        margin:4px 0 0 !important;\n        font-size:12px !important;\n        line-height:1.35;\n        font-weight:400 !important;\n        font-style:italic;\n        color:var(--dz-muted) !important;\n    }\n    .dz-modal-desc{padding:0 24px 4px 80px;font-size:15px;color:var(--dz-ink);line-height:1.58;}\n    .dz-modal-desc p{margin:0 0 10px;}\n    .dz-modal-desc p:last-child{margin-bottom:0;}\n    .dz-modal-desc .dz-en{\n        display:none;\n        font-size:12.5px;\n        line-height:1.5;\n        margin-top:8px;\n        color:var(--dz-muted);\n        font-style:italic;\n        font-weight:400;\n    }\n    .dz-modal-desc ul{margin:10px 0 0;padding-left:20px;}\n    .dz-modal-desc li{margin:4px 0;}\n    .dz-modal-buttons{\n        display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding:16px 24px 22px 80px;\n        border-top:1px solid #efeee9;flex-wrap:wrap;\n    }\n    .dz-modal-btn-secondary,.dz-modal .dz-submit{\n        min-width:104px;box-sizing:border-box;height:auto;margin:0;padding:11px 18px;border-radius:9px;\n        font-family:inherit;font-size:14px;line-height:1.25;font-weight:650;letter-spacing:0;text-transform:none;\n        cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .08s ease;white-space:normal;\n    }\n    .dz-modal-btn-secondary{background:#fff;border:1px solid #d9d6cc;color:var(--dz-ink);}\n    .dz-modal-btn-secondary:hover{background:#faf9f6;border-color:var(--dz-gold-dark);}\n    .dz-modal .dz-submit{display:inline-block;background:var(--dz-modal-accent);border:1px solid var(--dz-modal-accent);color:#fff;}\n    .dz-modal .dz-submit:hover{filter:brightness(.93);}\n    .dz-modal-btn-secondary:active,.dz-modal .dz-submit:active{transform:translateY(1px);}\n    .dz-modal-buttons .dz-en{\n        display:none;\n        font-size:10.5px !important;\n        line-height:1.15;\n        margin:2px 0 0 !important;\n        color:inherit !important;\n        opacity:.86;\n        font-style:italic;\n        font-weight:400 !important;\n    }\n\n    \/* Modali: EN je skriven dok globalni EN prekida\u010d nije uklju\u010den. *\/\n    html.dz-show-en .dz-modal h3 .dz-en,\n    html.dz-show-en .dz-modal-desc .dz-en,\n    html.dz-show-en .dz-modal-buttons .dz-en{\n        display:block !important;\n    }\n\n    @media (max-width:600px){\n        .dz-modal-backdrop{align-items:flex-end;padding:10px;}\n        .dz-modal{max-width:none;border-radius:18px 18px 14px 14px;max-height:88vh;}\n        .dz-modal-head{padding:21px 20px 12px;gap:12px;}\n        .dz-modal-icon{flex-basis:38px;width:38px;height:38px;font-size:19px;}\n        .dz-modal h3{font-size:20px;}\n        .dz-modal-desc{padding:0 20px 2px 70px;font-size:15px;}\n        .dz-modal-buttons{padding:15px 20px 20px 70px;gap:9px;}\n        .dz-modal-btn-secondary,.dz-modal .dz-submit{min-width:0;flex:1;padding:11px 14px;}\n    }\n    @media (max-width:420px){\n        .dz-modal-desc{padding-left:20px;}\n        .dz-modal-buttons{padding-left:20px;}\n    }\n    .dz-file-row{\n        display:flex;align-items:center;justify-content:space-between;gap:10px;\n        padding:8px 12px;border:1px solid var(--dz-border);border-radius:6px;margin-bottom:6px;\n        font-size:14px;background:#fff;\n    }\n    .dz-file-row .dz-file-name{flex:1;word-break:break-all;}\n    .dz-file-row button{\n        background:none;border:1px solid var(--dz-border);color:#b3261e;border-radius:5px;\n        padding:5px 12px;font-family:inherit;font-size:13px;cursor:pointer;white-space:nowrap;\n    }\n    .dz-file-row button:hover{background:#fdecea;}\n    .dz-file-group-label{font-weight:600;margin:10px 0 4px;font-size:13.5px;color:var(--dz-ink);}\n    .dz-total-size-warn{color:#b3261e;}\n    \/* Sve inline validacijske gre\u0161ke imaju isti vizualni tretman. *\/\n    .dz-field-error,\n    .dz-field-error-group{\n        display:block;\n        width:100%;\n        box-sizing:border-box;\n        margin:7px 0 10px;\n        padding:9px 11px;\n        color:#8f2f27;\n        background:#fff4f2;\n        border-left:4px solid #c0453a;\n        border-radius:5px;\n        font-size:13.5px;\n        line-height:1.4;\n        font-weight:500;\n    }\n    .dz-field-error-group{margin-top:7px;}\n    \/* .dz-field-error i .dz-hidden imaju jednaku specifi\u010dnost (jedna klasa) - bez\n       ovog pravila, kasnija deklaracija \"display:block\" iznad uvijek bi pobijedila\n       nad \"display:none\", pa bi poruke o gre\u0161ci ostajale vidljive i kad bi im JS\n       ispravno dodijelio klasu dz-hidden (npr. odmah pri stvaranju elementa, prije\n       ijedne korisni\u010dke interakcije). Kombinacija klasa ima ve\u0107u specifi\u010dnost. *\/\n    .dz-field-error.dz-hidden,\n    .dz-field-error-group.dz-hidden{display:none;}\n    \/* --- Vi\u0161ekora\u010dni wizard: svi podaci ostaju u istom <form> elementu. --- *\/\n    .dz-wizard-panel{display:none;}\n    .dz-wizard-panel.dz-wizard-active{display:block;}\n    .dz-visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important;}\n    .dz-wizard-panel-header{margin:2px 0 18px;text-align:center;}\n    .dz-wizard-panel-header h2{margin:0;color:var(--dz-gold-dark);font-size:22px;font-weight:700;}\n    .dz-wizard-panel-header p{margin:5px 0 0;color:var(--dz-muted);font-size:14px;}\n    .dz-step-label{display:flex;flex-direction:column;align-items:flex-start;line-height:1.12;}\n    .dz-step-label .dz-en{font-size:10.5px;font-weight:400;margin:2px 0 0;line-height:1.08;}\n    .dz-btn-en{font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.1;margin:2px 0 0;}\n    .dz-wizard-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 6px;}\n    .dz-wizard-nav.dz-wizard-nav-end{justify-content:flex-end;}\n    .dz-wizard-nav .dz-submit,\n    .dz-wizard-back{\n        min-width:154px;height:52px;padding:0 26px;box-sizing:border-box;border-radius:6px;\n        font-family:inherit;font-size:16px;line-height:1.2;font-weight:600;letter-spacing:0;text-transform:none;\n        display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:nowrap;cursor:pointer;\n    }\n    .dz-wizard-nav .dz-submit{margin:0;background:var(--dz-gold);color:#fff;border:1px solid var(--dz-gold);}\n    .dz-wizard-nav .dz-submit:hover{background:var(--dz-gold-dark);border-color:var(--dz-gold-dark);}\n    .dz-wizard-back{background:#fff;border:1px solid var(--dz-gold);color:var(--dz-ink);}\n    .dz-wizard-back:hover{background:#faf6ec;border-color:var(--dz-gold-dark);}\n    .dz-wizard-review{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px;}\n    .dz-review-card{border:1px solid var(--dz-border);border-top:3px solid var(--dz-gold);border-radius:9px;background:#fff;padding:14px 18px;position:relative;}\n    .dz-review-card-full{grid-column:1 \/ -1;}\n    .dz-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px;}\n    .dz-review-head h3{margin:0;color:var(--dz-gold-dark);font-size:15px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;}\n    .dz-review-title-en{font-size:11px;font-weight:400;font-style:italic;color:var(--dz-muted);text-transform:none;letter-spacing:normal;margin-top:1px;}\n    .dz-review-edit{flex:0 0 auto;background:none;border:0;color:var(--dz-muted);text-decoration:underline;cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;padding:2px 0;}\n    .dz-review-edit:hover{color:var(--dz-gold-dark);}\n    .dz-review-subtitle{margin:12px 0 4px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dz-gold-dark);opacity:.85;}\n    .dz-review-body>.dz-review-subtitle:first-child{margin-top:2px;}\n    .dz-review-row{display:flex;justify-content:flex-start;align-items:baseline;gap:14px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.05);}\n    .dz-review-row:last-child{border-bottom:0;}\n    .dz-review-label{color:var(--dz-muted);font-size:13px;flex:0 0 42%;line-height:1.4;}\n    .dz-review-value{color:var(--dz-ink);font-size:14.5px;font-weight:500;flex:1;text-align:left;white-space:pre-line;line-height:1.4;}\n    .dz-review-empty{margin:4px 0 0;color:var(--dz-muted);font-style:italic;font-size:13px;}\n    .dz-wizard-intro-hidden{display:none !important;}\n    .dz-wizard-mobile-current{display:none;text-align:center;font-size:13px;font-weight:700;color:var(--dz-gold-dark);margin:0 0 6px;}\n    @media (max-width:900px){ .dz-wizard-review{grid-template-columns:1fr;} }\n    @media (max-width:700px){\n        .dz-review-row{flex-direction:column;align-items:flex-start;gap:2px;}\n        .dz-review-value{text-align:left;}\n        .dz-wizard-nav{flex-direction:column-reverse;align-items:stretch;}\n        .dz-wizard-nav .dz-submit,.dz-wizard-back{width:100%;box-sizing:border-box;text-align:center;}\n        .dz-wizard-mobile-current{display:block;}\n        .dz-steps-overview{gap:3px;}\n        .dz-step-item{padding:4px 5px;}\n        .dz-step-arrow{font-size:11px;}\n    }\n    \n\n    .dz-step1-info{\n        font-size:14px;\n        line-height:1.55;\n    }\n    .dz-step1-info p{\n        margin:0 0 9px;\n    }\n    .dz-step1-info p:last-child{\n        margin-bottom:0;\n    }\n    .dz-step1-info .dz-en{\n        font-size:12px;\n        line-height:1.5;\n        margin-top:10px;\n    }\n    .dz-step1-info .dz-en p{\n        margin:0 0 8px;\n    }\n    .dz-step1-info .dz-en p:last-child{\n        margin-bottom:0;\n    }\n    .dz-step1-info .dz-legal-note{\n        margin-top:12px;\n    }\n    .dz-step1-info .dz-legal-en{\n        font-size:12px;\n        margin-top:8px;\n    }\n\n    .dz-step7-instructions p{\n        margin:0 0 10px;\n    }\n    .dz-step7-instructions p:last-child{\n        margin-bottom:0;\n    }\n\n    \/* Napomene: poravnanje ulijevo *\/\n    .dz-info,\n    .dz-note,\n    .dz-notice,\n    .dz-help,\n    .dz-step7-instructions {\n        text-align: left !important;\n    }\n\n    \/* Korak 1 - sklopivi blok za ru\u010dno ispunjavanje\/predaju obrasca *\/\n    .dz-manual-card{\n        margin:0 0 18px;\n        border:1px solid var(--dz-border);\n        border-radius:12px;\n        background:#fff;\n        overflow:hidden;\n    }\n    .dz-manual-card-header{\n        width:100%;\n        display:flex;\n        align-items:center;\n        justify-content:space-between;\n        gap:16px;\n        padding:16px 22px;\n        border:0;\n        background:#fff;\n        color:var(--dz-gold-dark);\n        font:inherit;\n        font-weight:600;\n        font-size:18px;\n        line-height:1.3;\n        text-align:left;\n        cursor:pointer;\n    }\n    .dz-manual-card-header[aria-expanded=\"true\"]{\n        border-bottom:1px solid var(--dz-border);\n    }\n    .dz-manual-card-heading{\n        min-width:0;\n    }\n    .dz-manual-card-heading .dz-en{\n        display:block;\n        margin-top:2px;\n        font-size:12.5px;\n        font-weight:400;\n        color:var(--dz-muted);\n    }\n    .dz-manual-card-icon{\n        flex:0 0 auto;\n        font-size:20px;\n        line-height:1;\n        font-weight:400;\n        color:var(--dz-gold-dark);\n    }\n    .dz-manual-card-body{\n        padding:20px 22px;\n        text-align:left;\n    }\n    .dz-manual-download{\n        text-align:center;\n        margin:0 0 18px;\n    }\n    .dz-manual-download .dz-download-btn{\n        display:inline-block;\n    }\n    .dz-manual-text{\n        text-align:left;\n    }\n    .dz-manual-text p{\n        margin:0 0 12px;\n        text-align:left;\n    }\n    .dz-manual-text p:last-child{\n        margin-bottom:0;\n    }\n    .dz-manual-en{\n        margin-top:14px;\n        font-size:12.5px;\n        line-height:1.55;\n        color:var(--dz-muted);\n        font-style:italic;\n        text-align:left;\n    }\n    .dz-manual-en p{\n        text-align:left;\n    }\n    @media (max-width:640px){\n        .dz-manual-card-header{\n            padding:14px 15px;\n            font-size:16px;\n        }\n        .dz-manual-card-body{\n            padding:15px;\n        }\n        .dz-manual-download .dz-download-btn{\n            width:100%;\n            box-sizing:border-box;\n            text-align:center;\n        }\n    }\n\n    \/* HR naslov uvijek iznad, EN prijevod uvijek ispod - dosljedno na svim \u0161irinama *\/\n    .dz-preinfo-header,\n    .dz-manual-card-header,\n    .dz-gdpr-header{\n        display:flex !important;\n        align-items:center;\n        justify-content:space-between;\n        gap:16px;\n    }\n    .dz-preinfo-title,\n    .dz-manual-card-heading,\n    .dz-gdpr-title{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        min-width:0;\n        text-align:left;\n    }\n    .dz-preinfo-title > .dz-en,\n    .dz-manual-card-heading > .dz-en,\n    .dz-gdpr-title > .dz-en{\n        display:block;\n        margin:3px 0 0 !important;\n        text-align:left;\n        align-self:flex-start;\n    }\n    .dz-preinfo-icon,\n    .dz-manual-card-icon,\n    .dz-gdpr-icon{\n        flex:0 0 auto;\n        margin-left:auto;\n        align-self:center;\n    }\n\n\n    \/* GDPR blok - sad ista \"kartica\" vizualna obitelj kao \"Prije ispunjavanja\n       zamolbe\" i \"\u017delite li obrazac ispuniti ru\u010dno?\" (rub, zaobljeni kutovi,\n       +\/- znak, HR naslov iznad \/ EN prijevod ispod na svim \u0161irinama). *\/\n    .dz-gdpr-details{\n        margin:0 0 22px;border:1px solid var(--dz-border);border-radius:10px;\n        background:#fff;overflow:hidden;box-shadow:0 1px 5px rgba(0,0,0,.03);\n    }\n    .dz-gdpr-details summary{\n        cursor:pointer;list-style:none;padding:14px 16px;\n        font-weight:700;font-size:13.5px;color:var(--dz-gold-dark);\n    }\n    .dz-gdpr-details summary::-webkit-details-marker{display:none;}\n    .dz-gdpr-header .dz-gdpr-title > .dz-en{font-size:11.5px;font-weight:400;font-style:italic;color:var(--dz-muted);}\n    .dz-gdpr-details[open] summary{border-bottom:1px solid var(--dz-border);}\n\n    \/* Pravna napomena: EN koristi isti font kao HR *\/\n    .dz-step1-intro-legal .dz-en,\n    .dz-step1-intro-body .dz-en.dz-legal-en{\n        font-family: inherit !important;\n        font-size: inherit !important;\n        font-style: normal !important;\n        font-weight: inherit !important;\n        line-height: inherit !important;\n    }\n\n    \/* Vi\u0161i sklopivi naslov za ru\u010dno ispunjavanje - HR i EN imaju dovoljno prostora *\/\n    .dz-manual-card-header{\n        min-height:74px;\n        padding:14px 28px !important;\n        box-sizing:border-box;\n    }\n    .dz-manual-card-heading{\n        gap:4px;\n        justify-content:center;\n    }\n    .dz-manual-card-heading > span:first-child{\n        line-height:1.25;\n    }\n    .dz-manual-card-heading > .dz-en{\n        line-height:1.3;\n        margin-top:0 !important;\n    }\n    @media (max-width:640px){\n        .dz-manual-card-header{\n            min-height:70px;\n            padding:12px 18px !important;\n        }\n    }\n\n    \/* GDPR detalji: jedan zajedni\u010dki okvir, bez unutarnjeg okvira *\/\n    details.dz-gdpr{\n        border:1px solid var(--dz-border) !important;\n        border-radius:12px !important;\n        overflow:hidden;\n        background:#fff;\n    }\n    details.dz-gdpr > summary{\n        border:0 !important;\n        border-radius:0 !important;\n        margin:0 !important;\n        box-shadow:none !important;\n    }\n    details.dz-gdpr[open] > summary{\n        border-bottom:1px solid var(--dz-border) !important;\n    }\n    details.dz-gdpr > .dz-gdpr-body,\n    details.dz-gdpr > div{\n        border:0 !important;\n        border-radius:0 !important;\n        margin:0 !important;\n        box-shadow:none !important;\n    }\n\n    \/* Pravna napomena: EN isti mali font kao HR *\/\n    .dz-step1-intro-en .dz-step1-legal-en{\n        font-family:inherit !important;\n        font-size:14px !important;\n        font-style:normal !important;\n        font-weight:400 !important;\n        line-height:1.55 !important;\n        color:var(--dz-muted) !important;\n    }\n\n    \/* GDPR: samo jedan vanjski okvir, bez okvira oko HR\/EN sadr\u017eaja *\/\n    details.dz-gdpr{\n        border:1px solid var(--dz-border) !important;\n        border-radius:12px !important;\n        overflow:hidden !important;\n        background:#fff !important;\n    }\n\n    details.dz-gdpr > summary{\n        border:0 !important;\n        border-radius:0 !important;\n        margin:0 !important;\n        box-shadow:none !important;\n        background:#fff !important;\n    }\n\n    details.dz-gdpr[open] > summary{\n        border-bottom:1px solid var(--dz-border) !important;\n    }\n\n    details.dz-gdpr .dz-gdpr-body,\n    details.dz-gdpr .dz-gdpr-content,\n    details.dz-gdpr .dz-gdpr-hr,\n    details.dz-gdpr .dz-gdpr-en,\n    details.dz-gdpr .dz-en,\n    details.dz-gdpr > div,\n    details.dz-gdpr section,\n    details.dz-gdpr article{\n        border:0 !important;\n        border-radius:0 !important;\n        box-shadow:none !important;\n        background:transparent !important;\n    }\n\n    details.dz-gdpr .dz-gdpr-body,\n    details.dz-gdpr .dz-gdpr-content,\n    details.dz-gdpr > div{\n        margin:0 !important;\n    }\n\n    details.dz-gdpr .dz-gdpr-body{\n        padding:18px 22px !important;\n    }\n\n    details.dz-gdpr .dz-gdpr-en,\n    details.dz-gdpr .dz-en{\n        margin-top:16px !important;\n        padding-top:16px !important;\n        border-top:1px solid var(--dz-border) !important;\n    }\n\n    details.dz-gdpr summary .dz-en,\n    details.dz-gdpr summary .dz-gdpr-en{\n        margin-top:3px !important;\n        padding-top:0 !important;\n        border-top:0 !important;\n    }\n\n    \/* GDPR FINAL: samo jedan vanjski okvir *\/\n    details.dz-gdpr{\n        border:1px solid var(--dz-border) !important;\n        border-radius:12px !important;\n        overflow:hidden !important;\n        background:#fff !important;\n        padding:0 !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr > summary{\n        margin:0 !important;\n        padding:18px 20px !important;\n        border:0 !important;\n        border-radius:0 !important;\n        background:#fff !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr[open] > summary{\n        border-bottom:1px solid var(--dz-border) !important;\n    }\n\n    details.dz-gdpr > *:not(summary),\n    details.dz-gdpr > *:not(summary) *,\n    details.dz-gdpr .dz-box,\n    details.dz-gdpr .dz-note,\n    details.dz-gdpr .dz-info,\n    details.dz-gdpr .dz-gdpr-body,\n    details.dz-gdpr .dz-gdpr-content,\n    details.dz-gdpr .dz-gdpr-hr,\n    details.dz-gdpr .dz-gdpr-en{\n        border-left:0 !important;\n        border-right:0 !important;\n        border-bottom:0 !important;\n        border-radius:0 !important;\n        box-shadow:none !important;\n        background:transparent !important;\n    }\n\n    \/* Samo jedan sadr\u017eajni blok ispod zaglavlja *\/\n    details.dz-gdpr > *:not(summary){\n        margin:0 !important;\n    }\n\n    \/* HR sadr\u017eaj *\/\n    details.dz-gdpr .dz-gdpr-hr,\n    details.dz-gdpr .dz-gdpr-body,\n    details.dz-gdpr .dz-gdpr-content{\n        padding:18px 20px 0 !important;\n    }\n\n    \/* EN sadr\u017eaj: bez zasebnog okvira; samo razmak i fina razdjelna linija *\/\n    details.dz-gdpr .dz-gdpr-en,\n    details.dz-gdpr > .dz-en,\n    details.dz-gdpr .dz-en.dz-gdpr-en{\n        margin:16px 20px 0 !important;\n        padding:16px 0 18px !important;\n        border-top:1px solid var(--dz-border) !important;\n        border-left:0 !important;\n        border-right:0 !important;\n        border-bottom:0 !important;\n    }\n\n    \/* EN naslov u summaryju ne smije dobiti sadr\u017eajnu liniju *\/\n    details.dz-gdpr > summary .dz-en{\n        margin:3px 0 0 !important;\n        padding:0 !important;\n        border:0 !important;\n    }\n\n    \/* GDPR TRUE SINGLE FRAME - actual class dz-gdpr-details *\/\n    details.dz-gdpr-details{\n        border:1px solid var(--dz-border) !important;\n        border-radius:12px !important;\n        overflow:hidden !important;\n        background:#fff !important;\n        padding:0 !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr-details > summary{\n        margin:0 !important;\n        padding:18px 20px !important;\n        border:0 !important;\n        border-radius:0 !important;\n        background:#fff !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr-details[open] > summary{\n        border-bottom:1px solid var(--dz-border) !important;\n    }\n\n    details.dz-gdpr-details > .dz-gdpr-content{\n        margin:0 !important;\n        padding:18px 20px !important;\n        border:0 !important;\n        border-radius:0 !important;\n        background:transparent !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr-details .dz-gdpr-content > .dz-en{\n        margin:16px 0 0 !important;\n        padding:16px 0 0 !important;\n        border:0 !important;\n        border-top:1px solid var(--dz-border) !important;\n        border-radius:0 !important;\n        background:transparent !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr-details .dz-gdpr-content > *{\n        border-left:0 !important;\n        border-right:0 !important;\n        border-bottom:0 !important;\n        border-radius:0 !important;\n        box-shadow:none !important;\n    }\n\n    details.dz-gdpr-details > summary .dz-en{\n        margin:3px 0 0 !important;\n        padding:0 !important;\n        border:0 !important;\n    }\n\n    \/* Korak 1: ujedna\u010den polo\u017eaj + \/ \u2212 znakova u sklopivim blokovima *\/\n    .dz-preinfo-header,\n    .dz-manual-card-header,\n    .dz-gdpr-header{\n        position:relative;\n        padding-right:54px !important;\n    }\n\n    .dz-preinfo-icon,\n    .dz-manual-card-icon,\n    .dz-gdpr-icon{\n        position:absolute !important;\n        right:22px !important;\n        top:50% !important;\n        transform:translateY(-50%) !important;\n        width:18px;\n        height:18px;\n        display:flex !important;\n        align-items:center;\n        justify-content:center;\n        margin:0 !important;\n        padding:0 !important;\n        line-height:1 !important;\n        font-size:18px !important;\n        font-weight:400 !important;\n        color:var(--dz-gold-dark) !important;\n        text-align:center !important;\n    }\n\n    @media (max-width:640px){\n        .dz-preinfo-header,\n        .dz-manual-card-header,\n        .dz-gdpr-header{\n            padding-right:46px !important;\n        }\n\n        .dz-preinfo-icon,\n        .dz-manual-card-icon,\n        .dz-gdpr-icon{\n            right:16px !important;\n        }\n    }\n\n    \/* Isti hover efekt na svim sklopivim zaglavljima kao na bloku za ru\u010dno ispunjavanje *\/\n    .dz-preinfo-header,\n    .dz-manual-card-header,\n    .dz-gdpr-header{\n        transition:background-color .18s ease, color .18s ease !important;\n    }\n\n    .dz-preinfo-header:hover,\n    .dz-manual-card-header:hover,\n    .dz-gdpr-header:hover{\n        background:#f6f3e9 !important;\n        color:var(--dz-gold-dark) !important;\n    }\n\n    .dz-preinfo-header:hover .dz-preinfo-icon,\n    .dz-manual-card-header:hover .dz-manual-card-icon,\n    .dz-gdpr-header:hover .dz-gdpr-icon{\n        color:var(--dz-gold-dark) !important;\n    }\n\n    \/* Korak 1: ujedna\u010dena visina i poravnanje prva dva sklopiva okvira *\/\n    .dz-preinfo-header,\n    .dz-manual-card-header{\n        min-height:108px !important;\n        padding:18px 54px 18px 24px !important;\n        box-sizing:border-box !important;\n    }\n\n    .dz-preinfo-title,\n    .dz-manual-card-heading{\n        display:flex !important;\n        flex-direction:column !important;\n        justify-content:center !important;\n        align-items:flex-start !important;\n        gap:6px !important;\n        min-height:70px !important;\n        text-align:left !important;\n    }\n\n    .dz-preinfo-title > span:first-child,\n    .dz-manual-card-heading > span:first-child{\n        margin:0 !important;\n        line-height:1.25 !important;\n        text-align:left !important;\n    }\n\n    .dz-preinfo-title > .dz-en,\n    .dz-manual-card-heading > .dz-en{\n        margin:0 !important;\n        line-height:1.3 !important;\n        text-align:left !important;\n        align-self:flex-start !important;\n    }\n\n    .dz-preinfo-icon,\n    .dz-manual-card-icon{\n        top:50% !important;\n        transform:translateY(-50%) !important;\n    }\n\n    @media (max-width:640px){\n        .dz-preinfo-header,\n        .dz-manual-card-header{\n            min-height:96px !important;\n            padding:16px 46px 16px 18px !important;\n        }\n\n        .dz-preinfo-title,\n        .dz-manual-card-heading{\n            min-height:62px !important;\n            gap:4px !important;\n        }\n    }\n\n    \/* Stalni okvir za uklju\u010divanje\/isklju\u010divanje engleskog prijevoda *\/\n    .dz-language-card{\n        margin:0 0 18px;\n        border:1px solid var(--dz-border);\n        border-radius:12px;\n        background:#fff;\n        overflow:hidden;\n    }\n    .dz-language-card-row{\n        min-height:82px;\n        padding:16px 22px;\n        display:flex;\n        align-items:center;\n        justify-content:space-between;\n        gap:18px;\n        cursor:pointer;\n        box-sizing:border-box;\n        transition:background-color .18s ease;\n    }\n    .dz-language-card-row:hover{\n        background:#f6f3e9;\n    }\n    .dz-language-card-text{\n        min-width:0;\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        gap:4px;\n        text-align:left;\n    }\n    .dz-language-card-hr{\n        color:var(--dz-gold-dark);\n        font-size:18px;\n        font-weight:600;\n        line-height:1.25;\n    }\n    .dz-language-card-en{\n        color:var(--dz-muted);\n        font-size:12.5px;\n        font-style:italic;\n        line-height:1.3;\n    }\n    .dz-language-switch{\n        position:relative;\n        flex:0 0 50px;\n        width:50px;\n        height:28px;\n    }\n    .dz-language-switch input{\n        position:absolute;\n        opacity:0;\n        width:1px;\n        height:1px;\n        pointer-events:none;\n    }\n    .dz-language-slider{\n        position:absolute;\n        inset:0;\n        border:1px solid var(--dz-border);\n        border-radius:999px;\n        background:#eceae3;\n        transition:background-color .18s ease,border-color .18s ease;\n    }\n    .dz-language-slider::before{\n        content:\"\";\n        position:absolute;\n        width:22px;\n        height:22px;\n        left:2px;\n        top:2px;\n        border-radius:50%;\n        background:#fff;\n        box-shadow:0 1px 3px rgba(0,0,0,.18);\n        transition:transform .18s ease;\n    }\n    #dz-en-toggle:checked + .dz-language-slider{\n        background:#d8cfb1;\n        border-color:#c9bb8f;\n    }\n    #dz-en-toggle:checked + .dz-language-slider::before{\n        transform:translateX(22px);\n    }\n    #dz-en-toggle:focus-visible + .dz-language-slider{\n        outline:2px solid var(--dz-gold-dark);\n        outline-offset:3px;\n    }\n    @media (max-width:640px){\n        .dz-language-card-row{\n            min-height:76px;\n            padding:14px 16px;\n            gap:12px;\n        }\n        .dz-language-card-hr{\n            font-size:16px;\n        }\n        .dz-language-card-en{\n            font-size:12px;\n        }\n    }\n\n    \/* FINAL: kompaktna i jednaka visina prva tri okvira + ispravan jezi\u010dni toggle *\/\n    .dz-language-card-row,\n    .dz-preinfo-header,\n    .dz-manual-card-header{\n        min-height:84px !important;\n        padding:14px 54px 14px 22px !important;\n        box-sizing:border-box !important;\n    }\n\n    .dz-language-card-row{\n        padding-right:22px !important;\n    }\n\n    .dz-language-card-text,\n    .dz-preinfo-title,\n    .dz-manual-card-heading{\n        display:flex !important;\n        flex-direction:column !important;\n        justify-content:center !important;\n        align-items:flex-start !important;\n        gap:4px !important;\n        min-height:0 !important;\n        text-align:left !important;\n    }\n\n    .dz-language-card-hr,\n    .dz-preinfo-title > span:first-child,\n    .dz-manual-card-heading > span:first-child{\n        margin:0 !important;\n        line-height:1.25 !important;\n    }\n\n    .dz-language-card-en,\n    .dz-preinfo-title > .dz-en,\n    .dz-manual-card-heading > .dz-en{\n        margin:0 !important;\n        line-height:1.3 !important;\n        text-align:left !important;\n    }\n\n    .dz-language-toggle-btn{\n        flex:0 0 auto;\n        display:inline-flex;\n        align-items:center;\n        gap:8px;\n        margin:0;\n        padding:4px 7px;\n        border:1px solid var(--dz-border);\n        border-radius:999px;\n        background:#fff;\n        color:var(--dz-muted);\n        font:inherit;\n        font-size:11px;\n        font-weight:700;\n        line-height:1;\n        cursor:pointer;\n        box-shadow:none;\n        transition:background-color .18s ease,border-color .18s ease,color .18s ease;\n    }\n\n    .dz-language-toggle-btn:hover{\n        background:#f6f3e9;\n        border-color:var(--dz-gold);\n        color:var(--dz-gold-dark);\n    }\n\n    .dz-language-toggle-btn:focus-visible{\n        outline:2px solid var(--dz-gold-dark);\n        outline-offset:3px;\n    }\n\n    .dz-language-toggle-track{\n        position:relative;\n        display:block;\n        width:38px;\n        height:20px;\n        flex:0 0 38px;\n        border-radius:999px;\n        background:#e8e6df;\n        border:1px solid var(--dz-border);\n        transition:background-color .18s ease,border-color .18s ease;\n    }\n\n    .dz-language-toggle-knob{\n        position:absolute;\n        top:2px;\n        left:2px;\n        width:14px;\n        height:14px;\n        border-radius:50%;\n        background:#fff;\n        box-shadow:0 1px 3px rgba(0,0,0,.22);\n        transition:transform .18s ease;\n    }\n\n    .dz-language-toggle-btn[aria-pressed=\"true\"]{\n        border-color:#c9bb8f;\n        color:var(--dz-gold-dark);\n        background:#fbf8ef;\n    }\n\n    .dz-language-toggle-btn[aria-pressed=\"true\"] .dz-language-toggle-track{\n        background:#d8cfb1;\n        border-color:#c9bb8f;\n    }\n\n    .dz-language-toggle-btn[aria-pressed=\"true\"] .dz-language-toggle-knob{\n        transform:translateX(18px);\n    }\n\n    .dz-language-toggle-state{\n        min-width:22px;\n        text-align:center;\n        letter-spacing:.03em;\n    }\n\n    @media (max-width:640px){\n        .dz-language-card-row,\n        .dz-preinfo-header,\n        .dz-manual-card-header{\n            min-height:78px !important;\n            padding-top:12px !important;\n            padding-bottom:12px !important;\n        }\n\n        .dz-language-card-row{\n            padding-left:16px !important;\n            padding-right:16px !important;\n        }\n\n        .dz-preinfo-header,\n        .dz-manual-card-header{\n            padding-left:16px !important;\n            padding-right:46px !important;\n        }\n\n        .dz-language-toggle-btn{\n            gap:6px;\n            padding:4px 6px;\n        }\n    }\n\n    \/* Isti zaseban jezi\u010dni okvir na Koracima 1-8 *\/\n    .dz-language-card-step{\n        margin:0 0 18px !important;\n    }\n    .dz-language-card-step .dz-language-card-en{\n        display:block !important;\n    }\n\n    \/* Globalni jezi\u010dni okvir uvijek iznad progress navigacije *\/\n    .dz-language-card-global{\n        margin:0 0 14px !important;\n    }\n    .dz-language-card-global .dz-language-card-row{\n        min-height:78px !important;\n        padding:12px 22px !important;\n    }\n    #dz-progress-wrap{\n        margin-top:0 !important;\n    }\n    @media (max-width:640px){\n        .dz-language-card-global .dz-language-card-row{\n            min-height:74px !important;\n            padding:12px 16px !important;\n        }\n    }\n\n    \/* Korak 1: jezi\u010dni okvir mora biti prvi, prije uvodnog okvira *\/\n    .dz-language-card-global{\n        margin-top:0 !important;\n        margin-bottom:14px !important;\n    }\n\n    \/* EN label u jezi\u010dnom okviru mora uvijek ostati vidljiv *\/\n    .dz-language-card-global .dz-language-card-en{\n        display:block !important;\n    }\n\n    \/* FIX prijevoda: nadja\u010daj osnovni display:none !important kada je EN uklju\u010den *\/\n    html.dz-show-en .dz-en,\n    html.dz-show-en .dz-choice-en{\n        display:block !important;\n    }\n\n    \/* Oznaka u samom jezi\u010dnom okviru uvijek je vidljiva *\/\n    .dz-language-card-global .dz-language-card-en{\n        display:block !important;\n    }\n\n    \/* EN prikaz - stvarni globalni state je na <html>, jer .dz-wrap ne postoji *\/\n    html.dz-show-en .dz-en[style*=\"display:inline\"],\n    html.dz-show-en .dz-choice-en[style*=\"display:inline\"]{\n        display:inline !important;\n    }\n\n    \/* Jezi\u010dni okvir je globalan i vidljiv na svim koracima, iznad progress navigacije *\/\n    .dz-language-card-global{\n        display:block !important;\n        margin:0 0 14px !important;\n    }\n\n    \/* Napomene: HR i EN koriste isti font, veli\u010dinu i stil *\/\n    .dz-info-note,\n    .dz-info-note p,\n    .dz-info-note li,\n    .dz-info-note .dz-en,\n    .dz-info-note .dz-choice-en,\n    .dz-note,\n    .dz-note p,\n    .dz-note .dz-en,\n    .dz-help,\n    .dz-help p,\n    .dz-help .dz-en{\n        font-family:inherit !important;\n        font-size:14px !important;\n        font-weight:400 !important;\n        line-height:1.55 !important;\n    }\n    .dz-note,\n    .dz-note p,\n    .dz-help,\n    .dz-help p{\n        font-style:normal !important;\n    }\n    .dz-info-note .dz-en,\n    .dz-info-note .dz-choice-en,\n    .dz-note .dz-en,\n    .dz-help .dz-en{\n        font-style:italic !important;\n    }\n\n    .dz-info-note .dz-en,\n    .dz-info-note .dz-choice-en,\n    .dz-note .dz-en,\n    .dz-help .dz-en{\n        color:inherit !important;\n    }\n\n    .dz-info-note strong,\n    .dz-note strong,\n    .dz-help strong{\n        font-weight:600 !important;\n    }\n\n    \/* Ujedna\u010deni DAPA modali za sve statusne poruke *\/\n    .dz-modal-backdrop{\n        background:rgba(25,30,35,.34) !important;\n        backdrop-filter:blur(1.5px);\n    }\n    .dz-modal{\n        border:1px solid rgba(0,0,0,.06) !important;\n        border-radius:16px !important;\n        box-shadow:0 18px 45px rgba(20,25,32,.18) !important;\n        overflow:hidden;\n        max-width:520px;\n    }\n    .dz-modal-head{\n        display:flex;\n        align-items:flex-start;\n        gap:14px;\n        padding:20px 20px 10px !important;\n        border-bottom:0 !important;\n    }\n    .dz-modal-icon{\n        width:38px;\n        height:38px;\n        flex:0 0 38px;\n        border-radius:50%;\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        font-size:16px;\n        font-weight:700;\n        line-height:1;\n    }\n    .dz-modal-title{\n        margin:5px 0 0 !important;\n        font-size:18px !important;\n        line-height:1.25 !important;\n        font-weight:700 !important;\n    }\n    .dz-modal-body{\n        padding:0 20px 19px 72px !important;\n        font-size:14px;\n        line-height:1.55;\n        color:#444;\n    }\n    .dz-modal-body p{\n        margin:0 0 8px;\n    }\n    .dz-modal-body p:last-child{\n        margin-bottom:0;\n    }\n    .dz-modal-body .dz-en{\n        margin-top:7px;\n        font-size:12.5px;\n        line-height:1.45;\n        color:var(--dz-muted);\n        font-style:italic;\n    }\n    .dz-modal-actions{\n        display:flex;\n        justify-content:flex-end;\n        gap:8px;\n        padding:12px 16px !important;\n        border-top:1px solid #eee !important;\n        background:#fff !important;\n    }\n\n    .dz-modal[data-type=\"success\"] .dz-modal-icon{\n        background:#eef7eb;\n        color:#5f8d53;\n    }\n    .dz-modal[data-type=\"warning\"] .dz-modal-icon{\n        background:#fff7df;\n        color:#b28a30;\n    }\n    .dz-modal[data-type=\"error\"] .dz-modal-icon{\n        background:#fff0ee;\n        color:#b85a50;\n    }\n    .dz-modal[data-type=\"info\"] .dz-modal-icon{\n        background:#f4f0e4;\n        color:#9d874d;\n    }\n\n    @media (max-width:640px){\n        .dz-modal{\n            width:calc(100vw - 24px) !important;\n            max-width:none !important;\n        }\n        .dz-modal-head{\n            padding:17px 16px 9px !important;\n        }\n        .dz-modal-body{\n            padding:0 16px 17px !important;\n        }\n        .dz-modal-actions{\n            padding:11px 12px !important;\n        }\n    }\n\n    \/* Mali trajni status nakon zatvaranja uspje\u0161nog modala *\/\n    .dz-status-chip{\n        display:inline-flex;\n        align-items:center;\n        gap:7px;\n        margin:10px 0 0;\n        padding:7px 10px;\n        border:1px solid #cbd9c5;\n        border-radius:999px;\n        background:#f6faf4;\n        color:#42613c;\n        font-size:12.5px;\n        font-weight:600;\n        line-height:1.2;\n    }\n    .dz-status-chip-text{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        line-height:1.15;\n    }\n    .dz-status-chip .dz-en{\n        display:block !important;\n        margin:2px 0 0 !important;\n        font-size:11px;\n        font-weight:400;\n        font-style:italic;\n        color:inherit;\n        opacity:.82;\n    }\n    .dz-status-chip::before{\n        content:\"\u2713\";\n        width:18px;\n        height:18px;\n        border-radius:50%;\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        background:#5f8d53;\n        color:#fff;\n        font-size:11px;\n        font-weight:700;\n    }\n\n    \/* Zavr\u0161ni gumb: vi\u0161e zraka od sadr\u017eaja iznad i manji font *\/\n    #dz-submit,\n    .dz-submit-btn,\n    button[name=\"dz_submit\"],\n    button[type=\"submit\"].dz-final-submit{\n        margin-top:28px !important;\n        font-size:16px !important;\n        line-height:1.2 !important;\n        letter-spacing:.01em !important;\n    }\n\n    \/* Zavr\u0161ni gumb mora biti jasno odvojen od okvira Koraka 8 *\/\n    #dz-step3-submit{\n        margin:32px auto 30px !important;\n        display:flex !important;\n        width:max-content;\n        position:relative;\n        z-index:1;\n    }\n\n\n    #dz-step3-submit{\n        flex-direction:column;\n        align-items:center;\n        justify-content:center;\n        line-height:1.15;\n    }\n    #dz-step3-submit .dz-en{\n        display:block !important;\n        margin:3px 0 0 !important;\n        font-size:11px !important;\n        line-height:1.1;\n        font-weight:400 !important;\n        font-style:italic;\n    }\n\n    .dz-next-steps-summary-text{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        min-width:0;\n        line-height:1.2;\n    }\n    .dz-next-steps-summary-text .dz-en{\n        display:block !important;\n        margin:4px 0 0 !important;\n        font-size:12px !important;\n        line-height:1.25;\n        font-weight:400 !important;\n        font-style:italic;\n        color:var(--dz-muted) !important;\n    }\n\n    \/* Dodatni dokumenti: zatvoreno po defaultu *\/\n    .dz-additional-docs{\n        margin-top:18px;\n        border:1px solid #e2ddcf;\n        border-radius:12px;\n        background:#fff;\n        overflow:hidden;\n    }\n    .dz-additional-docs > summary{\n        position:relative;\n        display:flex;\n        flex-direction:column;\n        gap:3px;\n        padding:16px 46px 16px 18px;\n        cursor:pointer;\n        list-style:none;\n        user-select:none;\n    }\n    .dz-additional-docs > summary::-webkit-details-marker{\n        display:none;\n    }\n    .dz-additional-docs > summary::after{\n        content:\"+\";\n        position:absolute;\n        right:18px;\n        top:50%;\n        transform:translateY(-50%);\n        color:#9d874d;\n        font-size:22px;\n        font-weight:500;\n        line-height:1;\n    }\n    .dz-additional-docs[open] > summary::after{\n        content:\"\u2212\";\n    }\n    .dz-additional-docs-title{\n        font-weight:700;\n        font-size:16px;\n        color:#8f7946;\n    }\n    .dz-additional-docs-subtitle{\n        font-size:12.5px;\n        color:#6e6e6e;\n        font-weight:400;\n    }\n    .dz-additional-docs-body{\n        padding:0 18px 18px;\n        border-top:1px solid #eee9dc;\n    }\n    .dz-additional-docs > summary:hover{\n        background:#fbfaf6;\n    }\n\n    \/* Ispravak: cijela grupa dodatnih dokumenata nalazi se unutar sklopivog okvira *\/\n    .dz-upload-group-collapsible{\n        border:0 !important;\n        padding:0 !important;\n        background:transparent !important;\n        box-shadow:none !important;\n    }\n    .dz-upload-group-collapsible .dz-additional-docs{\n        margin:0;\n    }\n    .dz-additional-docs-body{\n        padding:18px !important;\n        border-top:1px solid #eee9dc;\n    }\n    .dz-additional-docs-intro{\n        margin:0 0 6px;\n    }\n\n    \/* Nakon success modala ostaje samo mali status da je PDF spreman *\/\n    .dz-pdf-ready-status{\n        margin:14px auto 0 !important;\n        width:max-content;\n        max-width:100%;\n    }\n\n    \/* Koraci 7 i 8: engleski prijevod uvijek ide ispod hrvatskog teksta. *\/\n    #dz-download-box .dz-en,\n    #dz-step7-content .dz-en{\n        display:block;\n    }\n    #dz-download-box .dz-btn-en,\n    #dz-step7-content .dz-btn-en{\n        display:block;\n    }\n    .dz-step78-en-below{\n        display:block !important;\n        margin-top:2px;\n    }\n<\/style>\n\n        <div id=\"dz-main-content\">\n    \n    <form class=\"dz-form\" id=\"dz-step1-form\" method=\"post\" action=\"https:\/\/www.dapa.hr\/wp-admin\/admin-post.php\" enctype=\"multipart\/form-data\">\n        <input type=\"hidden\" name=\"action\" value=\"dz_submit_zamolba\">\n        <input type=\"hidden\" name=\"dz_nonce\" value=\"20dea08af9\">\n\n        <div class=\"dz-language-card dz-language-card-global\">\n            <div class=\"dz-language-card-row\">\n                <span class=\"dz-language-card-text\">\n                    <span class=\"dz-language-card-hr\">Show English translation<\/span>\n                    <span class=\"dz-language-card-en\" lang=\"en\">Show English translation<\/span>\n                <\/span>\n                <button type=\"button\" class=\"dz-en-toggle-step dz-language-toggle-btn\" aria-pressed=\"false\" aria-label=\"Show English translation\">\n                    <span class=\"dz-language-toggle-track\" aria-hidden=\"true\">\n                        <span class=\"dz-language-toggle-knob\"><\/span>\n                    <\/span>\n                    <span class=\"dz-language-toggle-state\">OFF<\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n\n        <details class=\"dz-step1-intro\" open>\n            <summary class=\"dz-preinfo-header\">\n                <span class=\"dz-preinfo-title\">\n                    <span>Before making a request<\/span>\n                    <span class=\"dz-en\" lang=\"en\">Before completing the request<\/span>\n                <\/span>\n                <span class=\"dz-preinfo-icon\" aria-hidden=\"true\">\u2212<\/span>\n            <\/summary>\n            <div class=\"dz-step1-intro-body\">\n                <div class=\"dz-step1-intro-hr\">\n                    <p><strong>Before filling in the application form, make sure that you have the basic information necessary to find the material.<\/strong><\/p>\n                    <p>State Archives in Pazin (hereinafter: DAPA) does not conduct extensive genealogical research, making family trees or research that requires examination of a large amount of material. Such research can be conducted by users independently in the DAPA reading room, with prior registration and in accordance with the rules of use of archives.<\/p>\n                    <p>DAPA employees will provide information about the available material, refer the user to the appropriate funds and collections and provide expert instructions for the use of the material in the reading room.<\/p>\n                    <p>Part of the civil registers is also available through the web service <a href=\"https:\/\/www.familysearch.org\" target=\"_blank\" rel=\"noopener\">FamilySearch<\/a>.<\/p>\n                    <p>Fields marked with an asterisk (*) are mandatory. For the data needed to find the material, please provide as complete and accurate information as possible. Leave the starless fields blank if you don't know the information.<\/p>\n                    <p>If you do not have the basic data needed to find the material, DAPA may instruct you to conduct the research in person in the reading room.<\/p>\n                <\/div>\n\n                <div class=\"dz-step1-intro-separator\" aria-hidden=\"true\"><\/div>\n\n                <p class=\"dz-step1-legal\">The issue of copies is regulated by the Archives and Archives Act (OG 61\/18, 98\/19, 114\/22, 36\/24), the Rules on the use of public archives (OG 121\/19) and the General Administrative Procedure Act (OG 47\/09, 110\/21).<\/p>\n\n                <div class=\"dz-en dz-step1-intro-en\" lang=\"en\">\n                    <p><strong>Before completing the request form, please make sure that you have the basic information needed to locate the archival material.<\/strong><\/p>\n                    <p>The State Archive in Pazin (DAPA) does not carry out genealogical research, family-tree research, or research applied the examination of large criteria of archival material. Such research may be carried out bodies in DAPA's reading room, subject to prior registration and the rules governing the use of archival material.<\/p>\n                    <p>DAPA staff will provide information on available archival material, direct users to the appropriate fonds and collections, and provide professional guidance on using the material in the reading room.<\/p>\n                    <p>Some civil registers are also available through <a href=\"https:\/\/www.familysearch.org\" target=\"_blank\" rel=\"noopener\">FamilySearch<\/a>.<\/p>\n                    <p>Fields marked with an asterisk (*) are required. For information needed to locate archival material, please provide as complete and accurate information as possible. Leave fields without an asterisk blank if you do not know the information.<\/p>\n                    <p>If you do not have the basic information required to locate the archival material, DAPA may advise you to carry out the research in person in the reading room.<\/p>\n                    <p class=\"dz-step1-legal-en\">The issuance of documents is regulated by the Archival Material and Archives Act (NN 61\/18, 98\/19, 114\/22, 36\/24), the Ordinance on the Use of Public Archival Material (NN 121\/19), and the General Administrative Procedure Act (NN 47\/09, 110\/21).<\/p>\n                <\/div>\n            <\/div>\n        <\/details>\n\n        <div class=\"dz-manual-card\">\n            <button type=\"button\" id=\"toggle-obrazac-off\" class=\"dz-manual-card-header\" aria-expanded=\"false\" aria-controls=\"opis-obrasca-off\">\n                <span class=\"dz-manual-card-heading\">\n                    <span>Do you want to fill out the form manually?<\/span>\n                    <span class=\"dz-en\" lang=\"en\">Would you prefer to complete the form manually?<\/span>\n                <\/span>\n                <span class=\"dz-manual-card-icon\" aria-hidden=\"true\">+<\/span>\n            <\/button>\n\n            <div id=\"opis-obrasca-off\" class=\"dz-hidden dz-manual-card-body\">\n                <div class=\"dz-manual-download\">\n                    <a href=\"https:\/\/www.dapa.hr\/wp-content\/uploads\/zamolba.pdf\" target=\"_blank\" rel=\"noopener\" class=\"dz-download-btn\">Download the form<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Download the form<\/span><\/a>\n                <\/div>\n\n                <div class=\"dz-manual-text\">\n                    <p>You can submit the manually completed form in person at the DAPA Reception Office (Vladimira Nazora 3, 52000 Pazin), by post to the same address, by fax to 052\/624-472 or by e-mail to <a href=\"mailto:jasna.vlahovic@dapa.hr\">jasna.vlahovic@dapa.hr<\/a>.<\/p>\n                    <p>If you submit your request remotely and the availability deadlines for the requested material have not expired, please attach a copy of the identity document for the request related to you, and for the request related to another person, proof of legal interest. If you are not sure if an attachment is needed, DAPA will request it later if necessary.<\/p>\n\n                    <div class=\"dz-en dz-manual-en\" lang=\"en\">\n                        <p>A manually completed form may be submitted in person at the DAPA reception office (Vladimira Nazora 3, 52000 Pazin), sent by post to the address itself, by fax to 052\/624-472, or by e-mail to <a href=\"mailto:jasna.vlahovic@dapa.hr\">jasna.vlahovic@dapa.hr<\/a>.<\/p>\n                        <p>If the request is submitted remotely and the access restriction period for the requested archival material has not extended, attach a copy of an identification document for a request concerning yourself, or proof of legal interest for a request concerning another person. If you are unsure you an attachment is required, DAPA will request it if necessary.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        \n\n        <div class=\"dz-progress-wrap\" id=\"dz-progress-wrap\">\n            <div class=\"dz-wizard-mobile-current\" id=\"dz-wizard-mobile-current\"><span id=\"dz-wizard-mobile-current-hr\">Step 1 of 8 \u2014 Applicant<\/span><span class=\"dz-en\" id=\"dz-wizard-mobile-current-en\" lang=\"en\" style=\"display:block;margin:2px 0 0;\">Step 1 of 8 \u2014 Applicant<\/span><\/div>\n            <div class=\"dz-steps-overview\" id=\"dz-steps-overview\">\n                <span class=\"dz-step-item dz-step-active\" data-step=\"1\"><span class=\"dz-step-num\">1<\/span><span class=\"dz-step-label\"><span>Applicant<\/span><span class=\"dz-en\" lang=\"en\">Applicant<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"2\"><span class=\"dz-step-num\">2<\/span><span class=\"dz-step-label\"><span>Application<\/span><span class=\"dz-en\" lang=\"en\">Request<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"3\"><span class=\"dz-step-num\">3<\/span><span class=\"dz-step-label\"><span>Data<\/span><span class=\"dz-en\" lang=\"en\">Details<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"4\"><span class=\"dz-step-num\">4<\/span><span class=\"dz-step-label\"><span>Purpose and relationship<\/span><span class=\"dz-en\" lang=\"en\">Purpose &amp; relationship<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"5\"><span class=\"dz-step-num\">5<\/span><span class=\"dz-step-label\"><span>Payer<\/span><span class=\"dz-en\" lang=\"en\">Payer and signer<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"6\"><span class=\"dz-step-num\">6<\/span><span class=\"dz-step-label\"><span>Overview<\/span><span class=\"dz-en\" lang=\"en\">Review<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"7\"><span class=\"dz-step-num\">7<\/span><span class=\"dz-step-label\"><span>Form<\/span><span class=\"dz-en\" lang=\"en\">Form<\/span><\/span><\/span>\n                <span class=\"dz-step-arrow\">\u2192<\/span>\n                <span class=\"dz-step-item\" data-step=\"8\"><span class=\"dz-step-num\">8<\/span><span class=\"dz-step-label\"><span>Sending<\/span><span class=\"dz-en\" lang=\"en\">Submit<\/span><\/span><\/span>\n            <\/div>\n            <div style=\"display:none;\">\n                <span id=\"dz-progress-text\">0%<\/span>\n                <div class=\"dz-progress-bar-bg\"><div class=\"dz-progress-bar-fill\" id=\"dz-progress-fill\"><\/div><\/div>\n            <\/div>\n        <\/div>\n\n        <fieldset>\n            <legend class=\"dz-visually-hidden\">Applicant\u2019s details<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Applicant details<\/span><\/legend>\n\n            <details class=\"dz-gdpr-details\">\n                <summary class=\"dz-gdpr-header\">\n                    <span class=\"dz-gdpr-title\">\n                        <span>Detailed information on the processing of personal data<\/span>\n                        <span class=\"dz-en\" lang=\"en\">Detailed information about personal data processing<\/span>\n                    <\/span>\n                    <span class=\"dz-gdpr-icon\" aria-hidden=\"true\">+<\/span>\n                <\/summary>\n                <div class=\"dz-gdpr-content\">\n                    <strong>Processing of personal data:<\/strong>\n                    <ul>\n                        <li><strong>Controller:<\/strong> State Archives in Pazin (DAPA), Vladimira Nazora 3, 52000 Pazin.<\/li>\n                        <li><strong>Purpose of processing:<\/strong> the receipt, processing and resolution of this request for the issuance of copies of archives, including the verification of the identity\/legal interest of the applicant where legally required.<\/li>\n                        <li><strong>Legal basis:<\/strong> the performance of a task carried out in the public interest or of official authority vested in the controller (Article 6(1)(e) of the General Data Protection Regulation), in conjunction with the Archives and Archives Act, the Rules on the use of public archives and the General Administrative Procedure Act.<\/li>\n                        <li><strong>Types of data:<\/strong> personal data provided in this form (name and surname\/name, address, contact details, OIB if assigned) and copies of identification documents and\/or proof of legal interest attached in the final step, if attached.<\/li>\n                        <li><strong>Recipients:<\/strong> authorised DAPA staff involved in the handling of the request; the data are not passed on to third parties outside of this procedure, except where required by law.<\/li>\n                        <li><strong>Retention period:<\/strong> data and attachments are kept for as long as necessary to resolve the request and any subsequent verification, in accordance with DAPA's internal rules on documentation retention.<\/li>\n                        <li><strong>Your rights:<\/strong> you have the right to request access to, rectification or erasure of your data, restriction of processing and to object, in accordance with the General Data Protection Regulation; For all questions and requests, please contact DAPA at the following contacts: <a href=\"https:\/\/www.dapa.hr\/en\/pravila-o-privatnosti\/\" target=\"_blank\" rel=\"noopener\">Privacy Policy page<\/a>.<\/li>\n                        <li><strong>Data Protection Officer:<\/strong> <a href=\"mailto:karmen.markezic@dapa.hr\">karmen.markezic@dapa.hr<\/a>.<\/li>\n                        <li><strong>Right to complain:<\/strong> if you believe that the processing of your data is contrary to the regulations, you have the right to lodge a complaint with the Personal Data Protection Agency (AZOP).<\/li>\n                    <\/ul>\n                    <p class=\"dz-gdpr-footnote\">This note supplements DAPA's general privacy policy specific to this form.<\/p>\n                <\/div>\n                <p class=\"dz-en dz-gdpr-content\" lang=\"en\">\n                    <strong>Personal data processing:<\/strong> Controller: State Archive in Pazin (DAPA), Vladimira Nazora 3, 52000 Pazin. Purpose: receiving, processing and resolving this request for documents of archival material, including verifying the applicant's identity\/legal interest where required. Legal basis: performance of a task carried out in the public interest \/ exercise of official authority vested in the controller (GDPR Art. 6(1)(e)), in conjunction with the Archival Material and Archives Act, the Ordinance on the Use of Public Archival Material, and the General Administrative Procedure Act. Data types: personal data provided in this form, plus any identification documents or proof of legal interest attached in the final step. Recipients: quite DAPA staff involved in processing the request; data is not shared with third parties outside this procedure except as required by law. Retention: data and attachments are kept as long as necessary to resolve the request and any ethical verification, per DAPA's internal document-retention rules. Your rights: you may request access, correction, or deletion of your data, restriction of processing, or lodge an objection, in accordance with the GDPR; for any questions or requests, contact DAPA via the details on the privacy policy page. Data Protection Officer: karmen.markezic@dapa.hr. Right to lodge a complaint: if you believe the processing of your data is unlawful, you have the right to lodge a complaint with the Croatian Personal Data Protection Agency (AZOP).\n                <\/p>\n            <\/details>\n\n            <div class=\"dz-checkbox-row\">\n                <label>\n                    <input type=\"checkbox\" id=\"podnositelj-pravna-osoba\" name=\"podnositelj_pravna_osoba\" value=\"1\">\n                    The applicant is a legal person <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(the applicant is a legal entity)<\/span>\n                <\/label>\n            <\/div>\n            <p class=\"dz-note\">If the request is made by a legal person, please tick this option. The fields of the form will be automatically adapted to the information required for the legal person.<\/p>\n            <p class=\"dz-en\" lang=\"en\">If the request is submitted by a legal entity, select this option. The form fields will adjust to the information required for a legal entity.<\/p>\n\n            <label id=\"dz-lbl-ime_prezime-label\" for=\"dz-lbl-ime_prezime\">Name and surname *<\/label><span class=\"dz-en\" id=\"dz-lbl-ime_prezime-en\" lang=\"en\">First name and surname<\/span>\n            <input type=\"text\" id=\"dz-lbl-ime_prezime\" name=\"ime_prezime\" required autocomplete=\"name\">\n\n            <div id=\"grupa-podnositelj-kontakt\" class=\"dz-hidden\" style=\"margin-top:10px;\">\n                <label for=\"dz-lbl-podnositelj_kontakt\">Name of contact person *<\/label><span class=\"dz-en\" lang=\"en\">Name of the contact person<\/span>\n                <input type=\"text\" id=\"dz-lbl-podnositelj_kontakt\" name=\"podnositelj_kontakt\" data-req=\"1\" required autocomplete=\"name\">\n            <\/div>\n\n            <label for=\"dz-lbl-ulica_broj\">Address *<\/label><span class=\"dz-en\" lang=\"en\">Address<\/span>\n            <input type=\"text\" id=\"dz-lbl-ulica_broj\" name=\"ulica_broj\" required autocomplete=\"street-address\">\n\n            <label for=\"drzava-podnositelj\">Country *<\/label><span class=\"dz-en\" lang=\"en\">Country<\/span>\n            <input type=\"text\" name=\"drzava\" value=\"Hrvatska\" required id=\"drzava-podnositelj\" autocomplete=\"country-name\">\n\n            <label for=\"ppt-mjesto-podnositelj\">Postcode and town\/city *<\/label><span class=\"dz-en\" lang=\"en\">Postal code and place\/city<\/span>\n            <input type=\"text\" name=\"postanski_mjesto\" id=\"ppt-mjesto-podnositelj\" pattern=\"\\d{5}\\s+\\S.+\" title=\"Enter in the form: 52000 Pazin (5 digits, space, place name)\" required>\n            <p class=\"dz-note\" id=\"ppt-mjesto-podnositelj-note\">Enter the postcode and place in the form of: 52000 Pazin.<\/p>\n            <p class=\"dz-en\" id=\"ppt-mjesto-podnositelj-note-en\" lang=\"en\">Enter the become code and place in the following format: 52000 Pazin.<\/p>\n\n            <div class=\"dz-cols\">\n                <div>\n                    <label id=\"oib-label\" for=\"oib-podnositelj\">Personal Identification Number (PIN) <span id=\"oib-star\">*<\/span><\/label><span class=\"dz-en\" lang=\"en\">Personal Identification Number (PIN)<\/span>\n                    <input type=\"text\" name=\"oib\" pattern=\"\\d{11}\" title=\"OIB must have exactly 11 digits\" maxlength=\"11\" inputmode=\"numeric\" id=\"oib-podnositelj\" required>\n                    <p class=\"dz-note\" id=\"oib-note\">Mandatory if your PIN has been assigned to you.<\/p>\n                    <p class=\"dz-en\" id=\"oib-note-en\" lang=\"en\">Mandatory if you have been selected an OIB.<\/p>\n                    <div class=\"dz-checkbox-row\" id=\"grupa-nema-oib\" style=\"margin-top:6px;\">\n                        <label><input type=\"checkbox\" id=\"nema-oib\" name=\"nema_oib\" value=\"1\"> I don't have an OIB assigned <span class=\"dz-en\" lang=\"en\" style=\"display:inline;margin:0;\">(I have not been selected an OIB)<\/span><\/label>\n                    <\/div>\n                    <div id=\"grupa-strani-pravni-id\" class=\"dz-hidden\" style=\"margin-top:10px;\">\n                        <label for=\"dz-lbl-strani_pravni_id\">Tax or registration number in the country of establishment *<\/label><span class=\"dz-en\" lang=\"en\">Tax or registration number in the country of establishment<\/span>\n                        <input type=\"text\" id=\"dz-lbl-strani_pravni_id\" name=\"strani_pravni_id\" data-req=\"1\" required autocomplete=\"off\">\n                        <p class=\"dz-note\">For a foreign legal person, enter the tax, VAT or registration number assigned to it in the country of establishment. Enter the Croatian OIB above only if the legal person has been assigned.<\/p>\n                        <p class=\"dz-en\" lang=\"en\">For a foreign legal entity, enter the tax, VAT or registration number listed in its country of establishment. Enter the Croatian OIB above only if one has been selected.<\/p>\n                    <\/div>\n                <\/div>\n                <div id=\"grupa-broj-iskaznice\">\n                    <label for=\"dz-lbl-broj_iskaznice\">ID or passport number<\/label><span class=\"dz-en\" lang=\"en\">ID card or passport number<\/span>\n            <input type=\"text\" id=\"dz-lbl-broj_iskaznice\" name=\"broj_iskaznice\">\n                <\/div>\n            <\/div>\n\n            <div class=\"dz-cols\">\n                <div>\n                    <label for=\"dz-lbl-telefon\">Phone<\/label><span class=\"dz-en\" lang=\"en\">Phone<\/span>\n            <input type=\"tel\" id=\"dz-lbl-telefon\" name=\"telefon\" autocomplete=\"tel\">\n                <\/div>\n                <div>\n                    <label for=\"dz-lbl-email\">E-mail *<\/label><span class=\"dz-en\" lang=\"en\">E-mail<\/span>\n            <input type=\"email\" id=\"dz-lbl-email\" name=\"email\" required autocomplete=\"email\">\n                <\/div>\n            <\/div>\n\n            <label for=\"dz-lbl-datum\">Date of application *<\/label><span class=\"dz-en\" lang=\"en\">Date of submission<\/span>\n            <input type=\"text\" id=\"dz-lbl-datum\" name=\"datum\" pattern=\"\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\.?\" readonly required>\n            <p class=\"dz-note\">Automatically set to today's date.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Automatically set to today's date.<\/p>\n        <\/fieldset>\n\n        <fieldset>\n            <legend>Type of request<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Subject of the request<\/span><\/legend>\n            <div class=\"dz-note-important dz-info-note\" role=\"note\">\n                <p class=\"dz-note-important-hr\">If you are looking for data for more than one person, a separate request must be completed and sent for each person.<\/p>\n                <p class=\"dz-en dz-note-important-en\" lang=\"en\">If you are interested records for more than one person, please complete and submit a separate request for each person.<\/p>\n            <\/div>\n\n            <label id=\"vrsta-preslika-label\">Copy type *<\/label><span class=\"dz-en\" lang=\"en\">Type of copy<\/span>\n            <div role=\"group\" aria-labelledby=\"vrsta-preslika-label\">\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"vrsta_preslika\" value=\"ovjereni\" required checked> certified copy <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(certified copy)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"vrsta_preslika\" value=\"neovjereni\"> uncertified copy <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(uncertified copy)<\/span><\/label><\/div>\n            <\/div>\n            <p class=\"dz-note\">If you need a document for a formal procedure, as a rule, select <strong>certified<\/strong> a copy. For personal and research purposes, it is generally sufficient <strong>uncertified<\/strong> a copy. The uncertified copy does not contain a DAPA certificate of its identity with the original.<\/p>\n            <p class=\"dz-en\" lang=\"en\">If you need the document for an official procedure, a certified copy should generally be selected. For personal and research purposes, an uncertified copy is perfectly adapted. An uncertified copy does not include DAPA's certification that it is difficult to the original.<\/p>\n\n            <label id=\"nacin-dostave-label\" style=\"margin-top:16px;\">Method of delivery of copies *<\/label><span class=\"dz-en\" lang=\"en\">Delivery method for deliveries<\/span>\n            <div role=\"group\" aria-labelledby=\"nacin-dostave-label\">\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"nacin_dostave\" value=\"posta\" required checked> mail <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(by post)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"nacin_dostave\" value=\"osobno\"> personal download at DAPA <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(personal collection at DAPA)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row dz-hidden\" id=\"grupa-dostava-epost\"><label><input type=\"radio\" name=\"nacin_dostave\" value=\"epost\" id=\"dostava-epost\"> by e-mail (to the address above) <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(by e-mail, to the address above)<\/span><\/label><\/div>\n            <\/div>\n            <p class=\"dz-note\">E-mail delivery is only available for uncertified copies.<\/p>\n            <p class=\"dz-en\" lang=\"en\">E-mail delivery is available only for uncertified certified.<\/p>\n\n            <div class=\"dz-note-important dz-info-note\" role=\"note\" style=\"margin:14px 0 12px;\">\n                <p class=\"dz-note-important-hr\">You can select multiple types of requests if needed, but make sure to select at least one. If you choose <strong>\"parent books\"<\/strong>, also select at least one type of studbook: births, marriages, deaths or the state of souls.<\/p>\n                <p class=\"dz-en dz-note-important-en\" lang=\"en\">You may select more than one type of request if needed, but you must select at least one. If you select <strong>\u201ccivil registers\u201d<\/strong>, also select at least one registered type: births, marriages, deaths or status animarum.<\/p>\n            <\/div>\n\n            <p class=\"dz-cat-heading\">Registration books and personal data<span class=\"dz-en\" style=\"display:inline;text-transform:none;letter-spacing:normal;font-weight:400;margin-left:6px;\" lang=\"en\">(Registers and personal records)<\/span><\/p>\n            <div class=\"dz-choice-grid\">\n                <label class=\"dz-choice-card\" for=\"t1\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"1\" id=\"t1\">\n                    <span><span class=\"dz-choice-title\">Registers of Births, Marriages and Deaths<\/span><span class=\"dz-choice-en\" lang=\"en\">Civil registers<\/span><\/span>\n                <\/label>\n\n                <div class=\"dz-sub dz-sub-inline\" id=\"sub1\">\n                    <label id=\"koje-maticne-knjige-label\" style=\"margin-bottom:6px;\">What mother-books? <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(Which register?)<\/span><\/label>\n                    <div class=\"dz-chip-row\" role=\"group\" aria-labelledby=\"koje-maticne-knjige-label\">\n                        <label class=\"dz-chip\"><input type=\"checkbox\" name=\"tocka1_sub[]\" value=\"a\"> born <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(births)<\/span><\/label>\n                        <label class=\"dz-chip\"><input type=\"checkbox\" name=\"tocka1_sub[]\" value=\"b\"> married <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(marriages)<\/span><\/label>\n                        <label class=\"dz-chip\"><input type=\"checkbox\" name=\"tocka1_sub[]\" value=\"c\"> dead <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(deaths)<\/span><\/label>\n                        <label class=\"dz-chip\"><input type=\"checkbox\" name=\"tocka1_sub[]\" value=\"d\"> state of souls (status animarum) <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(status animarum \/ register of souls)<\/span><\/label>\n                    <\/div>\n                <\/div>\n\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"2\">\n                    <span><span class=\"dz-choice-title\">Personal sheet<\/span><span class=\"dz-choice-en\" lang=\"en\">Personal Data Sheet<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"3\">\n                    <span><span class=\"dz-choice-title\">Family list<\/span><span class=\"dz-choice-en\" lang=\"en\">Family Data Sheet<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"4\">\n                    <span><span class=\"dz-choice-title\">Recruitment Call<\/span><span class=\"dz-choice-en\" lang=\"en\">Conscription notice<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\" for=\"t5\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"5\" id=\"t5\">\n                    <span><span class=\"dz-choice-title\">School Directory<\/span><span class=\"dz-choice-en\" lang=\"en\">School register<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\" for=\"t6\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"6\" id=\"t6\">\n                    <span><span class=\"dz-choice-title\">Subject of seniority<\/span><span class=\"dz-choice-en\" lang=\"en\">Employment records<\/span><\/span>\n                <\/label>\n            <\/div>\n\n            <p class=\"dz-cat-heading\">Assets and real estate<span class=\"dz-en\" style=\"display:inline;text-transform:none;letter-spacing:normal;font-weight:400;margin-left:6px;\" lang=\"en\">(Property and real estate)<\/span><\/p>\n            <div class=\"dz-choice-grid\">\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"7\" class=\"dz-imovina\">\n                    <span><span class=\"dz-choice-title\">Draft<\/span><span class=\"dz-choice-en\" lang=\"en\">Drawings<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"8\" class=\"dz-imovina\">\n                    <span><span class=\"dz-choice-title\">Building permit<\/span><span class=\"dz-choice-en\" lang=\"en\">Construction permit<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"9\" class=\"dz-imovina\">\n                    <span><span class=\"dz-choice-title\">Subject of nationalization<\/span><span class=\"dz-choice-en\" lang=\"en\">Nationalisation records<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"10\" class=\"dz-imovina\">\n                    <span><span class=\"dz-choice-title\">Subject of confiscation<\/span><span class=\"dz-choice-en\" lang=\"en\">Confiscation records<\/span><\/span>\n                <\/label>\n            <\/div>\n\n            <p class=\"dz-cat-heading\">Other<span class=\"dz-en\" style=\"display:inline;text-transform:none;letter-spacing:normal;font-weight:400;margin-left:6px;\" lang=\"en\">(Other)<\/span><\/p>\n            <div class=\"dz-choice-grid\">\n                <label class=\"dz-choice-card\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"11\">\n                    <span><span class=\"dz-choice-title\">Subject of optimization<\/span><span class=\"dz-choice-en\" lang=\"en\">Records related to opting for citizenship<\/span><\/span>\n                <\/label>\n                <label class=\"dz-choice-card\" for=\"t12\">\n                    <input type=\"checkbox\" name=\"tocka[]\" value=\"12\" id=\"t12\">\n                    <span><span class=\"dz-choice-title\">Other<\/span><span class=\"dz-choice-en\" lang=\"en\">Other<\/span><\/span>\n                <\/label>\n            <\/div>\n            \n            \n        <\/fieldset>\n\n        <fieldset id=\"grupa1do6\" class=\"dz-hidden\">\n            <legend>Details of the person to whom the request relates<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Details of the person to whom the request affects<\/span><\/legend>\n            <p class=\"dz-note\">Mandatory for selected types of requirements under points 1-6 and 11.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Required for request types 1-6 and 11.<\/p>\n            <div id=\"grupa-ime-sebe\">\n                <label for=\"dz-lbl-ime_prezime2\">Name and surname *<\/label><span class=\"dz-en\" lang=\"en\">First name and surname<\/span>\n            <input type=\"text\" id=\"dz-lbl-ime_prezime2\" name=\"ime_prezime2\" data-req=\"1\" required>\n            <p class=\"dz-note\">Enter the name and surname of the person for whom you are requesting the data.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Enter the first name and surname of the person concerned records you are requesting.<\/p>\n            <\/div>\n            <div class=\"dz-cols\">\n                <div>\n                    <label for=\"dz-lbl-rodjen\">Date of birth *<\/label><span class=\"dz-en\" lang=\"en\">Date of birth<\/span>\n            <input type=\"text\" id=\"dz-lbl-rodjen\" name=\"rodjen\" data-req=\"1\" required>\n            <p class=\"dz-note\">Example: 12.3.1955.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: 12.3.1955.<\/p>\n                <\/div>\n                <div>\n                    <label for=\"dz-lbl-mjesto_rodjenja\">Place of birth *<\/label><span class=\"dz-en\" lang=\"en\">Place of birth<\/span>\n            <input type=\"text\" id=\"dz-lbl-mjesto_rodjenja\" name=\"mjesto_rodjenja\" data-req=\"1\" required>\n                <\/div>\n            <\/div>\n            <label for=\"dz-lbl-ime_oca\">Father's name and surname *<\/label><span class=\"dz-en\" lang=\"en\">Father's first name and surname<\/span>\n            <input type=\"text\" id=\"dz-lbl-ime_oca\" name=\"ime_oca\" data-req=\"1\" required>\n            <div id=\"grupa-majka-djevojacko\" class=\"dz-hidden\">\n                <label for=\"dz-lbl-majka_djevojacko\">Mother's name and maiden name<\/label><span class=\"dz-en\" lang=\"en\">Mother's first name and maiden name<\/span>\n                <input type=\"text\" id=\"dz-lbl-majka_djevojacko\" name=\"majka_djevojacko\">\n            <\/div>\n            <label for=\"dz-lbl-prebivaliste\">Place of residence <span class=\"dz-note\">(please fill in for personal certificate only, item 2, if the place of residence is different from the place of birth. DAPA does not issue residence certificates.)<\/span><\/label><span class=\"dz-en\" lang=\"en\">Place of residence (complete only for a personal data sheet, item 2, if the place of residence differs from the place of birth. DAPA does not issue residence certificates.)<\/span>\n            <input type=\"text\" id=\"dz-lbl-prebivaliste\" name=\"prebivaliste\">\n            <p class=\"dz-note\">Example: Pula.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: Pula.<\/p>\n        <\/fieldset>\n\n        <fieldset id=\"grupa5\" class=\"dz-hidden\">\n            <legend>Information on schooling<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Education details<\/span><\/legend>\n            <p class=\"dz-note\">Applicable to the request under point 5.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Applies to request type 5.<\/p>\n            <label for=\"dz-lbl-naziv_skole\">Name of school or place of schooling *<\/label><span class=\"dz-en\" lang=\"en\">Name of school or place of schooling<\/span>\n            <input type=\"text\" id=\"dz-lbl-naziv_skole\" name=\"naziv_skole\" data-req=\"1\" required>\n            <p class=\"dz-note\">Indicate the name of the school if known; for Pula, provide the exact name of the school.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Enter the school name if known; for Pula, provide the exact school name.<\/p>\n            <label for=\"dz-lbl-godine_skolovanja\">Period of schooling *<\/label><span class=\"dz-en\" lang=\"en\">Period of schooling<\/span>\n            <input type=\"text\" id=\"dz-lbl-godine_skolovanja\" name=\"godine_skolovanja\" data-req=\"1\" required>\n            <p class=\"dz-note\">Example: 1965-1969<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: 1965-1969<\/p>\n        <\/fieldset>\n\n        <fieldset id=\"grupa6\" class=\"dz-hidden\">\n            <legend>Employment data<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Employment details<\/span><\/legend>\n            <p class=\"dz-note\">Applicable to the request under point 6.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Applies to request type 6.<\/p>\n            <label for=\"dz-lbl-naziv_radne_org\">Name of work organisation\/employer *<\/label><span class=\"dz-en\" lang=\"en\">Name of employer \/ organization<\/span>\n            <input type=\"text\" id=\"dz-lbl-naziv_radne_org\" name=\"naziv_radne_org\" data-req=\"1\" required>\n            <label for=\"dz-lbl-godine_rada\">Period of employment *<\/label><span class=\"dz-en\" lang=\"en\">Employment period<\/span>\n            <input type=\"text\" id=\"dz-lbl-godine_rada\" name=\"godine_rada\" data-req=\"1\" required>\n            <p class=\"dz-note\">Example: 1970-1990<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: 1970-1990<\/p>\n            <label for=\"dz-lbl-godina_napustanja\">Year of termination of work in the working organisation <span class=\"dz-note\">(Fill in if you are looking for data related to a workbook)<\/span><\/label><span class=\"dz-en\" lang=\"en\">Year employment with the organization ended <span class=\"dz-en\" lang=\"en\">(complete if there information related to a work booklet)<\/span><\/span>\n            <input type=\"text\" id=\"dz-lbl-godina_napustanja\" name=\"godina_napustanja\">\n        <\/fieldset>\n\n        <fieldset id=\"grupa7do11\" class=\"dz-hidden\">\n            <legend>Property or Object Information<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Property or record details<\/span><\/legend>\n            <p class=\"dz-note\">Applies to the requirements in paragraphs 7-10.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Applies to request types 7-10.<\/p>\n            <p class=\"dz-note\">In order to find material, it is necessary to specify the place or address of the property, the cadastral parcel number and the cadastral municipality. Fill in the other fields if you have this information.<\/p>\n            <p class=\"dz-en\" lang=\"en\">To locate the archival material, please provide the location or address of the property, the cadastral parcel number and the cadastral municipality. Complete the remaining fields if this information is available to you.<\/p>\n            <label for=\"dz-lbl-mjesto_adresa_broj\">Place or address of real estate *<\/label><span class=\"dz-en\" lang=\"en\">Location or address of the property<\/span>\n            <input type=\"text\" id=\"dz-lbl-mjesto_adresa_broj\" name=\"mjesto_adresa_broj\" data-req=\"1\" required>\n            <div class=\"dz-cols\">\n                <div>\n                    <label for=\"dz-lbl-godina_izgradnje\">Year of real estate construction<\/label><span class=\"dz-en\" lang=\"en\">Year of construction of the property<\/span>\n            <input type=\"text\" id=\"dz-lbl-godina_izgradnje\" name=\"godina_izgradnje\">\n                <\/div>\n                <div>\n                    <label for=\"dz-lbl-kat_cestica\">Cadastral parcel number *<\/label><span class=\"dz-en\" lang=\"en\">Cadastral parcel number<\/span>\n            <input type=\"text\" id=\"dz-lbl-kat_cestica\" name=\"kat_cestica\" data-req=\"1\" required>\n                    <p class=\"dz-note\">Example: 123\/4.<\/p>\n                    <p class=\"dz-en\" lang=\"en\">Example: 123\/4.<\/p>\n                <\/div>\n            <\/div>\n            <label for=\"dz-lbl-kat_opcina\">Cadastral Municipality *<\/label><span class=\"dz-en\" lang=\"en\">Cadastral municipality<\/span>\n            <input type=\"text\" id=\"dz-lbl-kat_opcina\" name=\"kat_opcina\" data-req=\"1\" required>\n            <label for=\"dz-lbl-vlasnik\">Name and surname or name of the then owner<\/label><span class=\"dz-en\" lang=\"en\">Name of the former owner<\/span>\n            <input type=\"text\" id=\"dz-lbl-vlasnik\" name=\"vlasnik\">\n            <label for=\"dz-lbl-organ_uprave\">Name of issuing authority and year of issue<\/label><span class=\"dz-en\" lang=\"en\">Authority that issued the decision and year of issuance<\/span>\n            <input type=\"text\" id=\"dz-lbl-organ_uprave\" name=\"organ_uprave\">\n            <p class=\"dz-note\">If known, indicate the name of the issuing authority and the year of issue.<\/p>\n            <p class=\"dz-en\" lang=\"en\">If known, enter the authority that issued the decision and the year of issuance.<\/p>\n            <p class=\"dz-note\">For confiscation\/nationalisation (paragraphs 9-10), please specify in addition the land registry entry number and the number of rulings in the fields below.<\/p>\n            <p class=\"dz-en\" lang=\"en\">For confiscation\/nationalisation (items 9-10), also provide the land registry file number and decision number in the fields below.<\/p>\n            <div class=\"dz-cols\">\n                <div>\n                    <label for=\"dz-lbl-broj_zk_uloska\">Land registry number<\/label><span class=\"dz-en\" lang=\"en\">Land registry file number<\/span>\n            <input type=\"text\" id=\"dz-lbl-broj_zk_uloska\" name=\"broj_zk_uloska\">\n                    <p class=\"dz-note\">Example: 456. Fill in for confiscation or nationalization if the information is known.<\/p>\n                    <p class=\"dz-en\" lang=\"en\">Example: 456. Complete for confiscation or nationalisation if known.<\/p>\n                <\/div>\n                <div>\n                    <label for=\"dz-lbl-broj_rjesenja\">Number of the order or other act<\/label><span class=\"dz-en\" lang=\"en\">Decision or document reference number<\/span>\n            <input type=\"text\" id=\"dz-lbl-broj_rjesenja\" name=\"broj_rjesenja\">\n                    <p class=\"dz-note\">Example: 789\/1958. Fill in for confiscation or nationalization if the information is known.<\/p>\n                    <p class=\"dz-en\" lang=\"en\">Example: 789\/1958. Complete for confiscation or nationalisation if known.<\/p>\n                <\/div>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset id=\"grupa12\" class=\"dz-hidden\">\n            <legend>Other type of request<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Other type of request<\/span><\/legend>\n            <p class=\"dz-note\">Applicable to the request under point 12.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Applies to request type 12.<\/p>\n\n            <label id=\"drugo-podvrsta-label\">Select request type *<\/label><span class=\"dz-en\" lang=\"en\">Select the type of request<\/span>\n            <div role=\"group\" aria-labelledby=\"drugo-podvrsta-label\">\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"drugo_podvrsta\" value=\"oporuka\" data-req=\"1\" required id=\"drugo-pod-oporuka\"> will or probate item <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(will or try case)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"drugo_podvrsta\" value=\"eksproprijacija\"> expropriation <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(expropriation)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"drugo_podvrsta\" value=\"sudska\"> Court case or court documentation <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(court case or court records)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"drugo_podvrsta\" value=\"ugovor\"> contract or other contractual documentation <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(contract or other contractual records)<\/span><\/label><\/div>\n                <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"drugo_podvrsta\" value=\"nesto_drugo\"> Other type of material or object <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(other type of archival material or record)<\/span><\/label><\/div>\n            <\/div>\n\n            <label for=\"dz-lbl-drugo_tocka12\" style=\"margin-top:10px;\">Describe what you are looking for *<\/label><span class=\"dz-en\" lang=\"en\">Please describe what you are requesting<\/span>\n            <p class=\"dz-note\">Describe as accurately as possible the requested material and provide all known information that can help in finding it.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Describe the requested archival material as building as possible and provide any known information that may assist in locating it.<\/p>\n            <textarea id=\"dz-lbl-drugo_tocka12\" name=\"drugo_tocka12\" rows=\"2\" data-req=\"1\" required><\/textarea>\n            <p class=\"dz-note\" id=\"dz-drugo-hint\">Example: for a will or decision on succession, indicate the notary and the competent court; for expropriation, indicate the owner, the year and the authority that made the decision.<\/p>\n            <p class=\"dz-en\" id=\"dz-drugo-hint-en\" lang=\"en\">Example: for a will or inheritance decision, provide the notary and competent court; for expropriation, provide the owner, year and authority that issued the decision.<\/p>\n            <div class=\"dz-cols\">\n                <div>\n                    <label for=\"dz-lbl-drugo_mjesto\">Place to which the material relates<\/label><span class=\"dz-en\" lang=\"en\">Place to which the archival material contains<\/span>\n                    <input type=\"text\" id=\"dz-lbl-drugo_mjesto\" name=\"drugo_mjesto\">\n                    <p class=\"dz-note\">Enter if known.<\/p>\n                    <p class=\"dz-en\" lang=\"en\">Enter this information if known.<\/p>\n                <\/div>\n                <div>\n                    <label for=\"dz-lbl-drugo_razdoblje\">Approximate year or period to which the material relates<\/label><span class=\"dz-en\" lang=\"en\">Approximate year or period to which the archival material finds<\/span>\n                    <input type=\"text\" id=\"dz-lbl-drugo_razdoblje\" name=\"drugo_razdoblje\">\n                    <p class=\"dz-note\">Example: 1975 or 1970-1980<\/p>\n                    <p class=\"dz-en\" lang=\"en\">Example: 1975 or 1970-1980<\/p>\n                <\/div>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset>\n            <legend>Purpose of the request<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Purpose of the request<\/span><\/legend>\n            <label for=\"dz-lbl-svrha\">Describe the purpose *<\/label><span class=\"dz-en\" lang=\"en\">Describe the purpose<\/span>\n            <input type=\"text\" id=\"dz-lbl-svrha\" name=\"svrha\" required>\n            <p class=\"dz-note\">Example: personal use, succession, dual citizenship.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: personal use, inheritance, dual citizenship.<\/p>\n        <\/fieldset>\n\n        <fieldset id=\"grupa-odnos\" class=\"dz-hidden\">\n            <legend>Your relationship to the person to whom the request relates *<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Your relationship to the person to whom the request wishes<\/span><\/legend>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"0\" data-req=\"1\" required id=\"odnos-sebe\"> I'm looking for information about myself personally <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(myself)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"1\"> spouse <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(spouses)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"2\"> child <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(child)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"3\"> parent <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(parent)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"4\"> grandson <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(grandchild)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"5\"> plenipotentiary <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(authorised representative)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos\" value=\"6\" id=\"odnos-drugo\"> second relationship <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(other relationship)<\/span><\/label><\/div>\n            <div id=\"grupa-odnos-drugo-opis\" class=\"dz-hidden\" style=\"margin-top:8px;\">\n                <label for=\"dz-lbl-odnos_drugo_opis\">Specify the relationship to the person *<\/label><span class=\"dz-en\" lang=\"en\">Specify your relationship to the person<\/span>\n            <input type=\"text\" id=\"dz-lbl-odnos_drugo_opis\" name=\"odnos_drugo_opis\" data-req=\"1\" required>\n                <p class=\"dz-note\">Example: brother, sister, grandfather, grandmother, granddaughter, brother-in-law.<\/p>\n                <p class=\"dz-en\" lang=\"en\">Example: brother, sister, grandfather, grandmother, granddaughter, brother-in-law.<\/p>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset id=\"grupa-odnos-nekretnina\" class=\"dz-hidden\">\n            <legend>Your relationship to the property or object *<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Your relationship to the property or record<\/span><\/legend>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos_nekretnina\" value=\"vlasnik\" data-req=\"1\" required> owner <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(owner)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos_nekretnina\" value=\"suvlasnik\"> co-owner <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(co-owner)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos_nekretnina\" value=\"nasljednik\"> heir <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(heir)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos_nekretnina\" value=\"opunomocenik\"> plenipotentiary <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(authorised representative)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"odnos_nekretnina\" value=\"drugo\" id=\"odnos-nekretnina-drugo\"> Other property <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(other capacity)<\/span><\/label><\/div>\n            <div id=\"grupa-odnos-nekretnina-drugo-opis\" class=\"dz-hidden\" style=\"margin-top:8px;\">\n                <label for=\"dz-lbl-odnos_nekretnina_drugo_opis\">Please specify your relationship to the property or object *<\/label><span class=\"dz-en\" lang=\"en\">Specify your relationship to the property or record<\/span>\n            <input type=\"text\" id=\"dz-lbl-odnos_nekretnina_drugo_opis\" name=\"odnos_nekretnina_drugo_opis\" data-req=\"1\" required>\n                <p class=\"dz-note\">Example: buyer, investor, proxy of heirs.<\/p>\n                <p class=\"dz-en\" lang=\"en\">Example: buyer, investor, heir's authorised representative.<\/p>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset id=\"grupa-hitno\">\n            <legend>Urgent action<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Request for urgent processing<\/span><\/legend>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"hitno\" value=\"da\" required id=\"hitno-da\"> Yes <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(Yes)<\/span><\/label><\/div>\n            <div class=\"dz-checkbox-row\"><label><input type=\"radio\" name=\"hitno\" value=\"ne\" checked> No <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(No)<\/span><\/label><\/div>\n            <div class=\"dz-info-note dz-info-note-compact\" role=\"note\" style=\"font-size:12.5px;\">\n                <p>The DAPA shall assess the possibility of urgent action depending on available capacities and the scope of research required. Marking a request as urgent does not guarantee that it will be dealt with within the required time limit. Compensation is increased by 20-40 %, depending on the degree of urgency.<\/p>\n                <p class=\"dz-en\" lang=\"en\">DAPA assesses whether urgent processing is possible depending on available capacities and the scope of research required. Marking a request as urgent does not guarantee that it will be completed within the requested deadline. The fee is extended by 20\u201340%, depending on the level of urgency.<\/p>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset id=\"grupa-hitno-razlog\" class=\"dz-hidden\">\n            <legend>Reason and deadline for urgency<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Reason and deadline for urgency<\/span><\/legend>\n            <label for=\"dz-lbl-hitno_razlog\">Justification of urgency and requested deadline *<\/label><span class=\"dz-en\" lang=\"en\">Reason for urgency and requested deadline<\/span>\n            <input type=\"text\" id=\"dz-lbl-hitno_razlog\" name=\"hitno_razlog\" data-req=\"1\" required>\n            <p class=\"dz-note\">Example: documentation is required until 15.10.2026 in order to apply for a pension.<\/p>\n            <p class=\"dz-en\" lang=\"en\">Example: the documentation is required by 15 October 2026 for apparently a pension application.<\/p>\n        <\/fieldset>\n\n        <fieldset>\n            <legend>Payer details<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Payer information<\/span><\/legend>\n\n            <div class=\"dz-checkbox-row\">\n                <input type=\"checkbox\" id=\"platitelj-isti\" checked>\n                <input type=\"hidden\" name=\"platitelj_isti_kao_podnositelj\" id=\"platitelj-isti-hidden\" value=\"1\">\n                <input type=\"hidden\" name=\"platitelj_je_pravna_osoba\" id=\"platitelj-pravna-hidden\" value=\"0\">\n                <label for=\"platitelj-isti\" style=\"margin:0;font-weight:400;\">The payer is the same as the applicant <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(the payer is the same as the applicant)<\/span><\/label>\n            <\/div>\n            <div class=\"dz-info-note dz-info-note-compact\" role=\"note\" id=\"platitelj-isti-note\" style=\"font-size:14px;\">\n                <p>Where the payer is the same as the submitter, the payer\u2019s data shall be retrieved from the submitter\u2019s data. If the costs are borne by another natural or legal person, please exclude this option and enter the payer's data.<\/p>\n                <p class=\"dz-en\" lang=\"en\">If the payer is the same as the applicant, the payer details are taken from the applicant information. If the costs are borne by another individual or legal entity, deselect this option and enter the payer's details.<\/p>\n            <\/div>\n\n            <div id=\"platitelj-isti-preview\" class=\"dz-preview-box dz-hidden\">\n                <p class=\"dz-note\" style=\"font-weight:600;margin:0 0 4px;\">Data of the payer (downloaded from the submitter):<\/p>\n                <p class=\"dz-en\" style=\"font-weight:600;margin:0 0 4px;\" lang=\"en\">Payer details (taken from the applicant):<\/p>\n                <p id=\"platitelj-isti-preview-text\" style=\"margin:0;\"><\/p>\n            <\/div>\n\n            <div id=\"platitelj-polja\" class=\"dz-hidden\">\n                <div class=\"dz-checkbox-row\">\n                    <input type=\"checkbox\" name=\"je_pravna_osoba\" value=\"1\" id=\"je-pravna-osoba\">\n                    <label for=\"je-pravna-osoba\" style=\"margin:0;font-weight:400;\">The payer is a legal person <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(the payer is a legal entity)<\/span><\/label>\n                <\/div>\n                <div id=\"grupa-pravna-osoba\" class=\"dz-hidden\" style=\"margin-top:10px;\">\n                    <label for=\"dz-lbl-pravna_osoba_kontakt\">Contact person<\/label><span class=\"dz-en\" lang=\"en\">Contact person<\/span>\n            <input type=\"text\" id=\"dz-lbl-pravna_osoba_kontakt\" name=\"pravna_osoba_kontakt\">\n                <\/div>\n\n                <label id=\"platitelj-naziv-label\" for=\"dz-lbl-platitelj_naziv\" style=\"margin-top:14px;display:block;\">Name and surname *<\/label><span class=\"dz-en\" id=\"platitelj-naziv-label-en\" lang=\"en\">Name \/ full legal name of the payer<\/span>\n            <input type=\"text\" id=\"dz-lbl-platitelj_naziv\" name=\"platitelj_naziv\" data-req=\"1\" required autocomplete=\"name\">\n\n                <label for=\"dz-lbl-platitelj_adresa\">Address of payer *<\/label><span class=\"dz-en\" lang=\"en\">Payer's address<\/span>\n            <input type=\"text\" id=\"dz-lbl-platitelj_adresa\" name=\"platitelj_adresa\" data-req=\"1\" required autocomplete=\"section-payer street-address\">\n\n                <label for=\"platitelj-drzava\">Country *<\/label><span class=\"dz-en\" lang=\"en\">Country<\/span>\n            <input type=\"text\" name=\"platitelj_drzava\" value=\"Hrvatska\" data-req=\"1\" required id=\"platitelj-drzava\" autocomplete=\"section-payer country-name\">\n\n                <label for=\"platitelj-ppt-mjesto\">Postcode and town\/city *<\/label><span class=\"dz-en\" lang=\"en\">Postal code and place\/city<\/span>\n            <input type=\"text\" name=\"platitelj_ppt_mjesto\" id=\"platitelj-ppt-mjesto\" pattern=\"\\d{5}\\s+\\S.+\" title=\"Enter in the form: 52000 Pazin (5 digits, space, place name)\" data-req=\"1\" required>\n                <p class=\"dz-note\" id=\"platitelj-ppt-mjesto-note\">Enter the postcode and place in the form of: 52000 Pazin.<\/p>\n                <p class=\"dz-en\" id=\"platitelj-ppt-mjesto-note-en\" lang=\"en\">Enter the become code and place in the following format: 52000 Pazin.<\/p>\n\n                <label id=\"platitelj-oib-label\" for=\"dz-lbl-platitelj_oib\">Personal Identification Number (PIN) <span id=\"platitelj-oib-star\" class=\"dz-hidden\">*<\/span><\/label><span class=\"dz-en\" lang=\"en\">Personal Identification Number (PIN)<\/span>\n            <input type=\"text\" id=\"dz-lbl-platitelj_oib\" name=\"platitelj_oib\" pattern=\"\\d{11}\" title=\"OIB must have exactly 11 digits\" maxlength=\"11\" inputmode=\"numeric\" aria-describedby=\"platitelj-oib-note\">\n                <p class=\"dz-note\" id=\"platitelj-oib-note\">Mandatory for payers from Croatia.<\/p>\n                <p class=\"dz-en\" lang=\"en\">Mandatory for payers based in Croatia.<\/p>\n\n                <div id=\"grupa-platitelj-email\" class=\"dz-hidden\">\n                <label for=\"dz-lbl-platitelj_email\">Payer's e-mail for delivery of e-invoice *<\/label><span class=\"dz-en\" lang=\"en\">Payer's email address for e-invoice delivery<\/span>\n            <input type=\"email\" id=\"dz-lbl-platitelj_email\" name=\"platitelj_email\" autocomplete=\"section-payer email\">\n                <p class=\"dz-note\">If the payer is a legal person, the e-invoice is sent to this e-mail.<\/p>\n                <p class=\"dz-en\" lang=\"en\">If the payer is a legal entity, the e-invoice is sent to this e-mail address.<\/p>\n                <\/div>\n            <\/div>\n        <\/fieldset>\n\n        <fieldset>\n            <legend>Signatory details<span class=\"dz-en\" style=\"text-transform:none;letter-spacing:normal;font-weight:400;\" lang=\"en\">Signer details<\/span><\/legend>\n            <div class=\"dz-checkbox-row\">\n                <input type=\"checkbox\" id=\"potpis-druga-osoba\" name=\"potpis_druga_osoba\" value=\"1\">\n                <label for=\"potpis-druga-osoba\" style=\"margin:0;font-weight:400;\">The form is signed on my behalf by another person <span class=\"dz-en\" style=\"display:inline;margin:0;\" lang=\"en\">(another person signs the form on my behalf)<\/span><\/label>\n            <\/div>\n            <div id=\"potpis-ime-polje\" class=\"dz-hidden\" style=\"margin-top:10px;\">\n                <label for=\"dz-lbl-potpis_ime\">Name of the person signing the form *<\/label><span class=\"dz-en\" lang=\"en\">Name of the person signing the form *<\/span>\n            <input type=\"text\" id=\"dz-lbl-potpis_ime\" name=\"potpis_ime\" data-req=\"1\" required>\n                <p class=\"dz-note\">The information will be provided in the form next to the place reserved for signature.<\/p>\n                <p class=\"dz-en\" lang=\"en\">This information will appear on the form next to the signature field.<\/p>\n                <p class=\"dz-note\">If the form is signed by another person on your behalf, please attach a power of attorney or other proof of authorisation in the final step, if necessary.<\/p>\n                <p class=\"dz-en\" lang=\"en\">If another person indicates the form on your behalf, attach a power of attorney or other proof of authorization in the final step where required.<\/p>\n            <\/div>\n            <div id=\"potpis-isti-preview\" class=\"dz-preview-box\">\n                <p class=\"dz-note\" style=\"font-weight:600;margin:0 0 4px;\">Signatory (taken from the applicant):<\/p>\n                <p class=\"dz-en\" style=\"font-weight:600;margin:0 0 4px;\" lang=\"en\">Signer (taken from the applicant):<\/p>\n                <p id=\"potpis-isti-preview-text\" style=\"margin:0;\"><\/p>\n            <\/div>\n        <\/fieldset>\n\n\n        <button type=\"submit\" class=\"dz-submit\" id=\"dz-submit-btn\">Create PDF to print<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Generate PDF for printing<\/span><\/button>\n        <p class=\"dz-note\" id=\"dz-submit-hint\" style=\"text-align:center;\"><\/p>\n        <p class=\"dz-en\" id=\"dz-submit-hint-en\" style=\"text-align:center;\" lang=\"en\"><\/p>\n    <\/form>\n\n    <div id=\"dz-step2-container\"><\/div>\n    <\/div>\n\n    <div id=\"dz-modal-backdrop\" class=\"dz-modal-backdrop dz-hidden\">\n        <div id=\"dz-modal\" class=\"dz-modal dz-modal-info\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dz-modal-title\" aria-describedby=\"dz-modal-desc\" tabindex=\"-1\">\n            <div class=\"dz-modal-head\">\n                <div id=\"dz-modal-icon\" class=\"dz-modal-icon\" aria-hidden=\"true\">i<\/div>\n                <div class=\"dz-modal-title-wrap\"><h3 id=\"dz-modal-title\"><\/h3><\/div>\n            <\/div>\n            <div id=\"dz-modal-desc\" class=\"dz-modal-desc\"><\/div>\n            <div id=\"dz-modal-buttons\" class=\"dz-modal-buttons\"><\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    (function(){\n        function show(id, cond){\n            var el = document.getElementById(id);\n            el.classList.toggle('dz-hidden', !cond);\n            \/\/ Skriveni dio obrasca ne smije se slati - polja unutar skrivene sekcije se\n            \/\/ onemogu\u0107avaju (disabled), \u010dime ih preglednik automatski izostavlja iz\n            \/\/ FormData\/POST podataka pri slanju obrasca (GDPR - smanjenje koli\u010dine podataka).\n            el.querySelectorAll('input, textarea, select').forEach(function(f){\n                if (!cond) {\n                    if (!f.disabled) { f.dataset.dzHiddenDisabled = '1'; f.disabled = true; }\n                } else if (f.dataset.dzHiddenDisabled === '1') {\n                    var hiddenAncestor = f.closest('.dz-hidden');\n                    if (hiddenAncestor && hiddenAncestor !== el) { return; }\n                    f.disabled = false;\n                    delete f.dataset.dzHiddenDisabled;\n                }\n            });\n            \/\/ Required polja unutar skrivenih sekcija moraju izgubiti \"required\",\n            \/\/ jer ina\u010de Chrome\/Firefox tiho blokiraju slanje forme\n            \/\/ (\"An invalid form control ... is not focusable\").\n            el.querySelectorAll('input[data-req], textarea[data-req]').forEach(function(f){\n                if (cond) {\n                    \/\/ Ako je polje unutar NEKE DRUGE, jo\u0161 uvijek skrivene ugnije\u017e\u0111ene\n                    \/\/ sekcije (npr. \"je pravna osoba\" unutar \"platitelj-polja\"),\n                    \/\/ ne smije postati required samo zato \u0161to je vanjski roditelj\n                    \/\/ upravo prikazan - unutarnja sekcija ga i dalje sakriva.\n                    var hiddenAncestor2 = f.closest('.dz-hidden');\n                    if (hiddenAncestor2 && hiddenAncestor2 !== el) { return; }\n                    f.setAttribute('required', '');\n                } else {\n                    f.removeAttribute('required');\n                }\n            });\n        }\n        window.dzShow = show;\n        function refresh(){\n            var checked = Array.from(document.querySelectorAll('input[name=\"tocka[]\"]:checked')).map(function(c){return c.value;});\n            show('sub1', checked.includes('1'));\n            var any1do6 = ['1','2','3','4','5','6','11'].some(function(v){return checked.includes(v);});\n            show('grupa1do6', any1do6);\n            \/\/ show() bi ina\u010de bezuvjetno vratio \"required\" na ime_prezime2 (jer ima\n            \/\/ data-req) \u010dim grupa1do6 postane vidljiva - refreshImeSebe() to odmah\n            \/\/ ispravno uskladi s trenutnim stanjem \"tra\u017eim podatke o sebi osobno\".\n            if (typeof refreshImeSebe === 'function') { refreshImeSebe(); }\n            show('grupa-majka-djevojacko', any1do6);\n            show('grupa5', checked.includes('5'));\n            show('grupa6', checked.includes('6'));\n            var any7do11 = ['7','8','9','10'].some(function(v){return checked.includes(v);});\n            show('grupa7do11', any7do11);\n            show('grupa12', checked.includes('12'));\n            \/\/ \"Odnos prema osobi\" ima smisla samo za osobne zahtjeve (1.-6., 11., 12.);\n            \/\/ za nekretnine\/predmete (7.-10.) prikazuje se poseban, prikladniji blok.\n            var anyOsobno = ['1','2','3','4','5','6','11'].some(function(v){return checked.includes(v);});\n            show('grupa-odnos', anyOsobno);\n            show('grupa-odnos-nekretnina', any7do11);\n        }\n        document.querySelectorAll('input[name=\"tocka[]\"]').forEach(function(cb){\n            cb.addEventListener('change', refresh);\n        });\n        refresh();\n\n        \/\/ \"drugi odnos\" (osoba) i \"drugo svojstvo\" (nekretnina) - dodatno obja\u0161njenje\n        document.querySelectorAll('input[name=\"odnos\"]').forEach(function(r){\n            r.addEventListener('change', function(){\n                show('grupa-odnos-drugo-opis', document.getElementById('odnos-drugo').checked);\n            });\n        });\n        document.querySelectorAll('input[name=\"odnos_nekretnina\"]').forEach(function(r){\n            r.addEventListener('change', function(){\n                show('grupa-odnos-nekretnina-drugo-opis', document.getElementById('odnos-nekretnina-drugo').checked);\n            });\n        });\n\n        \/\/ --- \"Dostava e-po\u0161tom\" dostupna je samo za neovjereni preslik ---\n        \/\/ --- Podvrsta unutar \"12. Drugo\" - prilago\u0111ava napomenu ispod polja ---\n        var drugoPodvrstaEls = document.querySelectorAll('input[name=\"drugo_podvrsta\"]');\n        var drugoHintEl = document.getElementById('dz-drugo-hint');\n        var drugoHintEnEl = document.getElementById('dz-drugo-hint-en');\n        var drugoNapomene = {\n            oporuka: {\n                hr: 'Navedite ime ostavitelja, bilje\u017enika i\/ili nadle\u017eni sud.',\n                en: 'Provide the name of the deceased, the notary and\/or the competent court.'\n            },\n            eksproprijacija: {\n                hr: 'Navedite vlasnika, godinu i tijelo koje je donijelo odluku o eksproprijaciji.',\n                en: 'Provide the owner, year and authority that issued the expropriation decision.'\n            },\n            sudska: {\n                hr: 'Navedite stranke u postupku, nadle\u017eni sud i, ako je poznat, broj predmeta.',\n                en: 'Provide the parties to the proceedings, the competent court and, if known, the case number.'\n            },\n            ugovor: {\n                hr: 'Navedite ugovorne strane, vrstu ugovora i pribli\u017enu godinu sklapanja.',\n                en: 'Provide the contracting parties, type of contract and approximate year it was concluded.'\n            },\n            nesto_drugo: {\n                hr: 'Opi\u0161ite \u0161to to\u010dno tra\u017eite. \u0160to su podaci potpuniji, gradivo \u0107e biti lak\u0161e prona\u0107i.',\n                en: 'Describe exactly what you are requesting. The more complete the information, the easier it will be to locate the archival material.'\n            }\n        };\n        function refreshDrugoPodvrsta(){\n            var checked = document.querySelector('input[name=\"drugo_podvrsta\"]:checked');\n            if (!checked || !drugoNapomene[checked.value]) { return; }\n            if (drugoHintEl) { drugoHintEl.textContent = drugoNapomene[checked.value].hr; }\n            if (drugoHintEnEl) { drugoHintEnEl.textContent = drugoNapomene[checked.value].en; }\n        }\n        drugoPodvrstaEls.forEach(function(r){ r.addEventListener('change', refreshDrugoPodvrsta); });\n        refreshDrugoPodvrsta();\n\n        function refreshNacinDostave(){\n            var neovjereni = document.querySelector('input[name=\"vrsta_preslika\"][value=\"neovjereni\"]');\n            var jeNeovjereni = neovjereni && neovjereni.checked;\n            show('grupa-dostava-epost', jeNeovjereni);\n            var epostRadio = document.getElementById('dostava-epost');\n            if (!jeNeovjereni && epostRadio && epostRadio.checked) {\n                var postaRadio = document.querySelector('input[name=\"nacin_dostave\"][value=\"posta\"]');\n                if (postaRadio) { postaRadio.checked = true; }\n            }\n        }\n        document.querySelectorAll('input[name=\"vrsta_preslika\"]').forEach(function(r){\n            r.addEventListener('change', refreshNacinDostave);\n        });\n        refreshNacinDostave();\n\n        function refreshHitno(){\n            var da = document.getElementById('hitno-da');\n            show('grupa-hitno-razlog', da && da.checked);\n        }\n        document.querySelectorAll('input[name=\"hitno\"]').forEach(function(r){\n            r.addEventListener('change', refreshHitno);\n        });\n        refreshHitno();\n\n        \/\/ --- OIB checksum (hrvatski kontrolni algoritam ISO 7064, MOD 11-10) ---\n        function isValidOib(oib){\n            if (!\/^\\d{11}$\/.test(oib)) return false;\n            var a = 10;\n            for (var i = 0; i < 10; i++) {\n                a = (a + parseInt(oib.charAt(i), 10)) % 10;\n                if (a === 0) { a = 10; }\n                a = (a * 2) % 11;\n            }\n            var control = 11 - a;\n            if (control === 10) { control = 0; }\n            return control === parseInt(oib.charAt(10), 10);\n        }\n        function wireOibChecksum(el){\n            if (!el) { return; }\n            var errId = el.id + '-checksum-error';\n            var errEl = document.createElement('p');\n            errEl.id = errId;\n            errEl.className = 'dz-field-error dz-hidden';\n            errEl.setAttribute('role', 'alert');\n            var enToggle = document.getElementById('dz-en-toggle');\n            var showEn = !!(enToggle && enToggle.checked);\n            errEl.innerHTML = 'Uneseni OIB nije ispravan. Provjerite uneseni broj.<span lang=\"en\" style=\"display:' + (showEn ? 'block' : 'none') + ';\">The OIB entered is not valid. Please check the number.<\/span>';\n            el.insertAdjacentElement('afterend', errEl);\n            if (enToggle) {\n                enToggle.addEventListener('change', function(){\n                    var span = errEl.querySelector('span');\n                    if (span) { span.style.display = enToggle.checked ? 'block' : 'none'; }\n                });\n            }\n            var existingDescribedBy = el.getAttribute('aria-describedby');\n            function refresh(){\n                var v = el.value.trim();\n                var isEn = !!(enToggle && enToggle.checked);\n                if (v === '' || isValidOib(v)) {\n                    el.setCustomValidity('');\n                    el.removeAttribute('aria-invalid');\n                    errEl.classList.add('dz-hidden');\n                    el.setAttribute('aria-describedby', existingDescribedBy || '');\n                } else {\n                    el.setCustomValidity(isEn ? 'The OIB entered is not valid. Please check the number.' : 'Uneseni OIB nije ispravan. Provjerite uneseni broj.');\n                    el.setAttribute('aria-invalid', 'true');\n                    errEl.classList.remove('dz-hidden');\n                    el.setAttribute('aria-describedby', (existingDescribedBy ? existingDescribedBy + ' ' : '') + errId);\n                }\n            }\n            el.addEventListener('input', refresh);\n            if (enToggle) { enToggle.addEventListener('change', refresh); }\n        }\n        wireOibChecksum(document.getElementById('oib-podnositelj'));\n        wireOibChecksum(document.getElementById('dz-lbl-platitelj_oib'));\n\n        function refreshPravnaOsoba(){\n            var cb = document.getElementById('je-pravna-osoba');\n            var jePravna = cb && cb.checked;\n            show('grupa-pravna-osoba', jePravna);\n            var platNazivEl = document.getElementById('dz-lbl-platitelj_naziv');\n            if (platNazivEl) { platNazivEl.setAttribute('autocomplete', jePravna ? 'organization' : 'name'); }\n            if (!jePravna) {\n                var kontaktEl = document.getElementById('dz-lbl-pravna_osoba_kontakt');\n                if (kontaktEl && window.dzClearFieldError) { window.dzClearFieldError(kontaktEl); }\n            }\n\n            \/\/ Naziv glavnog polja ovisi o tome je li platitelj fizi\u010dka ili pravna osoba.\n            var nazivLabel = document.getElementById('platitelj-naziv-label');\n            var nazivLabelEn = document.getElementById('platitelj-naziv-label-en');\n            if (nazivLabel) {\n                var starSpan = nazivLabel.querySelector('span');\n                nazivLabel.textContent = jePravna ? 'Slu\u017ebeni naziv pravne osobe *' : 'Ime i prezime *';\n            }\n            if (nazivLabelEn) { nazivLabelEn.textContent = jePravna ? 'Official name of the legal entity' : 'First name and surname'; }\n\n            \/\/ E-mail za e-ra\u010dun: vidljiv i obavezan SAMO za pravnu osobu; za fizi\u010dku\n            \/\/ osobu polje se potpuno skriva (ne samo neobavezno) i vrijednost\/gre\u0161ka\n            \/\/ se \u010disti da ne ostane \"zaglavljena\" skrivena gre\u0161ka iz ranijeg unosa.\n            var emailWrap = document.getElementById('grupa-platitelj-email');\n            var emailEl = document.getElementById('dz-lbl-platitelj_email');\n            show('grupa-platitelj-email', jePravna);\n            if (emailEl) {\n                var istiPlatitelj = document.getElementById('platitelj-isti');\n                var payerFieldsActive = !(istiPlatitelj && istiPlatitelj.checked);\n                if (jePravna && payerFieldsActive) {\n                    emailEl.setAttribute('required', '');\n                } else {\n                    emailEl.removeAttribute('required');\n                    emailEl.value = '';\n                    if (window.dzClearFieldError) { window.dzClearFieldError(emailEl); }\n                }\n            }\n\n            updatePlatiteljPravnaHidden();\n        }\n        var pravnaCb = document.getElementById('je-pravna-osoba');\n        if (pravnaCb) { pravnaCb.addEventListener('change', refreshPravnaOsoba); }\n        refreshPravnaOsoba();\n\n        \/\/ OIB platitelja: obavezan ako je dr\u017eava platitelja Hrvatska (za fizi\u010dku I\n        \/\/ pravnu osobu podjednako) - isto pona\u0161anje kao kod podnositelja u Koraku 1,\n        \/\/ samo je okida\u010d dr\u017eava umjesto checkboxa \"Nemam dodijeljen OIB\".\n        function refreshPlatiteljOibRequired(){\n            var drzavaEl = document.getElementById('platitelj-drzava');\n            var oibEl = document.getElementById('dz-lbl-platitelj_oib');\n            var oibStar = document.getElementById('platitelj-oib-star');\n            var oibNote = document.getElementById('platitelj-oib-note');\n            var oibNoteEn = oibNote ? oibNote.nextElementSibling : null;\n            if (!drzavaEl || !oibEl) { return; }\n            var jeHrvatska = drzavaEl.value.trim().toLowerCase() === 'hrvatska';\n            var istiCb = document.getElementById('platitelj-isti');\n            var platiteljPolja = document.getElementById('platitelj-polja');\n            var platiteljPoljaAktivna = !(istiCb && istiCb.checked)\n                && !(platiteljPolja && platiteljPolja.classList.contains('dz-hidden'));\n\n            if (jeHrvatska && platiteljPoljaAktivna) {\n                oibEl.setAttribute('required', '');\n                if (oibStar) { oibStar.classList.remove('dz-hidden'); }\n                if (oibNote) { oibNote.textContent = 'Obvezno za platitelje iz Hrvatske.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'Mandatory for payers based in Croatia.'; }\n            } else {\n                oibEl.removeAttribute('required');\n                if (oibStar) { oibStar.classList.add('dz-hidden'); }\n                if (oibNote) { oibNote.textContent = 'Nije obavezno ako platitelj nije iz Hrvatske.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'Not required if the payer is not based in Croatia.'; }\n                \/\/ Ako polje postane neobavezno dok je prazno, ukloni eventualnu\n                \/\/ \"zaglavljenu\" poruku o gre\u0161ci od ranijeg unosa\/poku\u0161aja.\n                if (oibEl.value.trim() === '' && window.dzClearFieldError) { window.dzClearFieldError(oibEl); }\n            }\n        }\n        var platiteljDrzavaEl = document.getElementById('platitelj-drzava');\n        if (platiteljDrzavaEl) {\n            platiteljDrzavaEl.addEventListener('input', refreshPlatiteljOibRequired);\n            refreshPlatiteljOibRequired();\n        }\n\n        var toggleOff = document.getElementById('toggle-obrazac-off');\n        if (toggleOff) {\n            toggleOff.addEventListener('click', function(e){\n                e.preventDefault();\n                var el = document.getElementById('opis-obrasca-off');\n                var nowHidden = el.classList.toggle('dz-hidden');\n                toggleOff.setAttribute('aria-expanded', nowHidden ? 'false' : 'true');\n            });\n        }\n\n        \/\/ Autoritativno polje \"platitelj_je_pravna_osoba\": ako je platitelj isti kao\n        \/\/ podnositelj, prati status pravne osobe podnositelja; ina\u010de prati vlastiti\n        \/\/ checkbox platitelja. Backend se treba oslanjati na ovo polje, ne na\n        \/\/ pojedina\u010dne checkboxove koji mogu biti disabled\/skriveni.\n        function updatePlatiteljPravnaHidden(){\n            var hidden = document.getElementById('platitelj-pravna-hidden');\n            if (!hidden) { return; }\n            var isti = document.getElementById('platitelj-isti');\n            var jeIsti = isti && isti.checked;\n            if (jeIsti) {\n                var podn = document.getElementById('podnositelj-pravna-osoba');\n                hidden.value = (podn && podn.checked) ? '1' : '0';\n            } else {\n                var plat = document.getElementById('je-pravna-osoba');\n                hidden.value = (plat && plat.checked) ? '1' : '0';\n            }\n        }\n        function refreshPlatiteljPreview(){\n            var box = document.getElementById('platitelj-isti-preview');\n            var textEl = document.getElementById('platitelj-isti-preview-text');\n            if (!box || !textEl) { return; }\n            var cb = document.getElementById('platitelj-isti');\n            var isti = cb && cb.checked;\n            box.classList.toggle('dz-hidden', !isti);\n            if (!isti) { return; }\n            function val(name){ var el = document.querySelector('[name=\"' + name + '\"]'); return el ? el.value.trim() : ''; }\n            var podnPravna = document.getElementById('podnositelj-pravna-osoba');\n            var nemaOib = document.getElementById('nema-oib');\n            var naziv = (podnPravna && podnPravna.checked) ? val('ime_prezime') : val('ime_prezime');\n            var lines = [];\n            if (naziv) { lines.push(naziv); }\n            var adresa = [val('ulica_broj'), val('postanski_mjesto'), val('drzava')].filter(Boolean).join(', ');\n            if (adresa) { lines.push(adresa); }\n            if (!(nemaOib && nemaOib.checked) && val('oib')) { lines.push('OIB: ' + val('oib')); }\n            if (val('email')) { lines.push(val('email')); }\n            textEl.textContent = lines.length ? lines.join(' \u2014 ') : '\u2014';\n        }\n        function refreshPlatiteljIsti(){\n            var cb = document.getElementById('platitelj-isti');\n            var isti = cb && cb.checked;\n            show('platitelj-polja', !isti);\n            var note = document.getElementById('platitelj-isti-note');\n            if (note) { note.style.display = isti ? '' : 'none'; }\n            var hiddenIsti = document.getElementById('platitelj-isti-hidden');\n            if (hiddenIsti) { hiddenIsti.value = isti ? '1' : '0'; }\n            \/\/ NAMJERNO se ne kopiraju vrijednosti podnositelja u polja platitelja, niti\n            \/\/ se dira vidljivi checkbox \"Platitelj je pravna osoba\": kad je \"isti\"\n            \/\/ uklju\u010deno, cijeli blok \"platitelj-polja\" (uklju\u010duju\u0107i taj checkbox) ve\u0107\n            \/\/ je skriven i onemogu\u0107en preko show() pa se uop\u0107e ne \u0161alje - backend\n            \/\/ autoritativno koristi podatke\/status podnositelja na temelju\n            \/\/ platitelj_isti_kao_podnositelj=1. Diranje vidljivog checkboxa bi moglo\n            \/\/ izgubiti korisnikov ranije ru\u010dno postavljen izbor za \"drugog platitelja\".\n            updatePlatiteljPravnaHidden();\n            refreshPlatiteljPreview();\n\n            \/\/ Nakon promjene \"platitelj je isti\" ponovno uskladi uvjetno obvezna\n            \/\/ polja. Time skriveni OIB\/e-mail ne mogu ostati required.\n            refreshPlatiteljOibRequired();\n            refreshPravnaOsoba();\n        }\n        var platiteljCb = document.getElementById('platitelj-isti');\n        if (platiteljCb) {\n            platiteljCb.addEventListener('change', refreshPlatiteljIsti);\n            var podnPravnaCbForListener = document.getElementById('podnositelj-pravna-osoba');\n            if (podnPravnaCbForListener) { podnPravnaCbForListener.addEventListener('change', refreshPlatiteljIsti); }\n            refreshPlatiteljIsti();\n            \/\/ Pregled se osvje\u017eava u\u017eivo i kad korisnik mijenja vlastite podatke\n            \/\/ (ime, adresa, OIB, e-mail), ne samo kad prebacuje checkbox.\n            ['ime_prezime', 'ulica_broj', 'postanski_mjesto', 'drzava', 'oib', 'email'].forEach(function(name){\n                var el = document.querySelector('[name=\"' + name + '\"]');\n                if (el) { el.addEventListener('input', refreshPlatiteljPreview); }\n            });\n            var nemaOibCb = document.getElementById('nema-oib');\n            if (nemaOibCb) { nemaOibCb.addEventListener('change', refreshPlatiteljPreview); }\n        }\n\n        \/\/ --- Ime za obrazac (potpis) automatski prati \"Ime i prezime\" (ili, ako je\n        \/\/ podnositelj pravna osoba, \"osobu koja predaje zahtjev\") dok ga korisnik\n        \/\/ ru\u010dno ne izmijeni ---\n        var imeEl = document.querySelector('[name=\"ime_prezime\"]');\n        var podnKontaktEl = document.querySelector('[name=\"podnositelj_kontakt\"]');\n        var potpisEl = document.querySelector('[name=\"potpis_ime\"]');\n        function syncPotpisFromSource(){\n            if (potpisEl.dataset.userEdited) { return; }\n            var jePravna = document.getElementById('podnositelj-pravna-osoba');\n            if (jePravna && jePravna.checked && podnKontaktEl) {\n                potpisEl.value = podnKontaktEl.value;\n            } else if (imeEl) {\n                potpisEl.value = imeEl.value;\n            }\n        }\n        if (potpisEl) {\n            if (imeEl) { imeEl.addEventListener('input', syncPotpisFromSource); }\n            if (podnKontaktEl) { podnKontaktEl.addEventListener('input', syncPotpisFromSource); }\n            potpisEl.addEventListener('input', function(){ potpisEl.dataset.userEdited = '1'; });\n        }\n\n        \/\/ --- \"Obrazac potpisuje druga osoba\" - polje je skriveno (i vrijednost prati\n        \/\/ podnositelja) dok se izri\u010dito ne ozna\u010di da netko drugi potpisuje ---\n        var potpisDrugaCb = document.getElementById('potpis-druga-osoba');\n        function refreshPotpisPreview(){\n            var box = document.getElementById('potpis-isti-preview');\n            var textEl = document.getElementById('potpis-isti-preview-text');\n            if (!box || !textEl) { return; }\n            var drugi = potpisDrugaCb && potpisDrugaCb.checked;\n            box.classList.toggle('dz-hidden', drugi);\n            if (drugi) { return; }\n            var jePravna = document.getElementById('podnositelj-pravna-osoba');\n            var naziv = (jePravna && jePravna.checked && podnKontaktEl) ? podnKontaktEl.value.trim() : (imeEl ? imeEl.value.trim() : '');\n            textEl.textContent = naziv || '\u2014';\n        }\n        function refreshPotpisDruga(){\n            var drugi = potpisDrugaCb && potpisDrugaCb.checked;\n            show('potpis-ime-polje', drugi);\n            if (!drugi && potpisEl) {\n                potpisEl.dataset.userEdited = '';\n                syncPotpisFromSource();\n            }\n            refreshPotpisPreview();\n        }\n        if (potpisDrugaCb) {\n            potpisDrugaCb.addEventListener('change', refreshPotpisDruga);\n            refreshPotpisDruga();\n            \/\/ Pregled se osvje\u017eava u\u017eivo i kad korisnik mijenja vlastito ime\/kontakt osobu.\n            if (imeEl) { imeEl.addEventListener('input', refreshPotpisPreview); }\n            if (podnKontaktEl) { podnKontaktEl.addEventListener('input', refreshPotpisPreview); }\n            var podnPravnaCbForPotpis = document.getElementById('podnositelj-pravna-osoba');\n            if (podnPravnaCbForPotpis) { podnPravnaCbForPotpis.addEventListener('change', refreshPotpisPreview); }\n        }\n\n        \/\/ --- \"Tra\u017eim podatke o sebi osobno\" - ne treba ponovno upisivati vlastito ime,\n        \/\/ pa se \u010ditavo polje potpuno sakriva (ne kroz show(), jer polje mora ostati\n        \/\/ omogu\u0107eno i poslano - samo vizualno ponavljanje se uklanja). ---\n        var ime2El = document.querySelector('[name=\"ime_prezime2\"]');\n        var ime2Wrap = document.getElementById('grupa-ime-sebe');\n        var odnosSebe = document.getElementById('odnos-sebe');\n        function refreshImeSebe(){\n            if (!odnosSebe || !ime2El) { return; }\n            if (odnosSebe.checked) {\n                \/\/ VA\u017dNO: ne prepisuj ru\u010dno uneseno ime osobe imenom podnositelja.\n                \/\/ Ako korisnik privremeno odabere \"o sebi\", pa se vrati na drugi odnos,\n                \/\/ njegovo prethodno uneseno ime mora ostati sa\u010duvano. Za odnos \"o sebi\"\n                \/\/ ime podnositelja koristi se autoritativno tek u pregledu i na serveru.\n                ime2El.removeAttribute('readonly');\n                if (ime2Wrap) { ime2Wrap.classList.add('dz-hidden'); }\n                \/\/ Polje ostaje omogu\u0107eno, ali gubi \"required\" dok je \"sebe\" odabrano -\n                \/\/ ina\u010de bi se isti podatak nepotrebno tra\u017eio\/brojio dvaput.\n                ime2El.removeAttribute('required');\n            } else {\n                ime2El.removeAttribute('readonly');\n                if (ime2Wrap) { ime2Wrap.classList.remove('dz-hidden'); }\n                \/\/ Required se vra\u0107a SAMO ako je nadre\u0111ena sekcija (grupa1do6) trenutno\n                \/\/ stvarno vidljiva - ina\u010de je show() ve\u0107 ispravno uklonio required jer\n                \/\/ cijela sekcija nije primjenjiva, i ne smijemo ga ovdje pogre\u0161no vratiti.\n                var grupa1do6El = document.getElementById('grupa1do6');\n                if (!grupa1do6El || !grupa1do6El.classList.contains('dz-hidden')) {\n                    ime2El.setAttribute('required', '');\n                }\n            }\n        }\n        document.querySelectorAll('input[name=\"odnos\"]').forEach(function(r){\n            r.addEventListener('change', refreshImeSebe);\n        });\n        if (imeEl) { imeEl.addEventListener('input', function(){ if (odnosSebe && odnosSebe.checked) { refreshImeSebe(); } }); }\n        refreshImeSebe();\n\n        \/\/ --- OIB \/ strana pravna osoba ---\n        \/\/ Hrvatska pravna osoba mora imati OIB. Strana pravna osoba mo\u017ee biti\n        \/\/ podnositelj i bez hrvatskog OIB-a; tada se tra\u017ei porezni\/VAT\/registracijski\n        \/\/ broj iz dr\u017eave sjedi\u0161ta. Za fizi\u010dke osobe zadr\u017eava se postoje\u0107e pravilo\n        \/\/ \"OIB ako je dodijeljen\" uz mogu\u0107nost ozna\u010davanja da OIB nije dodijeljen.\n        var oibEl = document.getElementById('oib-podnositelj');\n        var oibStar = document.getElementById('oib-star');\n        var oibNote = document.getElementById('oib-note');\n        var oibNoteEn = document.getElementById('oib-note-en');\n        var podnositeljPravnaCb = document.getElementById('podnositelj-pravna-osoba');\n        var nemaOibCb = document.getElementById('nema-oib');\n        var grupaNemaOib = document.getElementById('grupa-nema-oib');\n        var podnositeljDrzavaEl = document.getElementById('drzava-podnositelj');\n\n        function dzJeHrvatskaDrzava(value){\n            var v = String(value || '').trim().toLowerCase();\n            return v.indexOf('hrvatska') !== -1 || v.indexOf('croatia') !== -1;\n        }\n\n        function refreshOibRequired(){\n            if (!oibEl) { return; }\n            var jePravnaOsoba = podnositeljPravnaCb && podnositeljPravnaCb.checked;\n            var jeHrvatska = dzJeHrvatskaDrzava(podnositeljDrzavaEl ? podnositeljDrzavaEl.value : 'Hrvatska');\n            var stranaPravnaOsoba = jePravnaOsoba && !jeHrvatska;\n            var nemaOib = nemaOibCb && nemaOibCb.checked;\n\n            \/\/ Porezni\/registracijski broj iz dr\u017eave sjedi\u0161ta prikazuje se samo\n            \/\/ stranoj pravnoj osobi i tada je obvezan.\n            show('grupa-strani-pravni-id', stranaPravnaOsoba);\n\n            \/\/ Checkbox \"Nemam dodijeljen OIB\" ima smisla za fizi\u010dku osobu. Kod\n            \/\/ pravne osobe ga skrivamo: za hrvatsku je OIB obvezan, a kod strane\n            \/\/ pravne osobe OIB je jednostavno neobvezan.\n            if (grupaNemaOib) { grupaNemaOib.classList.toggle('dz-hidden', jePravnaOsoba); }\n            if (jePravnaOsoba && nemaOibCb) { nemaOibCb.checked = false; nemaOib = false; }\n\n            if (stranaPravnaOsoba) {\n                oibEl.removeAttribute('required');\n                oibEl.disabled = false;\n                if (oibStar) { oibStar.style.display = 'none'; }\n                if (oibNote) { oibNote.textContent = 'Neobvezno za stranu pravnu osobu; unesite samo ako joj je dodijeljen hrvatski OIB.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'Optional for a foreign legal entity; enter it only if a Croatian OIB has been assigned.'; }\n            } else if (jePravnaOsoba) {\n                oibEl.setAttribute('required', '');\n                oibEl.disabled = false;\n                if (oibStar) { oibStar.style.display = ''; }\n                if (oibNote) { oibNote.textContent = 'Obvezno za pravne osobe sa sjedi\u0161tem u Hrvatskoj.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'Mandatory for legal entities established in Croatia.'; }\n            } else if (nemaOib) {\n                oibEl.removeAttribute('required');\n                oibEl.disabled = true;\n                oibEl.value = '';\n                \/\/ oibEl.value = '' je izravna promjena svojstva i NE pokre\u0107e 'input'\n                \/\/ doga\u0111aj sam od sebe - bez ovoga bi eventualna prethodno prikazana\n                \/\/ poruka \"OIB nije ispravan\" ostala vidljiva iako je polje sad prazno\n                \/\/ i onemogu\u0107eno (wireOibChecksum() slu\u0161a ba\u0161 'input' doga\u0111aj).\n                oibEl.dispatchEvent(new Event('input', { bubbles: true }));\n                if (oibStar) { oibStar.style.display = 'none'; }\n                if (oibNote) { oibNote.textContent = 'OIB nije dodijeljen.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'No OIB has been assigned.'; }\n            } else {\n                oibEl.setAttribute('required', '');\n                oibEl.disabled = false;\n                if (oibStar) { oibStar.style.display = ''; }\n                if (oibNote) { oibNote.textContent = 'Obvezno ako vam je OIB dodijeljen.'; }\n                if (oibNoteEn) { oibNoteEn.textContent = 'Mandatory if you have been assigned an OIB.'; }\n            }\n        }\n        if (nemaOibCb) { nemaOibCb.addEventListener('change', refreshOibRequired); }\n        if (podnositeljDrzavaEl) { podnositeljDrzavaEl.addEventListener('input', refreshOibRequired); }\n        refreshOibRequired();\n\n        \/\/ --- \"Podnositelj je pravna osoba\" - prilagodba obrasca (naziv umjesto imena,\n        \/\/ dodatna osoba za kontakt, osobna iskaznica nije primjenjiva) ---\n        var podnLabel = document.getElementById('dz-lbl-ime_prezime-label');\n        var podnLabelEn = document.getElementById('dz-lbl-ime_prezime-en');\n        function refreshPodnositeljPravnaOsoba(){\n            var jePravna = podnositeljPravnaCb && podnositeljPravnaCb.checked;\n            show('grupa-podnositelj-kontakt', jePravna);\n            show('grupa-broj-iskaznice', !jePravna);\n            if (podnLabel) { podnLabel.textContent = jePravna ? 'Slu\u017ebeni naziv pravne osobe *' : 'Ime i prezime *'; }\n            if (podnLabelEn) { podnLabelEn.textContent = jePravna ? 'Full legal name of the legal entity' : 'First name and surname'; }\n            if (imeEl) { imeEl.setAttribute('autocomplete', jePravna ? 'organization' : 'name'); }\n            refreshOibRequired();\n            var platiteljIstiCb = document.getElementById('platitelj-isti');\n            if (platiteljIstiCb && platiteljIstiCb.checked && typeof refreshPlatiteljIsti === 'function') {\n                refreshPlatiteljIsti();\n            } else if (typeof updatePlatiteljPravnaHidden === 'function') {\n                updatePlatiteljPravnaHidden();\n            }\n        }\n        if (podnositeljPravnaCb) {\n            podnositeljPravnaCb.addEventListener('change', refreshPodnositeljPravnaOsoba);\n            refreshPodnositeljPravnaOsoba();\n        }\n\n        \/\/ --- Format po\u0161tanskog broja (5 znamenki) tra\u017ei se samo za adrese u Hrvatskoj ---\n        function wireCroatianPostcode(countryFieldId, postcodeFieldId, noteId, noteEnId){\n            var countryEl = document.getElementById(countryFieldId);\n            var postEl = document.getElementById(postcodeFieldId);\n            if (!countryEl || !postEl) { return; }\n            var noteEl = noteId ? document.getElementById(noteId) : null;\n            var noteEnEl = noteEnId ? document.getElementById(noteEnId) : null;\n            var pattern = postEl.getAttribute('pattern');\n            var title = postEl.getAttribute('title');\n            function refresh(){\n                var v = countryEl.value.trim().toLowerCase();\n                \/\/ Prepoznaje i pune\/slu\u017ebene oblike naziva (npr. \"Republika Hrvatska\"),\n                \/\/ ne samo to\u010dan naziv \"Hrvatska\"\/\"Croatia\".\n                var jeHrvatska = v.indexOf('hrvatska') !== -1 || v.indexOf('croatia') !== -1;\n                if (jeHrvatska) {\n                    if (pattern) { postEl.setAttribute('pattern', pattern); }\n                    if (title) { postEl.setAttribute('title', title); }\n                    if (noteEl) { noteEl.textContent = 'Upi\u0161ite po\u0161tanski broj i mjesto u obliku: 52000 Pazin.'; }\n                    if (noteEnEl) { noteEnEl.textContent = 'Enter the postal code and place in the following format: 52000 Pazin.'; }\n                } else {\n                    postEl.removeAttribute('pattern');\n                    postEl.removeAttribute('title');\n                    if (noteEl) { noteEl.textContent = 'Za inozemne adrese upi\u0161ite po\u0161tanski broj i mjesto\/grad prema formatu dr\u017eave. Ako dr\u017eava ne koristi po\u0161tanske brojeve, upi\u0161ite samo mjesto\/grad.'; }\n                    if (noteEnEl) { noteEnEl.textContent = 'For foreign addresses, enter the postal code and place\/city according to the format used in that country. If the country does not use postal codes, enter only the place\/city.'; }\n                }\n            }\n            countryEl.addEventListener('input', refresh);\n            refresh();\n        }\n        wireCroatianPostcode('drzava-podnositelj', 'ppt-mjesto-podnositelj', 'ppt-mjesto-podnositelj-note', 'ppt-mjesto-podnositelj-note-en');\n        wireCroatianPostcode('platitelj-drzava', 'platitelj-ppt-mjesto', 'platitelj-ppt-mjesto-note', 'platitelj-ppt-mjesto-note-en');\n    })();\n\n    (function(){\n        \/\/ Pametna korekcija velikih po\u010detnih slova pri izlasku iz polja.\n        \/\/ - imena osoba: svaka sastavnica imena\/prezimena dobiva veliko po\u010detno slovo\n        \/\/ - mjesta\/dr\u017eave: vlastite rije\u010di veliko, \u010desti veznici\/prijedlozi ostaju mali\n        \/\/ - ostali tekst: samo prvo slovo unosa veliko\n        \/\/ Tehni\u010dke vrijednosti (OIB, e-mail, datumi, brojevi akata itd.) ne mijenjaju se.\n        var dzNoInitialCapital = new Set([\n            'oib', 'platitelj_oib', 'strani_pravni_id', 'broj_iskaznice', 'datum',\n            'postanski_mjesto', 'platitelj_ppt_mjesto', 'rodjen', 'godine_skolovanja',\n            'godine_rada', 'godina_napustanja', 'godina_izgradnje', 'kat_cestica',\n            'broj_zk_uloska', 'broj_rjesenja', 'drugo_razdoblje'\n        ]);\n\n        var dzPersonNameFields = new Set([\n            'ime_prezime', 'podnositelj_kontakt', 'ime_prezime2', 'ime_oca',\n            'majka_djevojacko', 'pravna_osoba_kontakt', 'potpis_ime'\n        ]);\n\n        var dzProperPlaceFields = new Set([\n            'drzava', 'platitelj_drzava', 'mjesto_rodjenja', 'prebivaliste',\n            'kat_opcina', 'drugo_mjesto'\n        ]);\n\n        var dzLowerProperWords = new Set([\n            'i', 'u', 'na', 'od', 'do', 'iz', 'pri', 'kod', 'za', 's', 'sa', 'te',\n            'de', 'di', 'da', 'del', 'della', 'van', 'von'\n        ]);\n\n        function dzUpperFirstLetter(value){\n            var match = value.match(\/\\p{L}\/u);\n            if (!match) { return value; }\n            var i = match.index;\n            var upper = match[0].toLocaleUpperCase('hr-HR');\n            return value.slice(0, i) + upper + value.slice(i + match[0].length);\n        }\n\n        function dzCapitalizeName(value){\n            \/\/ Veliko slovo na po\u010detku svake sastavnice, uklju\u010duju\u0107i spojena imena\n            \/\/ i prezimena s crticom\/apostrofom: ana-marija o'brien -> Ana-Marija O'Brien.\n            return value.replace(\/(^|[\\s\\-\u2013\u2014'\u2019])(\\p{L})\/gu, function(_, sep, letter){\n                return sep + letter.toLocaleUpperCase('hr-HR');\n            });\n        }\n\n        function dzCapitalizeProperPlace(value){\n            var wordIndex = 0;\n            return value.replace(\/\\p{L}+\/gu, function(word){\n                var lower = word.toLocaleLowerCase('hr-HR');\n                var keepLower = wordIndex > 0 && dzLowerProperWords.has(lower);\n                wordIndex++;\n                if (keepLower) { return lower; }\n                return word.charAt(0).toLocaleUpperCase('hr-HR') + word.slice(1);\n            });\n        }\n\n        function dzCapitalizeCroatianPostalPlace(el, value){\n            var countryId = el.name === 'platitelj_ppt_mjesto' ? 'platitelj-drzava' : 'drzava-podnositelj';\n            var countryEl = document.getElementById(countryId);\n            var country = countryEl ? String(countryEl.value || '').toLocaleLowerCase('hr-HR') : '';\n            var isCroatia = country.indexOf('hrvatska') !== -1 || country.indexOf('croatia') !== -1;\n            if (!isCroatia) { return value; }\n            var m = value.match(\/^(\\s*\\d{5}\\s+)(.+)$\/u);\n            if (!m) { return value; }\n            return m[1] + dzCapitalizeProperPlace(m[2]);\n        }\n\n        function dzIsPersonNameField(el){\n            if (!el) { return false; }\n            if (el.name === 'ime_prezime') {\n                var applicantLegal = document.getElementById('podnositelj-pravna-osoba');\n                return !(applicantLegal && applicantLegal.checked);\n            }\n            if (el.name === 'platitelj_naziv') {\n                var payerLegal = document.getElementById('je-pravna-osoba');\n                return !(payerLegal && payerLegal.checked);\n            }\n            return dzPersonNameFields.has(el.name);\n        }\n\n        function dzCapitalizeInitial(el){\n            if (!el || el.type === 'email' || el.name === 'action' || el.readOnly || el.disabled) { return; }\n            var value = String(el.value || '');\n            if (!value) { return; }\n\n            var corrected;\n            if (el.name === 'postanski_mjesto' || el.name === 'platitelj_ppt_mjesto') {\n                corrected = dzCapitalizeCroatianPostalPlace(el, value);\n            } else if (dzNoInitialCapital.has(el.name)) {\n                return;\n            } else if (dzIsPersonNameField(el)) {\n                corrected = dzCapitalizeName(value);\n            } else if (dzProperPlaceFields.has(el.name)) {\n                corrected = dzCapitalizeProperPlace(value);\n            } else {\n                corrected = dzUpperFirstLetter(value);\n            }\n\n            if (corrected === value) { return; }\n            el.value = corrected;\n            el.dispatchEvent(new Event('input', { bubbles: true }));\n        }\n\n        function wrapWithIcon(el){\n            var wrap = document.createElement('div');\n            wrap.className = 'dz-field';\n            el.parentNode.insertBefore(wrap, el);\n            wrap.appendChild(el);\n            var icon = document.createElement('span');\n            icon.className = 'dz-icon';\n            wrap.appendChild(icon);\n\n            \/\/ Zelena kva\u010dica ozna\u010dava da je KORISNIK unio i ispravno popunio polje.\n            \/\/ Ne prikazujemo je za po\u010detne\/programski zadane vrijednosti (npr. dana\u0161nji\n            \/\/ datum ili zadanu dr\u017eavu) sve dok korisnik stvarno ne po\u010dne ure\u0111ivati polje.\n            var userEdited = false;\n\n            function validate(isBlur){\n                var required = el.hasAttribute('required');\n                \/\/ OIB polja (podnositelja i platitelja) imaju uvjetnu obveznost (\"ako\n                \/\/ je dodijeljen\") i ve\u0107 vlastitu, jasniju provjeru\/poruku preko\n                \/\/ wireOibChecksum() - ne prikazuj generi\u010dki crveni \"required, a\n                \/\/ prazno\" X odmah pri gubitku fokusa, jer to djeluje kao pogre\u0161na\n                \/\/ gre\u0161ka \u010dim korisnik upi\u0161e pa izbri\u0161e OIB.\n                var isOibField = (el.id === 'oib-podnositelj' || el.id === 'dz-lbl-platitelj_oib');\n                if (el.name === 'datum') {\n                    var m = el.value.match(\/^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})\\.?$\/);\n                    if (m) {\n                        var dEntered = new Date(parseInt(m[3],10), parseInt(m[2],10)-1, parseInt(m[1],10));\n                        var today = new Date(); today.setHours(0,0,0,0);\n                        el.setCustomValidity(dEntered < today ? 'Datum ne smije biti u pro\u0161losti.' : '');\n                    } else {\n                        el.setCustomValidity('');\n                    }\n                }\n                if (el.value.trim() === '') {\n                    if (required && isBlur && !isOibField) {\n                        el.classList.add('dz-err'); el.classList.remove('dz-ok');\n                        icon.textContent = '\u2715'; icon.classList.add('show','err'); icon.classList.remove('ok');\n                    } else {\n                        el.classList.remove('dz-ok','dz-err');\n                        icon.classList.remove('show','ok','err');\n                    }\n                    return;\n                }\n                var valid = el.checkValidity();\n\n                \/\/ Ispravno po\u010detno\/programski popunjeno polje ne dobiva kva\u010dicu prije\n                \/\/ korisni\u010dkog unosa. Neispravno polje se, me\u0111utim, i dalje mo\u017ee ozna\u010diti\n                \/\/ nakon \u0161to ga korisnik napusti, kako bi validacijska poruka ostala jasna.\n                if (valid && !userEdited) {\n                    el.classList.remove('dz-ok','dz-err');\n                    icon.classList.remove('show','ok','err');\n                    icon.textContent = '';\n                    return;\n                }\n\n                \/\/ Polje koje je obvezno SAMO preko \"required\" (bez pattern\/email\/itd.)\n                \/\/ je \"valjano\" ve\u0107 nakon prvog upisanog znaka - checkValidity() nema\n                \/\/ drugi uvjet za provjeriti. Zelena kva\u010dica odmah pri prvom slovu bi\n                \/\/ djelovala kao da je sadr\u017eaj ve\u0107 \"prihva\u0107en\", pa se za takva polja\n                \/\/ kva\u010dica prikazuje tek kad korisnik napusti polje (blur), ne u\u017eivo.\n                var hasFormatConstraint = el.hasAttribute('pattern') || el.type === 'email';\n                if (valid && !hasFormatConstraint && !isBlur) {\n                    el.classList.remove('dz-ok','dz-err');\n                    icon.classList.remove('show','ok','err');\n                    return;\n                }\n\n                el.classList.toggle('dz-ok', valid);\n                el.classList.toggle('dz-err', !valid);\n                icon.textContent = valid ? '\u2713' : '\u2715';\n                icon.classList.add('show');\n                icon.classList.toggle('ok', valid);\n                icon.classList.toggle('err', !valid);\n            }\n            el.addEventListener('input', function(ev){\n                \/\/ Event.isTrusted je true samo za stvarni korisni\u010dki unos, a false za\n                \/\/ programski dispatchEvent() koji se koristi npr. za automatski datum.\n                if (ev && ev.isTrusted) { userEdited = true; }\n                validate(false);\n            });\n            el.addEventListener('blur', function(){\n                dzCapitalizeInitial(el);\n                validate(true);\n            });\n        }\n\n        document.querySelectorAll('.dz-form input[type=\"text\"], .dz-form input[type=\"email\"], .dz-form textarea').forEach(wrapWithIcon);\n\n        \/\/ Automatski upi\u0161i dana\u0161nji datum\n        function setTodayDate(){\n            var datumEl = document.querySelector('input[name=\"datum\"]');\n            if (!datumEl) { return; }\n            var t = new Date();\n            var dd = String(t.getDate()).padStart(2, '0');\n            var mm = String(t.getMonth() + 1).padStart(2, '0');\n            datumEl.value = dd + '.' + mm + '.' + t.getFullYear() + '.';\n            datumEl.dispatchEvent(new Event('input', { bubbles: true }));\n        }\n        window.dzSetTodayDate = setTodayDate;\n        setTodayDate();\n\n        function markGroup(name, fieldsetId){\n            var radios = document.querySelectorAll('input[name=\"' + name + '\"]');\n            var fieldset = document.getElementById(fieldsetId);\n            if (!radios.length || !fieldset) return;\n            var legend = fieldset.querySelector('legend');\n            var icon = document.createElement('span');\n            icon.className = 'dz-legend-icon';\n            if (legend) legend.appendChild(icon);\n            function validate(){\n                var checked = Array.from(radios).some(function(r){ return r.checked; });\n                fieldset.classList.toggle('dz-group-ok', checked);\n                icon.textContent = checked ? '\u2713' : '';\n                icon.classList.toggle('ok', checked);\n            }\n            radios.forEach(function(r){ r.addEventListener('change', validate); });\n        }\n        markGroup('odnos', 'grupa-odnos');\n        markGroup('hitno', 'grupa-hitno');\n    })();\n\n    \/\/ --- Engleski prijevod: globalni prekida\u010d, stanje se pamti tijekom sesije ---\n    (function(){\n        var storageKey = 'dapa_zamolba_show_en';\n\n        function readState(){\n            try { return sessionStorage.getItem(storageKey) === '1'; }\n            catch(e) { return false; }\n        }\n\n        function saveState(show){\n            try { sessionStorage.setItem(storageKey, show ? '1' : '0'); }\n            catch(e) {}\n        }\n\n        function allEnglishElements(scope){\n            return (scope || document).querySelectorAll('.dz-en, .dz-choice-en');\n        }\n\n        function rememberDisplay(el){\n            if (el.dataset.dzOrigDisplay === undefined) {\n                var inlineDisplay = el.style.display;\n                el.dataset.dzOrigDisplay = inlineDisplay || '';\n            }\n        }\n\n        function setEnglishVisibility(show, scope){\n            allEnglishElements(scope).forEach(function(el){\n                \/\/ Engleski tekst u samoj jezi\u010dnoj kontroli mora uvijek biti vidljiv.\n                if (el.classList.contains('dz-language-card-en')) {\n                    el.style.removeProperty('display');\n                    return;\n                }\n\n                rememberDisplay(el);\n\n                if (show) {\n                    \/\/ Ukloni prethodno forsirano skrivanje i vrati prirodni CSS\/inline prikaz.\n                    el.style.removeProperty('display');\n\n                    \/\/ Ako je element originalno imao eksplicitni display, vrati ga.\n                    if (el.dataset.dzOrigDisplay) {\n                        el.style.display = el.dataset.dzOrigDisplay;\n                    }\n                } else {\n                    el.style.setProperty('display', 'none', 'important');\n                }\n            });\n        }\n\n        function syncControl(show){\n            document.querySelectorAll('.dz-language-card-global').forEach(function(card){\n                var hr = card.querySelector('.dz-language-card-hr');\n                var en = card.querySelector('.dz-language-card-en');\n                var btn = card.querySelector('.dz-en-toggle-step');\n                var state = card.querySelector('.dz-language-toggle-state');\n\n                if (hr) hr.textContent = show ? 'Sakrij engleski prijevod' : 'Prika\u017ei engleski prijevod';\n                if (en) en.textContent = show ? 'Hide English translation' : 'Show English translation';\n\n                if (btn) {\n                    btn.setAttribute('aria-pressed', show ? 'true' : 'false');\n                    btn.setAttribute('aria-label', show ? 'Sakrij engleski prijevod' : 'Prika\u017ei engleski prijevod');\n                }\n\n                if (state) state.textContent = show ? 'ON' : 'OFF';\n            });\n        }\n\n        function apply(show, scope){\n            document.documentElement.classList.toggle('dz-show-en', !!show);\n            setEnglishVisibility(show, scope || document);\n            syncControl(show);\n        }\n\n        \/\/ Koriste ga i dinami\u010dki\/AJAX u\u010ditani koraci.\n        window.dzApplyEnglishState = function(scope){\n            apply(readState(), scope || document);\n        };\n\n        document.addEventListener('click', function(e){\n            var btn = e.target.closest('.dz-en-toggle-step');\n            if (!btn) return;\n\n            var show = !readState();\n            saveState(show);\n            apply(show, document);\n        });\n\n        \/\/ Po\u010detno stanje.\n        apply(readState(), document);\n    })();\n\n    \/\/ --- Traka napretka + omogu\u0107avanje gumba tek kad je sve ispravno popunjeno ---\n    (function(){\n        var form = document.querySelector('form.dz-form');\n        var fill = document.getElementById('dz-progress-fill');\n        var text = document.getElementById('dz-progress-text');\n        var btn = document.getElementById('dz-submit-btn');\n        var hint = document.getElementById('dz-submit-hint');\n        var hintEn = document.getElementById('dz-submit-hint-en');\n        if (!form || !fill || !text || !btn) { return; }\n\n        function getRequiredUnits(){\n            \/\/ U validaciju ulaze samo stvarno aktivna i vidljiva obvezna polja.\n            \/\/ Skrivena polja iz drugih grana (npr. drugi platitelj\/potpisnik)\n            \/\/ ne smiju blokirati izradu PDF-a niti vra\u0107ati korisnika na Korak 5.\n            var els = Array.from(form.querySelectorAll('[required]')).filter(function(el){\n                if (el.disabled) { return false; }\n                if (el.closest('.dz-hidden')) { return false; }\n                return true;\n            });\n            var seenRadio = {};\n            var units = [];\n            els.forEach(function(el){\n                if (el.type === 'radio') {\n                    if (!seenRadio[el.name]) {\n                        seenRadio[el.name] = true;\n                        units.push({ type: 'radio', name: el.name });\n                    }\n                } else if (el.type === 'checkbox') {\n                    units.push({ type: 'checkbox', el: el });\n                } else {\n                    units.push({ type: 'field', el: el });\n                }\n            });\n            \/\/ Mora biti odabrana barem jedna to\u010dka (1.-12.) - checkbox grupa nema\n            \/\/ izvorni HTML mehanizam za \"barem jedan od vi\u0161e\", pa se provjerava posebno.\n            units.push({ type: 'checkboxgroup', selector: 'input[name=\"tocka[]\"]' });\n            \/\/ Ako je odabrana to\u010dka 1. (mati\u010dne knjige), mora biti odabrana i\n            \/\/ barem jedna vrsta (ro\u0111enih\/vjen\u010danih\/umrlih\/stanje du\u0161a).\n            units.push({ type: 'sub1group' });\n            return units;\n        }\n        function isUnitValid(u){\n            if (u.type === 'radio') {\n                return !!form.querySelector('input[name=\"' + u.name + '\"]:checked');\n            }\n            if (u.type === 'checkbox') {\n                return u.el.checked;\n            }\n            if (u.type === 'checkboxgroup') {\n                return form.querySelectorAll(u.selector + ':checked').length > 0;\n            }\n            if (u.type === 'sub1group') {\n                var t1 = form.querySelector('input[name=\"tocka[]\"][value=\"1\"]');\n                if (!t1 || !t1.checked) { return true; }\n                return form.querySelectorAll('input[name=\"tocka1_sub[]\"]:checked').length > 0;\n            }\n            return u.el.value.trim() !== '' && u.el.checkValidity();\n        }\n        \/**\n         * Potpuna inline validacija koraka 1 (bez modala): fokusira prvo neispravno\n         * polje, uz inline oznaku svih preostalih problemati\u010dnih obveznih polja.\n         *\/\n        function validateStep1(){\n            var units = getRequiredUnits();\n            var invalidUnits = units.filter(function(u){ return !isUnitValid(u); });\n            form.querySelectorAll('.dz-field-error').forEach(function(e){ e.remove(); });\n            form.querySelectorAll('[aria-invalid]').forEach(function(e){ e.removeAttribute('aria-invalid'); });\n            if (!invalidUnits.length) { return true; }\n            var isEn = !!(document.getElementById('dz-en-toggle') || {}).checked;\n            var msgs = {\n                radio: isEn ? 'Please select one of the offered options.' : 'Odaberite jednu od ponu\u0111enih opcija.',\n                checkbox: isEn ? 'This field is required.' : 'Ovo polje je obvezno.',\n                checkboxgroup: isEn ? 'Please select at least one option.' : 'Odaberite barem jednu opciju.',\n                sub1group: isEn ? 'Please select at least one civil register type.' : 'Odaberite barem jednu vrstu mati\u010dne knjige.',\n                field: isEn ? 'This field is required or is not filled in correctly.' : 'Ovo polje je obvezno ili nije ispravno popunjeno.'\n            };\n            var firstEl = null;\n            invalidUnits.forEach(function(u){\n                var target;\n                var relatedSelector = null;\n                if (u.type === 'radio') {\n                    target = form.querySelector('input[name=\"' + u.name + '\"]');\n                    relatedSelector = 'input[name=\"' + u.name + '\"]';\n                } else if (u.type === 'checkboxgroup') {\n                    target = form.querySelector(u.selector);\n                    relatedSelector = u.selector;\n                } else if (u.type === 'sub1group') {\n                    target = form.querySelector('input[name=\"tocka1_sub[]\"]');\n                    relatedSelector = 'input[name=\"tocka1_sub[]\"], input[name=\"tocka[]\"][value=\"1\"]';\n                } else {\n                    target = u.el;\n                }\n                if (!target) { return; }\n                if (!firstEl) { firstEl = target; }\n                if (window.dzShowFieldError) { window.dzShowFieldError(target, msgs[u.type] || msgs.field, false); }\n                \/\/ O\u010disti OVU inline gre\u0161ku odmah \u010dim korisnik ispravi stanje - bez\n                \/\/ toga poruka ostaje vidljiva sve do sljede\u0107eg poku\u0161aja slanja, iako\n                \/\/ je odabir ve\u0107 ispravan (npr. \"Odaberite barem jednu opciju.\" nakon\n                \/\/ \u0161to je opcija ve\u0107 odabrana).\n                function onFix(){\n                    if (isUnitValid(u)) {\n                        if (window.dzClearFieldError) { window.dzClearFieldError(target); }\n                        (relatedSelector ? form.querySelectorAll(relatedSelector) : [u.el]).forEach(function(relEl){\n                            relEl.removeEventListener('change', onFix);\n                            relEl.removeEventListener('input', onFix);\n                        });\n                    }\n                }\n                if (relatedSelector) {\n                    form.querySelectorAll(relatedSelector).forEach(function(relEl){\n                        relEl.addEventListener('change', onFix);\n                    });\n                } else if (u.el) {\n                    u.el.addEventListener('input', onFix);\n                    u.el.addEventListener('change', onFix);\n                }\n            });\n            if (firstEl) {\n                firstEl.focus();\n                firstEl.scrollIntoView({ behavior: 'smooth', block: 'center' });\n            }\n            return false;\n        }\n        window.dzValidateStep1 = validateStep1;\n        function updateProgress(){\n            var units = getRequiredUnits();\n            var total = units.length;\n            var valid = units.filter(isUnitValid).length;\n            var pct = total ? Math.round((valid \/ total) * 100) : 100;\n            fill.style.width = pct + '%';\n            text.textContent = pct + '% (' + valid + '\/' + total + ')';\n            var complete = pct >= 100;\n            fill.classList.toggle('dz-complete', complete);\n            text.classList.toggle('dz-complete', complete);\n            \/\/ Gumb ostaje uvijek klikabilan - klik na nepotpun obrazac fokusira prvo\n            \/\/ neispravno polje umjesto da gumb bude potpuno onemogu\u0107en (pristupa\u010dnije\n            \/\/ i jasnije korisniku \u0161to to\u010dno nedostaje).\n            if (hint) { hint.style.display = complete ? 'none' : ''; }\n            if (hintEn) {\n                var enToggleEl = document.getElementById('dz-en-toggle');\n                var enShown = enToggleEl && enToggleEl.checked;\n                hintEn.style.display = (complete || !enShown) ? 'none' : '';\n            }\n        }\n        form.addEventListener('input', updateProgress);\n        form.addEventListener('change', updateProgress);\n        \/\/ Vanjske promjene (auto-popunjavanje, prikaz\/sakrivanje sekcija) mogu\n        \/\/ promijeniti broj obveznih polja bez izravnog \"input\" eventa na formi.\n        var mo = new MutationObserver(function(){ updateProgress(); });\n        mo.observe(form, { attributes: true, attributeFilter: ['class', 'required'], subtree: true });\n        updateProgress();\n    })();\n\n    \/\/ --- Generi\u010dki modal sustav (dialog, fokus, ESC, povratak fokusa) ---\n    var dzModalLastFocus = null;\n    var dzModalCancelBtn = null;\n    function dzModalKeyHandler(e){\n        var modal = document.getElementById('dz-modal');\n        if (e.key === 'Escape') {\n            e.preventDefault();\n            if (dzModalCancelBtn) { dzModalCancelBtn.click(); } else { dzCloseModal(); }\n            return;\n        }\n        if (e.key === 'Tab') {\n            var focusable = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n            if (!focusable.length) { return; }\n            var first = focusable[0], last = focusable[focusable.length - 1];\n            if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n            else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n        }\n    }\n    function dzCloseModal(){\n        var backdrop = document.getElementById('dz-modal-backdrop');\n        backdrop.classList.add('dz-hidden');\n        var mainWrap = document.getElementById('dz-main-content');\n        if (mainWrap) { mainWrap.removeAttribute('inert'); }\n        document.removeEventListener('keydown', dzModalKeyHandler);\n        dzModalCancelBtn = null;\n        if (dzModalLastFocus && typeof dzModalLastFocus.focus === 'function') { dzModalLastFocus.focus(); }\n    }\n    \/**\n     * opts = { title, bodyHtml, bodyHtmlEn, buttons: [{label, labelEn, primary, isCancel, onClick}] }\n     * Modal se zatvara TEK klikom na gumb (ili Esc = Cancel gumb ako postoji) - klik na pozadinu ne zatvara.\n     *\/\n    \/** Trenutno stanje EN prekida\u010da, \u010ditano izravno (neovisno o applyEnToggleTo\/hook lancu) - koristi ga dzOpenModal da izbjegne mogu\u0107 problem s vremenom izvr\u0161avanja. *\/\n    function dzReadEnglishState(){\n        try { return sessionStorage.getItem('dapa_zamolba_show_en') === '1'; }\n        catch (e) { return false; }\n    }\n    function dzOpenModal(opts){\n        opts = opts || {};\n\n        var dzEnOn = dzReadEnglishState();\n\n        dzModalLastFocus = document.activeElement;\n        var backdrop = document.getElementById('dz-modal-backdrop');\n        var modalEl = document.getElementById('dz-modal');\n        var iconEl = document.getElementById('dz-modal-icon');\n        var titleEl = document.getElementById('dz-modal-title');\n        var descEl = document.getElementById('dz-modal-desc');\n        var buttonsEl = document.getElementById('dz-modal-buttons');\n\n        \/\/ Jedinstveni moderni vizual svih modala; tip se mo\u017ee zadati s opts.type,\n        \/\/ a za postoje\u0107e pozive odre\u0111uje se i automatski iz naslova\/sadr\u017eaja.\n        var modalType = opts.type || '';\n        if (!modalType) {\n            var t = (opts.title || '').toLowerCase();\n            if (\/(nije|prekid|prekora\u010den|neva\u017ee\u0107|pogre\u0161k|failed|interrupted|exceeded|invalid)\/.test(t)) modalType = 'error';\n            else if (\/(preuzet|uspje|downloaded|success)\/.test(t)) modalType = 'success';\n            else if ((opts.buttons || []).length > 1 || \/(promjen|izmijen|potvrd|confirm|changed)\/.test(t)) modalType = 'warning';\n            else modalType = 'info';\n        }\n        modalEl.classList.remove('dz-modal-error','dz-modal-warning','dz-modal-success','dz-modal-info');\n        modalEl.classList.add('dz-modal-' + modalType);\n        iconEl.textContent = modalType === 'error' ? '!' : (modalType === 'success' ? '\u2713' : (modalType === 'warning' ? '!' : 'i'));\n        modalEl.setAttribute('data-type', modalType);\n        titleEl.innerHTML = '';\n        titleEl.appendChild(document.createTextNode(opts.title));\n        if (opts.titleEn) {\n            var titleEnEl = document.createElement('span');\n            titleEnEl.className = 'dz-en';\n            titleEnEl.setAttribute('lang', 'en');\n            titleEnEl.style.setProperty('display', dzEnOn ? 'block' : 'none', 'important');\n            titleEnEl.textContent = opts.titleEn;\n            titleEl.appendChild(titleEnEl);\n        }\n        var descHtml = '<p>' + opts.bodyHtml + '<\/p>';\n        if (opts.bodyHtmlEn) {\n            descHtml += '<p class=\"dz-en\" lang=\"en\" style=\"display:' + (dzEnOn ? 'block' : 'none') + ' !important;\">' + opts.bodyHtmlEn + '<\/p>';\n        }\n        descEl.innerHTML = descHtml;\n        buttonsEl.innerHTML = '';\n        dzModalCancelBtn = null;\n        (opts.buttons || []).forEach(function(b){\n            var btn = document.createElement('button');\n            btn.type = 'button';\n            btn.className = b.primary ? 'dz-submit' : 'dz-modal-btn-secondary';\n            btn.textContent = b.label;\n            if (b.labelEn) {\n                var enSpan = document.createElement('span');\n                enSpan.className = 'dz-en';\n                enSpan.setAttribute('lang', 'en');\n                enSpan.style.setProperty('display', dzEnOn ? 'block' : 'none', 'important');\n                enSpan.textContent = b.labelEn;\n                btn.appendChild(enSpan);\n            }\n            btn.addEventListener('click', function(){\n                dzCloseModal();\n                if (b.onClick) { b.onClick(); }\n            });\n            buttonsEl.appendChild(btn);\n            if (b.isCancel) { dzModalCancelBtn = btn; }\n        });\n        applyEnToggleTo(backdrop);\n        backdrop.classList.remove('dz-hidden');\n        var mainWrap = document.getElementById('dz-main-content');\n        if (mainWrap) { mainWrap.setAttribute('inert', ''); }\n        document.getElementById('dz-modal').focus();\n        document.addEventListener('keydown', dzModalKeyHandler);\n    }\n    function applyEnToggleTo(scope){\n        if (window.dzApplyEnglishState) {\n            window.dzApplyEnglishState(scope);\n            return;\n        }\n        var show = false;\n        try { show = sessionStorage.getItem('dapa_zamolba_show_en') === '1'; } catch(e) {}\n        scope.querySelectorAll('.dz-en, .dz-choice-en').forEach(function(el){\n            if (el.classList.contains('dz-language-card-en')) { return; }\n            if (el.dataset.origDisplay === undefined) { el.dataset.origDisplay = el.style.display || ''; }\n            el.style.setProperty('display', show ? el.dataset.origDisplay : 'none', 'important');\n        });\n        dzShowPdfReadyModal(scope);\n        if (typeof dzShowStep8StatusModals === 'function') { dzShowStep8StatusModals(scope); }\n        if (typeof dzShowRemainingSystemErrorModals === 'function') { dzShowRemainingSystemErrorModals(scope); }\n    }\n\n    \/\/ --- AJAX: korak 2\/3 se ume\u0107e ispod koraka 1, bez prelaska na novu stranicu ---\n    (function(){\n        var step1Form = document.getElementById('dz-step1-form');\n        var container = document.getElementById('dz-step2-container');\n        if (!step1Form || !container) { return; }\n\n        var DZ_MAX_TOTAL_SIZE = 15 * 1024 * 1024; \/\/ 15 MB ukupno za sve dokumente uz jednu zamolbu\n        var dzFileOrderCounter = 0;\n        function dzTagOrder(file){\n            if (typeof file._dzOrder === 'undefined') { file._dzOrder = ++dzFileOrderCounter; }\n            return file._dzOrder;\n        }\n\n        var dzFiles = { potpisani_obrazac: null, potpisani_obrazac_2: null, potpisani_obrazac_3: null, dodatni_dokumenti: [] };\n        \/\/ Provjera potpisa nalazi se u zasebnom <script> bloku i ne vidi ovu\n        \/\/ lokalnu varijablu - zato joj se izla\u017ee funkcija koja vra\u0107a trenutno stanje.\n        window.dzGetUploadedFiles = function(){ return dzFiles; };\n        var dzFormDirty = false;\n        var dzAlreadyGeneratedOnce = false;\n        var dzPdfOutdated = false;\n        var dzOverLimitModalShown = false;\n\n        function markDirty(e){\n            dzFormDirty = true;\n            if (!dzAlreadyGeneratedOnce) { return; }\n            \/\/ pa njihova promjena ne smije u\u010diniti ve\u0107 izra\u0111eni PDF neva\u017ee\u0107im.\n            var t = e && e.target;\n            if (t && (t.closest && t.closest('.dz-en-toggle-step'))) { return; }\n            dzPdfOutdated = true;\n            \/\/ Ako korisnik nakon izrade PDF-a promijeni podatke, ponovno mu ponudi\n            \/\/ izradu PDF-a, a sakrij prelazak na korak 7 dok novi PDF ne bude izra\u0111en.\n            var regenBtn = document.getElementById('dz-submit-btn');\n            var nextBtn = document.getElementById('dz-continue-to-step7');\n            if (regenBtn) { regenBtn.classList.remove('dz-hidden'); }\n            if (nextBtn) { nextBtn.classList.add('dz-hidden'); }\n        }\n        step1Form.addEventListener('input', markDirty);\n        step1Form.addEventListener('change', markDirty);\n        window.addEventListener('beforeunload', function(e){\n            if (dzFormDirty) { e.preventDefault(); e.returnValue = ''; return ''; }\n        });\n\n        function formatSizeHr(bytes){\n            var mb = bytes \/ (1024 * 1024);\n            return mb.toFixed(1).replace('.', ',') + ' MB';\n        }\n        function dzFileKey(f){ return f.name + '|' + f.size + '|' + f.lastModified + '|' + f.type; }\n        function dzExtOk(fieldKey, filename){\n            var name = filename.toLowerCase();\n            return \/\\.pdf$\/.test(name) || \/\\.jpe?g$\/.test(name) || \/\\.png$\/.test(name);\n        }\n        \/** Ponovno gradi input.files preko DataTransfer-a, tako da stvarni FormData\n         * pri slanju odgovara na\u0161em JS stanju (nu\u017eno za polja s \"multiple\" gdje\n         * dodajemo datoteke postupno, a ne zamjenjujemo cijeli odabir svaki put). *\/\n        function dzSyncInputFiles(input, fileArray){\n            if (!input || typeof DataTransfer === 'undefined') { return; }\n            var dt = new DataTransfer();\n            fileArray.forEach(function(f){ dt.items.add(f); });\n            input.files = dt.files;\n        }\n        \/** Globalna provjera duplikata preko svih polja, ne samo unutar istog multi-file polja. *\/\n        function dzGlobalDuplicateExists(file, excludeField){\n            var k = dzFileKey(file);\n            var fields = ['potpisani_obrazac', 'potpisani_obrazac_2', 'potpisani_obrazac_3', 'dodatni_dokumenti'];\n            for (var i = 0; i < fields.length; i++) {\n                var fld = fields[i];\n                if (fld === excludeField) { continue; }\n                var v = dzFiles[fld];\n                if (Array.isArray(v)) {\n                    for (var j = 0; j < v.length; j++) { if (dzFileKey(v[j]) === k) { return true; } }\n                } else if (v && dzFileKey(v) === k) {\n                    return true;\n                }\n            }\n            return false;\n        }\n\n        function calcTotalSize(){\n            var total = 0;\n            if (dzFiles.potpisani_obrazac) { total += dzFiles.potpisani_obrazac.size; }\n            if (dzFiles.potpisani_obrazac_2) { total += dzFiles.potpisani_obrazac_2.size; }\n            if (dzFiles.potpisani_obrazac_3) { total += dzFiles.potpisani_obrazac_3.size; }\n            dzFiles.dodatni_dokumenti.forEach(function(f){ total += f.size; });\n            return total;\n        }\n\n        function renderFileList(){\n            var listEl = container.querySelector('#dz-file-list');\n            var totalEl = container.querySelector('#dz-total-size');\n            if (!listEl || !totalEl) { return; }\n            listEl.innerHTML = '';\n            ['potpisani_obrazac','potpisani_obrazac_2','potpisani_obrazac_3','dodatni_dokumenti'].forEach(function(field){\n                var slot = container.querySelector('#dz-slot-' + field);\n                if (slot) { slot.innerHTML = ''; }\n            });\n\n            var kindLabels = {\n                potpisani_obrazac: { hr: 'Potpisani obrazac', en: 'Signed form' },\n                potpisani_obrazac_2: { hr: 'Potpisani obrazac \u2013 stranica 2', en: 'Signed form \u2013 page 2' },\n                potpisani_obrazac_3: { hr: 'Potpisani obrazac \u2013 stranica 3', en: 'Signed form \u2013 page 3' },\n                dodatni_dokumenti: { hr: 'Dodatni dokument', en: 'Additional document' }\n            };\n            var items = [];\n            if (dzFiles.potpisani_obrazac) { items.push({ file: dzFiles.potpisani_obrazac, field: 'potpisani_obrazac', index: null }); }\n            if (dzFiles.potpisani_obrazac_2) { items.push({ file: dzFiles.potpisani_obrazac_2, field: 'potpisani_obrazac_2', index: null }); }\n            if (dzFiles.potpisani_obrazac_3) { items.push({ file: dzFiles.potpisani_obrazac_3, field: 'potpisani_obrazac_3', index: null }); }\n            dzFiles.dodatni_dokumenti.forEach(function(f, i){ items.push({ file: f, field: 'dodatni_dokumenti', index: i }); });\n            items.sort(function(a, b){ return dzTagOrder(a.file) - dzTagOrder(b.file); });\n\n            items.forEach(function(it){\n                var kind = kindLabels[it.field] || { hr: '', en: '' };\n                var row = document.createElement('div');\n                row.className = 'dz-file-row dz-modern-file-row';\n                var nameSpan = document.createElement('span');\n                nameSpan.className = 'dz-file-name';\n                nameSpan.appendChild(document.createTextNode(it.file.name));\n                var sizeSpan = document.createElement('small');\n                sizeSpan.className = 'dz-modern-file-size';\n                sizeSpan.textContent = formatSizeHr(it.file.size);\n                nameSpan.appendChild(sizeSpan);\n                row.appendChild(nameSpan);\n                var btn = document.createElement('button');\n                btn.type = 'button';\n                btn.className = 'dz-modern-remove';\n                btn.innerHTML = '\u00d7&nbsp; Ukloni <span class=\"dz-en\" lang=\"en\" style=\"display:inline;\">(Remove)<\/span>';\n                btn.addEventListener('click', function(){ removeFile(it.field, it.index); });\n                row.appendChild(btn);\n                var slot = container.querySelector('#dz-slot-' + it.field);\n                if (slot) { slot.appendChild(row); }\n                else { listEl.appendChild(row); }\n            });\n            applyEnToggleTo(container);\n            var total = calcTotalSize();\n            var overLimit = total > DZ_MAX_TOTAL_SIZE;\n            totalEl.className = overLimit ? 'dz-total-size-warn' : '';\n            totalEl.innerHTML = 'Ukupna veli\u010dina: ' + formatSizeHr(total) + ' od dopu\u0161tenih 15 MB' +\n                ' <span class=\"dz-en\" lang=\"en\" style=\"display:inline;font-weight:400;font-style:italic;\">(Total size: ' + formatSizeHr(total) + ' of the 15 MB allowed)<\/span>';\n            totalEl.style.display = total > 0 ? 'block' : 'none';\n            applyEnToggleTo(totalEl);\n            var submitBtn = container.querySelector('#dz-step3-submit');\n            if (submitBtn) { submitBtn.disabled = overLimit; }\n            if (overLimit && !dzOverLimitModalShown) {\n                dzOverLimitModalShown = true;\n                dzOpenModal({\n                    type: 'error',\n                    title: 'Prekora\u010dena dopu\u0161tena veli\u010dina datoteka',\n                    titleEn: 'File size limit exceeded',\n                    bodyHtml: 'Ukupna veli\u010dina svih datoteka prilo\u017eenih uz jednu zamolbu ne smije biti ve\u0107a od 15 MB. Uklonite neku datoteku ili smanjite veli\u010dinu privitaka pa poku\u0161ajte ponovno.',\n                    bodyHtmlEn: 'The combined size of all files attached to a single request must not exceed 15 MB. Remove one of the attachments or reduce its size.',\n                    buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                });\n            } else if (!overLimit) {\n                dzOverLimitModalShown = false;\n            }\n            return overLimit;\n        }\n\n        function removeFile(field, index){\n            if (field === 'potpisani_obrazac' || field === 'potpisani_obrazac_2' || field === 'potpisani_obrazac_3') {\n                dzFiles[field] = null;\n                var input = container.querySelector('#dz-lbl-' + field);\n                if (input) { input.value = ''; }\n            } else {\n                dzFiles[field].splice(index, 1);\n                \/\/ Multi-file polja su stvarni <input multiple> - nakon uklanjanja iz\n                \/\/ JS niza, ponovno gradimo i pravi input.files preko DataTransfer-a.\n                var multiInput = container.querySelector('#dz-lbl-' + field);\n                dzSyncInputFiles(multiInput, dzFiles[field]);\n            }\n            renderFileList();\n        }\n\n\n        \/**\n         * Normalizira fotografiju stranice potpisanog obrasca prije stvarnog slanja:\n         * - po\u0161tuje EXIF Orientation kad ga preglednik mo\u017ee pro\u010ditati\n         * - fizi\u010dki upisuje ispravnu orijentaciju u novu bitmapu\n         * - ako je stranica i dalje polo\u017eena vodoravno, okre\u0107e je u portretni polo\u017eaj\n         * - PDF se ne mijenja\n         *\n         * Vra\u0107a Promise<File>. Ako obrada nije mogu\u0107a, vra\u0107a izvornu datoteku.\n         *\/\n        function dzNormalizeSignedFormImage(file, fieldKey){\n            var signedKeys = ['potpisani_obrazac', 'potpisani_obrazac_2', 'potpisani_obrazac_3'];\n            if (!file || signedKeys.indexOf(fieldKey) === -1) {\n                return Promise.resolve(file);\n            }\n\n            var name = String(file.name || '').toLowerCase();\n            var type = String(file.type || '').toLowerCase();\n            var isPdf = type === 'application\/pdf' || \/\\.pdf$\/i.test(name);\n            var isImage = \/^image\\\/(jpeg|png)$\/i.test(type) || \/\\.(jpe?g|png)$\/i.test(name);\n\n            if (isPdf || !isImage) {\n                return Promise.resolve(file);\n            }\n\n            function canvasToFile(canvas, originalFile){\n                return new Promise(function(resolve){\n                    var outType = String(originalFile.type || '').toLowerCase();\n                    if (outType !== 'image\/png' && outType !== 'image\/jpeg') {\n                        outType = \/\\.png$\/i.test(originalFile.name || '') ? 'image\/png' : 'image\/jpeg';\n                    }\n\n                    var quality = outType === 'image\/jpeg' ? 0.94 : undefined;\n                    canvas.toBlob(function(blob){\n                        if (!blob) {\n                            resolve(originalFile);\n                            return;\n                        }\n\n                        try {\n                            resolve(new File(\n                                [blob],\n                                originalFile.name,\n                                {\n                                    type: outType,\n                                    lastModified: originalFile.lastModified || Date.now()\n                                }\n                            ));\n                        } catch (e) {\n                            \/\/ Stariji browseri: Blob je jo\u0161 uvijek valjan za upload,\n                            \/\/ ali zadr\u017eavamo original radi kompatibilnosti.\n                            resolve(originalFile);\n                        }\n                    }, outType, quality);\n                });\n            }\n\n            function drawNormal(source, sw, sh){\n                try {\n                    \/\/ Stranice obrasca su A4\/portret. Ako nakon EXIF korekcije\n                    \/\/ bitmapa ostane vodoravna, fizi\u010dki je okreni za 90\u00b0.\n                    var rotateToPortrait = sw > sh;\n                    var canvas = document.createElement('canvas');\n                    var ctx = canvas.getContext('2d');\n\n                    if (!ctx) return Promise.resolve(file);\n\n                    if (rotateToPortrait) {\n                        canvas.width = sh;\n                        canvas.height = sw;\n                        ctx.translate(canvas.width, 0);\n                        ctx.rotate(Math.PI \/ 2);\n                        ctx.drawImage(source, 0, 0, sw, sh);\n                    } else {\n                        canvas.width = sw;\n                        canvas.height = sh;\n                        ctx.drawImage(source, 0, 0, sw, sh);\n                    }\n\n                    return canvasToFile(canvas, file);\n                } catch (e) {\n                    return Promise.resolve(file);\n                }\n            }\n\n            \/\/ Preferirano: browser dekodira JPEG uz EXIF Orientation, a canvas\n            \/\/ zatim sprema fizi\u010dki ispravno orijentiranu sliku bez oslanjanja na EXIF.\n            if (window.createImageBitmap) {\n                try {\n                    return createImageBitmap(file, { imageOrientation: 'from-image' })\n                        .then(function(bitmap){\n                            return drawNormal(bitmap, bitmap.width, bitmap.height)\n                                .then(function(result){\n                                    if (bitmap && bitmap.close) bitmap.close();\n                                    return result;\n                                });\n                        })\n                        .catch(function(){\n                            return dzNormalizeSignedFormImageFallback(file);\n                        });\n                } catch (e) {\n                    return dzNormalizeSignedFormImageFallback(file);\n                }\n            }\n\n            return dzNormalizeSignedFormImageFallback(file);\n        }\n\n        function dzNormalizeSignedFormImageFallback(file){\n            return new Promise(function(resolve){\n                var url;\n                try {\n                    url = URL.createObjectURL(file);\n                } catch (e) {\n                    resolve(file);\n                    return;\n                }\n\n                var img = new Image();\n\n                img.onload = function(){\n                    try {\n                        var sw = img.naturalWidth || img.width;\n                        var sh = img.naturalHeight || img.height;\n                        var rotateToPortrait = sw > sh;\n\n                        var canvas = document.createElement('canvas');\n                        var ctx = canvas.getContext('2d');\n                        if (!ctx) {\n                            URL.revokeObjectURL(url);\n                            resolve(file);\n                            return;\n                        }\n\n                        if (rotateToPortrait) {\n                            canvas.width = sh;\n                            canvas.height = sw;\n                            ctx.translate(canvas.width, 0);\n                            ctx.rotate(Math.PI \/ 2);\n                            ctx.drawImage(img, 0, 0, sw, sh);\n                        } else {\n                            canvas.width = sw;\n                            canvas.height = sh;\n                            ctx.drawImage(img, 0, 0, sw, sh);\n                        }\n\n                        var outType = String(file.type || '').toLowerCase();\n                        if (outType !== 'image\/png' && outType !== 'image\/jpeg') {\n                            outType = \/\\.png$\/i.test(file.name || '') ? 'image\/png' : 'image\/jpeg';\n                        }\n\n                        canvas.toBlob(function(blob){\n                            URL.revokeObjectURL(url);\n\n                            if (!blob) {\n                                resolve(file);\n                                return;\n                            }\n\n                            try {\n                                resolve(new File(\n                                    [blob],\n                                    file.name,\n                                    {\n                                        type: outType,\n                                        lastModified: file.lastModified || Date.now()\n                                    }\n                                ));\n                            } catch (e) {\n                                resolve(file);\n                            }\n                        }, outType, outType === 'image\/jpeg' ? 0.94 : undefined);\n                    } catch (e) {\n                        URL.revokeObjectURL(url);\n                        resolve(file);\n                    }\n                };\n\n                img.onerror = function(){\n                    URL.revokeObjectURL(url);\n                    resolve(file);\n                };\n\n                img.src = url;\n            });\n        }\n\n        function dzPutSingleFileBackIntoInput(input, file){\n            if (!input || !file || typeof DataTransfer === 'undefined') return;\n            try {\n                var dt = new DataTransfer();\n                dt.items.add(file);\n                input.files = dt.files;\n            } catch (e) {}\n        }\n\n        function wireSingleFileInput(input, fieldKey){\n            if (!input) { return; }\n\n            input.addEventListener('change', async function(){\n                var file = input.files && input.files[0];\n                if (!file) { return; }\n\n                if (!dzExtOk(fieldKey, file.name)) {\n                    dzOpenModal({\n                        type: 'error',\n                        title: 'Nedopu\u0161tena vrsta datoteke',\n                        titleEn: 'Unsupported file type',\n                        bodyHtml: 'Odabrana datoteka nije u podr\u017eanom formatu. U\u010ditajte datoteku u formatu PDF, JPG, JPEG ili PNG.',\n                        bodyHtmlEn: 'The selected file is not in a supported format. Upload a PDF, JPG, JPEG or PNG file.',\n                        buttons: [{ label: 'U redu', labelEn: 'OK', primary: true, onClick: function(){ input.focus(); } }]\n                    });\n                    input.value = '';\n                    return;\n                }\n\n                \/\/ Fotografije potpisanog obrasca fizi\u010dki se normaliziraju prije\n                \/\/ spremanja u dzFiles i prije stvarnog slanja na server.\n                file = await dzNormalizeSignedFormImage(file, fieldKey);\n                dzPutSingleFileBackIntoInput(input, file);\n\n                if (dzGlobalDuplicateExists(file, fieldKey)) {\n                    input.value = '';\n                    dzOpenModal({\n                        type: 'warning',\n                        title: 'Datoteka je ve\u0107 dodana',\n                        titleEn: 'File already added',\n                        bodyHtml: 'Odabrana datoteka ve\u0107 je me\u0111u prilozima. Odaberite drugu datoteku.',\n                        bodyHtmlEn: 'The selected file has already been added to the attachments. Please choose a different file.',\n                        buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                    });\n                    return;\n                }\n\n                dzTagOrder(file);\n                dzFiles[fieldKey] = file;\n                dzFormDirty = true;\n                renderFileList();\n                wireTwoPageLogic();\n            });\n        }\n\n        function wireMultiFileInput(input, fieldKey){\n            if (!input) { return; }\n            input.addEventListener('change', function(){\n                var newFiles = Array.prototype.slice.call(input.files || []);\n                var duplicateFound = false;\n                newFiles.forEach(function(file){\n                    if (!dzExtOk(fieldKey, file.name)) {\n                        dzOpenModal({\n                            type: 'error',\n                            title: 'Nedopu\u0161tena vrsta datoteke',\n                            titleEn: 'Unsupported file type',\n                            bodyHtml: 'Odabrana datoteka nije u podr\u017eanom formatu. U\u010ditajte datoteku u formatu PDF, JPG, JPEG ili PNG.',\n                            bodyHtmlEn: 'The selected file is not in a supported format. Upload a PDF, JPG, JPEG or PNG file.',\n                            buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                        });\n                        return;\n                    }\n                    if (dzGlobalDuplicateExists(file)) { duplicateFound = true; return; }\n                    dzTagOrder(file);\n                    dzFiles[fieldKey].push(file);\n                });\n                dzSyncInputFiles(input, dzFiles[fieldKey]);\n                dzFormDirty = true;\n                renderFileList();\n                if (duplicateFound) {\n                    dzOpenModal({\n                        type: 'warning',\n                        title: 'Datoteka je ve\u0107 dodana',\n                        titleEn: 'File already added',\n                        bodyHtml: 'Odabrana datoteka ve\u0107 je me\u0111u prilozima. Odaberite drugu datoteku.',\n                        bodyHtmlEn: 'The selected file has already been added to the attachments. Please choose a different file.',\n                        buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                    });\n                }\n            });\n        }\n\n        \/\/ --- Druga stranica obvezna je samo ako prva NIJE PDF ---\n        function dzValidateRequiredAdditionalDocuments(){ return true; }\n\n        function wireTwoPageLogic(){\n            var note = container.querySelector('#dz-str2-note');\n            var star = container.querySelector('#dz-str2-star');\n            var wrap = container.querySelector('#grupa-stranica2');\n            var file = dzFiles.potpisani_obrazac;\n            if (!note || !star || !wrap) { return; }\n            if (!file) {\n                \/\/ Dok prva stranica nije odabrana, ne znamo je li druga stranica\n                \/\/ uop\u0107e potrebna - polje ostaje potpuno skriveno.\n                wrap.classList.add('dz-hidden');\n                star.textContent = '';\n                return;\n            }\n            var isPdf = file.type === 'application\/pdf' || \/\\.pdf$\/i.test(file.name);\n            if (isPdf) {\n                wrap.classList.add('dz-hidden');\n                star.textContent = '';\n            } else {\n                wrap.classList.remove('dz-hidden');\n                star.textContent = '*';\n            }\n        }\n\n        function setStepUrl(params){\n            try {\n                var url = new URL(window.location.href);\n                Object.keys(params).forEach(function(k){ url.searchParams.set(k, params[k]); });\n                history.pushState(null, '', url.toString());\n            } catch (e) {}\n        }\n\n        function setStepStatus(step, mode){\n            var overview = document.getElementById('dz-steps-overview');\n            if (!overview) { return; }\n            overview.querySelectorAll('.dz-step-item').forEach(function(el){\n                var n = parseInt(el.getAttribute('data-step'), 10);\n                el.classList.remove('dz-step-active', 'dz-step-done');\n                if (n < step || (n === step && mode === 'done')) {\n                    el.classList.add('dz-step-done');\n                } else if (n === step) {\n                    el.classList.add('dz-step-active');\n                }\n            });\n        }\n\n        function wireDownloadConfirm(scope){\n            var link = scope.querySelector('#dz-download-link');\n            var box = scope.querySelector('#dz-download-box');\n            if (!link) { return; }\n            link.addEventListener('click', function(){\n                if (box) { box.classList.add('dz-download-confirmed'); }\n                \/\/ Preuzimanje PDF-a dio je zavr\u0161nog Koraka 7.\n                setStepStatus(7, 'active');\n                var status = scope.querySelector('#dz-download-status');\n                if (status) {\n                    status.hidden = false;\n                    status.classList.add('is-visible');\n                }\n            });\n            var backBtn = scope.querySelector('#dz-step2-back');\n            if (backBtn) {\n                backBtn.addEventListener('click', function(){\n                    if (window.dzWizardShowStep) { window.dzWizardShowStep(6); }\n                    else { step1Form.scrollIntoView({ behavior: 'smooth', block: 'start' }); setStepStatus(6, 'active'); }\n                });\n            }\n        }\n\n        \/\/ --- Validacija prije otvaranja zavr\u0161nog modala (sekcija 51) ---\n        function clearFieldError(input){\n            if (!input) { return; }\n            \/\/ Radio-grupa je u ovom obrascu naj\u010de\u0161\u0107e izravno u fieldsetu. Poruka\n            \/\/ pripada cijeloj grupi, pa je uklanjamo iz fieldseta, a ne samo uz prvi radio.\n            if (input.type === 'radio') {\n                var fieldset = input.closest('fieldset');\n                if (fieldset) {\n                    fieldset.querySelectorAll('.dz-field-error-group').forEach(function(e){ e.remove(); });\n                    fieldset.querySelectorAll('input[type=\"radio\"][name=\"' + input.name + '\"]').forEach(function(r){\n                        r.removeAttribute('aria-invalid');\n                        r.removeAttribute('aria-describedby');\n                    });\n                    return;\n                }\n                var radioGroup = input.closest('[role=\"group\"], [role=\"radiogroup\"]');\n                if (radioGroup) {\n                    radioGroup.querySelectorAll('.dz-field-error-group').forEach(function(e){ e.remove(); });\n                    radioGroup.querySelectorAll('input[type=\"radio\"]').forEach(function(r){\n                        r.removeAttribute('aria-invalid');\n                        r.removeAttribute('aria-describedby');\n                    });\n                    return;\n                }\n            }\n            var next = input.nextElementSibling;\n            while (next && next.classList && next.classList.contains('dz-field-error')) {\n                var toRemove = next;\n                next = next.nextElementSibling;\n                toRemove.remove();\n            }\n            input.removeAttribute('aria-invalid');\n            input.removeAttribute('aria-describedby');\n        }\n        function showFieldError(input, text, doFocus){\n            clearFieldError(input);\n            var err = document.createElement('p');\n            err.className = 'dz-field-error';\n            err.textContent = text;\n\n            \/\/ Radio validacija pripada cijeloj grupi. U fieldsetu poruku prikazujemo\n            \/\/ odmah ispod legende, preko cijele \u0161irine, prije prve ponu\u0111ene opcije.\n            if (input.type === 'radio') {\n                var fieldset = input.closest('fieldset');\n                var errId = 'dz-radio-error-' + (input.name || Math.random().toString(36).slice(2));\n                err.id = errId;\n                err.classList.add('dz-field-error-group');\n                if (fieldset) {\n                    var legend = fieldset.querySelector('legend');\n                    if (legend) { legend.insertAdjacentElement('afterend', err); }\n                    else { fieldset.insertBefore(err, fieldset.firstChild); }\n                    fieldset.querySelectorAll('input[type=\"radio\"][name=\"' + input.name + '\"]').forEach(function(r){\n                        r.setAttribute('aria-invalid', 'true');\n                        r.setAttribute('aria-describedby', errId);\n                    });\n                } else {\n                    var radioGroup = input.closest('[role=\"group\"], [role=\"radiogroup\"]');\n                    if (radioGroup) {\n                        radioGroup.insertBefore(err, radioGroup.firstChild);\n                        radioGroup.querySelectorAll('input[type=\"radio\"]').forEach(function(r){\n                            r.setAttribute('aria-invalid', 'true');\n                            r.setAttribute('aria-describedby', errId);\n                        });\n                    } else {\n                        input.closest('.dz-checkbox-row')?.insertAdjacentElement('beforebegin', err);\n                        input.setAttribute('aria-invalid', 'true');\n                        input.setAttribute('aria-describedby', errId);\n                    }\n                }\n            } else {\n                input.insertAdjacentElement('afterend', err);\n                input.setAttribute('aria-invalid', 'true');\n            }\n\n            \/\/ Gre\u0161ka se uklanja odmah \u010dim korisnik ispravi unos. Ovo sprje\u010dava stanje\n            \/\/ u kojem je polje zeleno i ima kva\u010dicu, ali ispod njega ostaje stara crvena poruka.\n            function isNowValid(){\n                if (input.type === 'radio') {\n                    return !!document.querySelector('input[name=\"' + input.name + '\"]:checked:not(:disabled)');\n                }\n                if (input.type === 'checkbox') { return input.checked; }\n                return input.value.trim() !== '' && input.checkValidity();\n            }\n            function clearWhenFixed(){\n                if (!isNowValid()) { return; }\n                clearFieldError(input);\n                if (input.type === 'radio') {\n                    document.querySelectorAll('input[name=\"' + input.name + '\"]').forEach(function(r){\n                        r.removeEventListener('change', clearWhenFixed);\n                    });\n                } else {\n                    input.removeEventListener('input', clearWhenFixed);\n                    input.removeEventListener('change', clearWhenFixed);\n                }\n            }\n            if (input.type === 'radio') {\n                document.querySelectorAll('input[name=\"' + input.name + '\"]').forEach(function(r){\n                    r.addEventListener('change', clearWhenFixed);\n                });\n            } else {\n                input.addEventListener('input', clearWhenFixed);\n                input.addEventListener('change', clearWhenFixed);\n            }\n\n            if (doFocus !== false) {\n                input.focus();\n                input.scrollIntoView({ behavior: 'smooth', block: 'center' });\n            }\n        }\n        window.dzShowFieldError = showFieldError;\n        window.dzClearFieldError = clearFieldError;\n        function validateStep3(){\n            if (dzPdfOutdated) {\n                dzOpenModal({\n                    type: 'warning',\n                    title: 'Potrebno je ponovno izraditi PDF',\n                    titleEn: 'A new PDF must be generated',\n                    bodyHtml: 'Nakon izrade PDF-a promijenjeni su podaci u zamolbi. Ponovno izradite PDF, ispi\u0161ite ga i vlastoru\u010dno potpi\u0161ite prije slanja zamolbe.',\n                    bodyHtmlEn: 'The request details were changed after the PDF was generated. Generate the PDF again, print it and sign it by hand before submitting the request.',\n                    buttons: [\n                        { label: 'U redu', labelEn: 'OK', primary: true, onClick: function(){\n                            step1Form.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                        } }\n                    ]\n                });\n                return false;\n            }\n            var p1 = dzFiles.potpisani_obrazac;\n            if (!p1) {\n                showFieldError(container.querySelector('#dz-lbl-potpisani_obrazac'), 'U\u010ditajte potpisani obrazac.');\n                return false;\n            }\n            var isPdf = p1.type === 'application\/pdf' || \/\\.pdf$\/i.test(p1.name);\n            if (!isPdf && !dzFiles.potpisani_obrazac_2) {\n                showFieldError(container.querySelector('#dz-lbl-potpisani_obrazac_2'), 'Budu\u0107i da je prva stranica u\u010ditana kao slikovna datoteka, potrebno je u\u010ditati i drugu stranicu potpisanog obrasca.');\n                return false;\n            }\n            if (calcTotalSize() > DZ_MAX_TOTAL_SIZE) {\n                return false;\n            }\n            var consentBox = container.querySelector('#dz-privacy-consent');\n            if (consentBox && !consentBox.checked) {\n                showFieldError(consentBox, 'Potrebno je prihvatiti Pravila o privatnosti prije slanja zamolbe.');\n                return false;\n            }\n            return true;\n        }\n\n        function fieldLabelText(name){\n            var el = document.querySelector('input[name=\"' + name + '\"]:checked');\n            if (!el) { return ''; }\n            var row = el.closest('label') || el.parentElement;\n            return row ? row.textContent.replace(\/\\s+\/g, ' ').trim().split('(')[0].trim() : el.value;\n        }\n        \/** Kao fieldLabelText, ali vra\u0107a i englesku varijantu (iz ugnije\u017e\u0111enog .dz-en spana). *\/\n        function fieldLabelTextEn(name){\n            var el = document.querySelector('input[name=\"' + name + '\"]:checked');\n            if (!el) { return ''; }\n            var row = el.closest('label') || el.parentElement;\n            if (!row) { return el.value; }\n            var enSpan = row.querySelector('.dz-en');\n            return enSpan ? enSpan.textContent.replace(\/[()]\/g, '').trim() : fieldLabelText(name);\n        }\n        function countDocsAndSize(){\n            var count = 0;\n            if (dzFiles.potpisani_obrazac) { count++; }\n            if (dzFiles.potpisani_obrazac_2) { count++; }\n            if (dzFiles.potpisani_obrazac_3) { count++; }\n            count += dzFiles.dodatni_dokumenti.length;\n            return { count: count, size: calcTotalSize() };\n        }\n\n        function wireStep3Submit(f){\n            f.addEventListener('submit', function(e){\n                e.preventDefault();\n                if (!validateStep3()) { return; }\n                doStep3Submit(f);\n            });\n        }\n\n        var dzSubmitInProgress = false;\n        function doStep3Submit(f){\n            if (dzSubmitInProgress) { return; }\n            dzSubmitInProgress = true;\n            var btn = container.querySelector('#dz-step3-submit');\n            var originalHtml = btn ? btn.innerHTML : '';\n            if (btn) { btn.disabled = true; btn.innerHTML = 'Zamolba se \u0161alje\u2026<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Submitting request\u2026<\/span>'; applyEnToggleTo(btn); }\n\n            var fd = new FormData(f);\n            fd.set('dz_ajax', '1');\n            if (!fd.get('dz_idempotency_key')) {\n                var key = (window.crypto && crypto.randomUUID) ? crypto.randomUUID() : (Date.now() + '-' + Math.random().toString(36).slice(2));\n                fd.set('dz_idempotency_key', key);\n                var keyInput = document.getElementById('dz-idempotency-key');\n                if (keyInput) { keyInput.value = key; }\n            }\n\n            fetch(f.getAttribute('action'), {\n                method: 'POST',\n                body: fd,\n                credentials: 'same-origin'\n            }).then(function(r){ return r.json(); })\n              .then(function(json){\n                  if (!json || !json.success) {\n                      throw new Error(json && json.data && json.data.message ? json.data.message : 'Do\u0161lo je do pogre\u0161ke pri slanju zamolbe. Poku\u0161ajte ponovno.');\n                  }\n                  dzFormDirty = false;\n                  setStepStatus(7, 'done');\n                  container.innerHTML = json.data.html || '';\n                  applyEnToggleTo(container);\n                  dzShowStep8StatusModals(container);\n              })\n              .catch(function(err){\n                  dzSubmitInProgress = false;\n                  dzOpenModal({\n                      type: 'error',\n                      title: 'Zamolba nije poslana',\n                      titleEn: 'Request not submitted',\n                      bodyHtml: err && err.message ? err.message : 'Do\u0161lo je do pogre\u0161ke pri slanju zamolbe. Poku\u0161ajte ponovno.',\n                      bodyHtmlEn: 'An error occurred while submitting the request. Please try again.',\n                      buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                  });\n                  if (btn) { btn.disabled = false; btn.innerHTML = originalHtml; applyEnToggleTo(btn); }\n              });\n        }\n\n        function dzResetEverything(){\n            step1Form.reset();\n            \/\/ form.reset() vra\u0107a readonly polje datuma na praznu vrijednost (nema\n            \/\/ \"zadanu\" HTML vrijednost za vratiti) - potrebno ga je eksplicitno\n            \/\/ ponovno postaviti na dana\u0161nji datum, isto kao pri prvom u\u010ditavanju.\n            if (window.dzSetTodayDate) { window.dzSetTodayDate(); }\n            \/\/ form.reset() vra\u0107a VRIJEDNOSTI kontrola na zadano, ali sam po sebi ne\n            \/\/ pokre\u0107e na\u0161e change\/input listenere (\u0161kola, pravna osoba, hitnost,\n            \/\/ strani format adrese, \"sebe\" itd.) - bez ovoga bi nakon uspje\u0161nog\n            \/\/ slanja mogle ostati vizualno otvorene sekcije prethodnog zahtjeva.\n            step1Form.querySelectorAll('input, select, textarea').forEach(function(el){\n                if (el.disabled) { return; }\n                if (el.type === 'checkbox' || el.type === 'radio') {\n                    el.dispatchEvent(new Event('change', { bubbles: true }));\n                } else {\n                    el.dispatchEvent(new Event('input', { bubbles: true }));\n                }\n            });\n            \/\/ O\u010disti eventualne inline poruke o gre\u0161kama iz prethodnog poku\u0161aja slanja.\n            step1Form.querySelectorAll('.dz-field-error').forEach(function(e){ e.remove(); });\n            step1Form.querySelectorAll('[aria-invalid]').forEach(function(e){ e.removeAttribute('aria-invalid'); });\n            dzFiles = { potpisani_obrazac: null, potpisani_obrazac_2: null, potpisani_obrazac_3: null, dodatni_dokumenti: [] };\n            dzPdfOutdated = false;\n            dzAlreadyGeneratedOnce = false;\n            dzOverLimitModalShown = false;\n            container.innerHTML = '';\n            \/\/ Bezuvjetno (ne samo \"ako je checked\") - nakon reset() checkbox je ve\u0107\n            \/\/ false, pa se uvjetovani change event ina\u010de nikad ne bi okinuo, a\n            \/\/ engleski tekstovi bi mogli ostati vidljivi iz prethodnog zahtjeva.\n            if (window.dzWizardShowStep) { window.dzWizardShowStep(1, false); } else { setStepStatus(1, 'active'); }\n            window.scrollTo({ top: 0, behavior: 'smooth' });\n            dzFormDirty = false;\n            try {\n                var url = new URL(window.location.href);\n                url.searchParams.delete('dz_status');\n                url.searchParams.delete('dz_token');\n                history.pushState(null, '', url.toString());\n            } catch (e) {}\n        }\n\n        function wireStep3Back(f){\n            var backBtn = container.querySelector('#dz-step3-back');\n            if (!backBtn) { return; }\n            backBtn.addEventListener('click', function(){\n                if (window.dzWizardShowStep) {\n                    window.dzWizardShowStep(6);\n                } else {\n                    var box = document.getElementById('dz-download-box');\n                    if (box) { box.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n                    setStepStatus(6, 'active');\n                }\n            });\n        }\n\n        function wireStep2Form(){\n            var f = container.querySelector('form.dz-step2-form');\n            if (!f || f.dataset.dzWired) { return; }\n            f.dataset.dzWired = '1';\n            var idField = container.querySelector('#dz-idempotency-key');\n            if (idField) {\n                idField.value = 'idem-' + Date.now() + '-' + Math.random().toString(36).slice(2, 12);\n            }\n            wireDownloadConfirm(container);\n            wireSingleFileInput(container.querySelector('#dz-lbl-potpisani_obrazac'), 'potpisani_obrazac');\n            wireSingleFileInput(container.querySelector('#dz-lbl-potpisani_obrazac_2'), 'potpisani_obrazac_2');\n            wireSingleFileInput(container.querySelector('#dz-lbl-potpisani_obrazac_3'), 'potpisani_obrazac_3');\n            wireMultiFileInput(container.querySelector('#dz-lbl-dodatni_dokumenti'), 'dodatni_dokumenti');\n            container.querySelectorAll('.dz-dropzone[data-dz-drop-input]').forEach(function(zone){\n                if (zone.dataset.dzDropWired) { return; }\n                zone.dataset.dzDropWired = '1';\n                ['dragenter','dragover'].forEach(function(ev){ zone.addEventListener(ev, function(e){ e.preventDefault(); zone.classList.add('dz-dragover'); }); });\n                ['dragleave','drop'].forEach(function(ev){ zone.addEventListener(ev, function(e){ e.preventDefault(); zone.classList.remove('dz-dragover'); }); });\n                zone.addEventListener('drop', function(e){\n                    var input = container.querySelector('#' + zone.getAttribute('data-dz-drop-input'));\n                    if (!input || !e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) { return; }\n                    try {\n                        var dt = new DataTransfer();\n                        Array.prototype.slice.call(e.dataTransfer.files).forEach(function(file){ dt.items.add(file); });\n                        input.files = dt.files;\n                        input.dispatchEvent(new Event('change', { bubbles:true }));\n                    } catch(err) { input.click(); }\n                });\n            });\n            wireStep3Submit(f);\n            wireStep3Back(f);\n            renderFileList();\n        }\n\n        \/\/ --- Vi\u0161ekora\u010dni wizard (6 panela u istoj formi + zavr\u0161ni koraci 7 i 8 za obrazac i slanje) ---\n        var dzWizardCurrentStep = 1;\n        var dzWizardPanels = {};\n        var dzWizardIntroNodes = [];\n        var dzWizardTitles = {\n            1: ['Podaci o podnositelju', 'Applicant details'],\n            2: ['\u0160to tra\u017eite?', 'What are you requesting?'],\n            3: ['Podaci za pronala\u017eenje gradiva', 'Information needed to locate the records'],\n            4: ['Svrha, odnos i hitnost', 'Purpose, relationship and urgency'],\n            5: ['Platitelj i potpisnik', 'Payer and signer'],\n            6: ['Pregled i izrada obrasca', 'Review and generate the form'],\n            7: ['Preuzimanje i potpisivanje obrasca', 'Download and sign the form'],\n            8: ['Slanje', 'Submit']\n        };\n\n        function dzWizardMakePanel(step){\n            var panel = document.createElement('section');\n            panel.className = 'dz-wizard-panel';\n            panel.dataset.wizardStep = String(step);\n            panel.setAttribute('aria-hidden', 'true');\n\n            var head = document.createElement('div');\n            head.className = 'dz-wizard-panel-header';\n            var h = document.createElement('h2');\n            h.textContent = dzWizardTitles[step][0];\n            head.appendChild(h);\n            var en = document.createElement('p');\n            en.className = 'dz-en';\n            en.lang = 'en';\n            en.textContent = dzWizardTitles[step][1];\n            head.appendChild(en);\n            panel.appendChild(head);\n            return panel;\n        }\n\n        function dzWizardAddNav(panel, backStep, nextStep){\n            var nav = document.createElement('div');\n            nav.className = 'dz-wizard-nav' + (backStep ? '' : ' dz-wizard-nav-end');\n            if (backStep) {\n                var back = document.createElement('button');\n                back.type = 'button';\n                back.className = 'dz-wizard-back';\n                back.appendChild(document.createTextNode('\u2190 Natrag '));\n                var backEn = document.createElement('span'); backEn.className='dz-en'; backEn.lang='en'; backEn.style.display='inline'; backEn.style.margin='0'; backEn.classList.add('dz-btn-en'); backEn.style.display='block'; backEn.textContent='Back'; back.appendChild(backEn);\n                back.addEventListener('click', function(){ dzWizardShowStep(backStep); });\n                nav.appendChild(back);\n            }\n            if (nextStep) {\n                var next = document.createElement('button');\n                next.type = 'button';\n                next.className = 'dz-submit';\n                next.appendChild(document.createTextNode('Nastavi \u2192 '));\n                var nextEn = document.createElement('span'); nextEn.className='dz-en'; nextEn.lang='en'; nextEn.style.display='inline'; nextEn.style.margin='0'; nextEn.classList.add('dz-btn-en'); nextEn.style.display='block'; nextEn.textContent='Continue'; next.appendChild(nextEn);\n                next.addEventListener('click', function(){\n                    if (dzWizardValidatePanel(parseInt(panel.dataset.wizardStep, 10))) {\n                        dzWizardShowStep(nextStep);\n                    }\n                });\n                nav.appendChild(next);\n            }\n            panel.appendChild(nav);\n        }\n\n        function dzWizardError(target, message){\n            if (!target) { return; }\n            if (window.dzShowFieldError) {\n                window.dzShowFieldError(target, message, false);\n            } else {\n                target.setAttribute('aria-invalid', 'true');\n            }\n        }\n\n        function dzWizardValidatePanel(step){\n            var panel = dzWizardPanels[step];\n            if (!panel) { return true; }\n            panel.querySelectorAll('.dz-field-error').forEach(function(e){ e.remove(); });\n            panel.querySelectorAll('[aria-invalid]').forEach(function(e){ e.removeAttribute('aria-invalid'); });\n            var invalid = [];\n            var radioSeen = {};\n            panel.querySelectorAll('[required]:not(:disabled)').forEach(function(el){\n                if (el.type === 'radio') {\n                    if (radioSeen[el.name]) { return; }\n                    radioSeen[el.name] = true;\n                    if (!step1Form.querySelector('input[name=\"' + el.name + '\"]:checked:not(:disabled)')) {\n                        invalid.push({ el: el, msg: 'Odaberite jednu od ponu\u0111enih opcija.' });\n                    }\n                } else if (el.type === 'checkbox') {\n                    if (!el.checked) { invalid.push({ el: el, msg: 'Ovo polje je obvezno.' }); }\n                } else if (!el.value.trim() || !el.checkValidity()) {\n                    invalid.push({ el: el, msg: 'Ovo polje je obvezno ili nije ispravno popunjeno.' });\n                }\n            });\n            if (step === 2) {\n                var selected = step1Form.querySelectorAll('input[name=\"tocka[]\"]:checked:not(:disabled)');\n                if (!selected.length) {\n                    invalid.push({ el: step1Form.querySelector('input[name=\"tocka[]\"]'), msg: 'Odaberite barem jednu vrstu zahtjeva.' });\n                }\n                var t1 = step1Form.querySelector('input[name=\"tocka[]\"][value=\"1\"]');\n                if (t1 && t1.checked && !step1Form.querySelector('input[name=\"tocka1_sub[]\"]:checked:not(:disabled)')) {\n                    invalid.push({ el: step1Form.querySelector('input[name=\"tocka1_sub[]\"]'), msg: 'Odaberite barem jednu vrstu mati\u010dne knjige.' });\n                }\n            }\n            if (!invalid.length) { return true; }\n            invalid.forEach(function(x){ dzWizardError(x.el, x.msg); });\n            var first = invalid[0].el;\n            if (first) {\n                first.focus();\n                first.scrollIntoView({ behavior: 'smooth', block: 'center' });\n            }\n            return false;\n        }\n\n        function dzWizardText(selector){\n            var el = step1Form.querySelector(selector);\n            return el ? el.value.trim() : '';\n        }\n        function dzWizardCheckedValue(name){\n            var el = step1Form.querySelector('input[name=\"' + name + '\"]:checked:not(:disabled)');\n            return el ? el.value : '';\n        }\n        function dzWizardSelectedRequests(lang){\n            var out = [];\n            var en = lang === 'en';\n            step1Form.querySelectorAll('input[name=\"tocka[]\"]:checked:not(:disabled)').forEach(function(el){\n                var card = el.closest('.dz-choice-card');\n                var title = card ? card.querySelector(en ? '.dz-choice-en' : '.dz-choice-title') : null;\n                if (title) { out.push(title.textContent.trim()); }\n            });\n            return out.join('\\n');\n        }\n        function dzWizardMaticneKnjigeSub(lang){\n            var t1 = step1Form.querySelector('input[name=\"tocka[]\"][value=\"1\"]');\n            if (!t1 || !t1.checked) { return ''; }\n            var en = lang === 'en';\n            var subs = [];\n            var subHr = {a:'ro\u0111enih', b:'vjen\u010danih', c:'umrlih', d:'stanje du\u0161a'};\n            var subEn = {a:'births', b:'marriages', c:'deaths', d:'status animarum'};\n            step1Form.querySelectorAll('input[name=\"tocka1_sub[]\"]:checked:not(:disabled)').forEach(function(el){\n                subs.push((en ? subEn : subHr)[el.value] || el.value);\n            });\n            return subs.join(', ');\n        }\n        function dzWizardLabelCopy(v, lang){\n            if (lang === 'en') { return v === 'ovjereni' ? 'certified copy' : (v === 'neovjereni' ? 'uncertified copy' : '\u2014'); }\n            return v === 'ovjereni' ? 'ovjereni preslik' : (v === 'neovjereni' ? 'neovjereni preslik' : '\u2014');\n        }\n        function dzWizardLabelDelivery(v, lang){\n            if (lang === 'en') { return v === 'posta' ? 'by post' : (v === 'osobno' ? 'personal collection at DAPA' : (v === 'epost' ? 'by e-mail' : '\u2014')); }\n            return v === 'posta' ? 'po\u0161tom' : (v === 'osobno' ? 'osobno preuzimanje u DAPA-i' : (v === 'epost' ? 'e-po\u0161tom' : '\u2014'));\n        }\n        function dzWizardLabelPersonRelation(v, lang){\n            var mapHr = { '0':'tra\u017eim podatke o sebi osobno', '1':'supru\u017enik', '2':'dijete', '3':'roditelj', '4':'unuk', '5':'opunomo\u0107enik', '6':'drugi odnos' };\n            var mapEn = { '0':'myself', '1':'spouse', '2':'child', '3':'parent', '4':'grandchild', '5':'authorised representative', '6':'other relationship' };\n            if (!v) { return ''; }\n            var text = (lang === 'en' ? mapEn : mapHr)[v] || v;\n            if (v === '6') {\n                var extra = dzWizardText('#dz-lbl-odnos_drugo_opis');\n                if (extra) { text += ' (' + extra + ')'; }\n            }\n            return text;\n        }\n        function dzWizardLabelPropertyRelation(v, lang){\n            var mapHr = { vlasnik:'vlasnik', suvlasnik:'suvlasnik', nasljednik:'nasljednik', opunomocenik:'opunomo\u0107enik', drugo:'drugo svojstvo' };\n            var mapEn = { vlasnik:'owner', suvlasnik:'co-owner', nasljednik:'heir', opunomocenik:'authorised representative', drugo:'other relationship' };\n            if (!v) { return ''; }\n            var text = (lang === 'en' ? mapEn : mapHr)[v] || v;\n            if (v === 'drugo') {\n                var extra = dzWizardText('#dz-lbl-odnos_nekretnina_drugo_opis');\n                if (extra) { text += ' (' + extra + ')'; }\n            }\n            return text;\n        }\n\n        function dzWizardCheckedLabelText(name, lang){\n            var el = step1Form.querySelector('input[name=\"' + name + '\"]:checked:not(:disabled)');\n            if (!el) { return ''; }\n            var label = el.closest('label');\n            if (!label) { return ''; }\n            var en = lang === 'en';\n            var enSpan = label.querySelector('.dz-en');\n            if (en) { return enSpan ? enSpan.textContent.replace(\/[()]\/g, '').trim() : ''; }\n            var clone = label.cloneNode(true);\n            var enInClone = clone.querySelector('.dz-en');\n            if (enInClone) { enInClone.remove(); }\n            return clone.textContent.replace(\/\\s+\/g, ' ').trim();\n        }\n\n        function dzWizardAddReviewCard(parent, titleHr, titleEn, sectionsHr, sectionsEn, step, fullWidth){\n            var card = document.createElement('div');\n            card.className = 'dz-review-card' + (fullWidth ? ' dz-review-card-full' : '');\n\n            var head = document.createElement('div'); head.className = 'dz-review-head';\n            var h = document.createElement('h3'); h.textContent = titleHr;\n            head.appendChild(h);\n            var edit = document.createElement('button');\n            edit.type = 'button'; edit.className = 'dz-review-edit';\n            edit.appendChild(document.createTextNode('Uredi'));\n            var editEn = document.createElement('span'); editEn.className = 'dz-en'; editEn.lang = 'en'; editEn.style.display = 'inline'; editEn.style.margin = '0'; editEn.textContent = ' \/ Edit'; edit.appendChild(editEn);\n            edit.addEventListener('click', function(){ dzWizardShowStep(step);\n            dzKeepLanguageCardVisible(); });\n            head.appendChild(edit);\n            card.appendChild(head);\n\n            var hEn = document.createElement('div'); hEn.className = 'dz-en dz-review-title-en'; hEn.lang = 'en'; hEn.textContent = titleEn;\n            card.appendChild(hEn);\n\n            function renderBody(sections, isEn){\n                var body = document.createElement('div'); body.className = 'dz-review-body' + (isEn ? ' dz-en' : ''); if (isEn) { body.lang = 'en'; }\n                var any = false;\n                sections.forEach(function(sec){\n                    if (!sec.rows || !sec.rows.length) { return; }\n                    any = true;\n                    if (sec.subtitle) {\n                        var sub = document.createElement('div'); sub.className = 'dz-review-subtitle'; sub.textContent = sec.subtitle;\n                        body.appendChild(sub);\n                    }\n                    sec.rows.forEach(function(row){\n                        var rowEl = document.createElement('div'); rowEl.className = 'dz-review-row';\n                        var lbl = document.createElement('span'); lbl.className = 'dz-review-label'; lbl.textContent = row.label;\n                        var val = document.createElement('span'); val.className = 'dz-review-value'; val.textContent = row.value;\n                        rowEl.appendChild(lbl); rowEl.appendChild(val);\n                        body.appendChild(rowEl);\n                    });\n                });\n                if (!any) {\n                    var empty = document.createElement('p'); empty.className = 'dz-review-empty'; empty.textContent = '\u2014';\n                    body.appendChild(empty);\n                }\n                return body;\n            }\n            card.appendChild(renderBody(sectionsHr, false));\n            card.appendChild(renderBody(sectionsEn, true));\n            parent.appendChild(card);\n        }\n\n        function dzWizardBuildReview(){\n            var root = document.getElementById('dz-wizard-review');\n            if (!root) { return; }\n            root.innerHTML = '';\n\n            function addRow(rowsHr, rowsEn, labelHr, labelEn, value, valueEn){\n                if (!value) { return; }\n                rowsHr.push({ label: labelHr, value: value });\n                rowsEn.push({ label: labelEn, value: (valueEn !== undefined && valueEn !== '') ? valueEn : value });\n            }\n\n            \/\/ --- Podnositelj ---\n            var legal = document.getElementById('podnositelj-pravna-osoba');\n            var isLegalApp = legal && legal.checked;\n            var applicantName = dzWizardText('#dz-lbl-ime_prezime');\n            var appHr = [], appEn = [];\n            addRow(appHr, appEn, isLegalApp ? 'Slu\u017ebeni naziv pravne osobe' : 'Ime i prezime', isLegalApp ? 'Official name of the legal entity' : 'First name and surname', applicantName);\n            if (isLegalApp) { addRow(appHr, appEn, 'Kontakt osoba', 'Contact person', dzWizardText('#dz-lbl-podnositelj_kontakt')); }\n            addRow(appHr, appEn, 'Adresa', 'Address', [dzWizardText('#dz-lbl-ulica_broj'), dzWizardText('#ppt-mjesto-podnositelj'), dzWizardText('#drzava-podnositelj')].filter(Boolean).join(', '));\n            var noOib = document.getElementById('nema-oib');\n            if (noOib && noOib.checked) { addRow(appHr, appEn, 'OIB', 'OIB', 'nije dodijeljen', 'not assigned'); }\n            else { addRow(appHr, appEn, 'OIB', 'OIB', dzWizardText('#oib-podnositelj')); }\n            addRow(appHr, appEn, 'Porezni\/registracijski broj', 'Tax\/registration number', dzWizardText('#dz-lbl-strani_pravni_id'));\n            addRow(appHr, appEn, 'Broj osobne\/putovnice', 'ID card\/passport number', dzWizardText('#dz-lbl-broj_iskaznice'));\n            addRow(appHr, appEn, 'Telefon', 'Telephone', dzWizardText('#dz-lbl-telefon'));\n            addRow(appHr, appEn, 'E-mail', 'E-mail', dzWizardText('#dz-lbl-email'));\n            addRow(appHr, appEn, 'Datum podno\u0161enja', 'Date of submission', dzWizardText('#dz-lbl-datum'));\n            dzWizardAddReviewCard(root, 'Podnositelj', 'Applicant', [{ subtitle: null, rows: appHr }], [{ subtitle: null, rows: appEn }], 1);\n\n            \/\/ --- Zahtjev ---\n            var reqHr = [], reqEn = [];\n            addRow(reqHr, reqEn, 'Vrsta zahtjeva', 'Request type', dzWizardSelectedRequests('hr'), dzWizardSelectedRequests('en'));\n            addRow(reqHr, reqEn, 'Mati\u010dne knjige', 'Civil registers', dzWizardMaticneKnjigeSub('hr'), dzWizardMaticneKnjigeSub('en'));\n            addRow(reqHr, reqEn, 'Vrsta preslika', 'Copy type', dzWizardLabelCopy(dzWizardCheckedValue('vrsta_preslika'), 'hr'), dzWizardLabelCopy(dzWizardCheckedValue('vrsta_preslika'), 'en'));\n            addRow(reqHr, reqEn, 'Na\u010din dostave', 'Delivery method', dzWizardLabelDelivery(dzWizardCheckedValue('nacin_dostave'), 'hr'), dzWizardLabelDelivery(dzWizardCheckedValue('nacin_dostave'), 'en'));\n            dzWizardAddReviewCard(root, 'Zahtjev', 'Request', [{ subtitle: null, rows: reqHr }], [{ subtitle: null, rows: reqEn }], 2);\n\n            \/\/ --- Svrha, odnos i hitnost ---\n            var purposeHr = [], purposeEn = [];\n            addRow(purposeHr, purposeEn, 'Svrha', 'Purpose', dzWizardText('#dz-lbl-svrha'));\n            var personRelation = dzWizardLabelPersonRelation(dzWizardCheckedValue('odnos'), 'hr');\n            var personRelationEn = dzWizardLabelPersonRelation(dzWizardCheckedValue('odnos'), 'en');\n            addRow(purposeHr, purposeEn, 'Odnos prema osobi', 'Relationship to the person', personRelation, personRelationEn);\n            var propertyRelation = dzWizardLabelPropertyRelation(dzWizardCheckedValue('odnos_nekretnina'), 'hr');\n            var propertyRelationEn = dzWizardLabelPropertyRelation(dzWizardCheckedValue('odnos_nekretnina'), 'en');\n            addRow(purposeHr, purposeEn, 'Odnos prema nekretnini\/predmetu', 'Relationship to the property\/case', propertyRelation, propertyRelationEn);\n            var urgent = dzWizardCheckedValue('hitno');\n            if (urgent === 'da') {\n                addRow(purposeHr, purposeEn, 'Hitno postupanje', 'Urgent processing', 'Da', 'Yes');\n                addRow(purposeHr, purposeEn, 'Obrazlo\u017eenje hitnosti', 'Reason for urgency', dzWizardText('#dz-lbl-hitno_razlog'));\n            } else if (urgent === 'ne') {\n                addRow(purposeHr, purposeEn, 'Hitno postupanje', 'Urgent processing', 'Ne', 'No');\n            }\n            dzWizardAddReviewCard(root, 'Svrha, odnos i hitnost', 'Purpose, relationship and urgency', [{ subtitle: null, rows: purposeHr }], [{ subtitle: null, rows: purposeEn }], 4);\n\n            \/\/ --- Platitelj i potpisnik ---\n            var payerHr = [], payerEn = [];\n            var same = document.getElementById('platitelj-isti');\n            if (same && same.checked) {\n                addRow(payerHr, payerEn, 'Platitelj', 'Payer', 'isti kao podnositelj', 'same as applicant');\n            } else {\n                var payerLegal = document.getElementById('je-pravna-osoba');\n                var payerIsLegal = payerLegal && payerLegal.checked;\n                addRow(payerHr, payerEn, payerIsLegal ? 'Slu\u017ebeni naziv pravne osobe' : 'Ime i prezime', payerIsLegal ? 'Official name of the legal entity' : 'First name and surname', dzWizardText('#dz-lbl-platitelj_naziv'));\n                if (payerIsLegal) { addRow(payerHr, payerEn, 'Kontakt osoba', 'Contact person', dzWizardText('#dz-lbl-pravna_osoba_kontakt')); }\n                addRow(payerHr, payerEn, 'Adresa', 'Address', [dzWizardText('#dz-lbl-platitelj_adresa'), dzWizardText('#platitelj-ppt-mjesto'), dzWizardText('#platitelj-drzava')].filter(Boolean).join(', '));\n                addRow(payerHr, payerEn, 'Osobni identifikacijski broj (OIB)', 'Personal Identification Number (OIB)', dzWizardText('#dz-lbl-platitelj_oib'));\n                if (payerIsLegal) { addRow(payerHr, payerEn, 'E-mail za e-ra\u010dun', 'E-mail for e-invoice', dzWizardText('#dz-lbl-platitelj_email')); }\n            }\n            var signerOther = document.getElementById('potpis-druga-osoba');\n            var signer = signerOther && signerOther.checked ? dzWizardText('#dz-lbl-potpis_ime') : (isLegalApp ? dzWizardText('#dz-lbl-podnositelj_kontakt') : applicantName);\n            addRow(payerHr, payerEn, 'Potpisnik', 'Signer', signer || '\u2014');\n            dzWizardAddReviewCard(root, 'Platitelj i potpisnik', 'Payer and signer', [{ subtitle: null, rows: payerHr }], [{ subtitle: null, rows: payerEn }], 5);\n\n            \/\/ --- Podaci za pronala\u017eenje (puna \u0161irina, podijeljeno u podcjeline) ---\n            var relationForReview = dzWizardCheckedValue('odnos');\n            var personForReview = relationForReview === '0' ? applicantName : dzWizardText('#dz-lbl-ime_prezime2');\n\n            var osobaHr = [], osobaEn = [];\n            addRow(osobaHr, osobaEn, 'Ime i prezime', 'First name and surname', personForReview);\n            addRow(osobaHr, osobaEn, 'Datum ro\u0111enja', 'Date of birth', dzWizardText('#dz-lbl-rodjen'));\n            addRow(osobaHr, osobaEn, 'Mjesto ro\u0111enja', 'Place of birth', dzWizardText('#dz-lbl-mjesto_rodjenja'));\n            addRow(osobaHr, osobaEn, 'Ime i prezime oca', \"Father's first name and surname\", dzWizardText('#dz-lbl-ime_oca'));\n            addRow(osobaHr, osobaEn, 'Ime i djevoja\u010dko prezime majke', \"Mother's first name and maiden name\", dzWizardText('#dz-lbl-majka_djevojacko'));\n\n            var skolaHr = [], skolaEn = [];\n            addRow(skolaHr, skolaEn, 'Mjesto prebivali\u0161ta', 'Place of residence', dzWizardText('#dz-lbl-prebivaliste'));\n            addRow(skolaHr, skolaEn, 'Naziv \u0161kole', 'School name', dzWizardText('#dz-lbl-naziv_skole'));\n            addRow(skolaHr, skolaEn, 'Godine \u0161kolovanja', 'Years of education', dzWizardText('#dz-lbl-godine_skolovanja'));\n            addRow(skolaHr, skolaEn, 'Naziv radne organizacije', 'Employer name', dzWizardText('#dz-lbl-naziv_radne_org'));\n            addRow(skolaHr, skolaEn, 'Godine rada', 'Years of employment', dzWizardText('#dz-lbl-godine_rada'));\n            addRow(skolaHr, skolaEn, 'Godina prestanka rada', 'Year employment ended', dzWizardText('#dz-lbl-godina_napustanja'));\n\n            var nekretninaHr = [], nekretninaEn = [];\n            addRow(nekretninaHr, nekretninaEn, 'Mjesto, adresa i ku\u0107ni broj', 'Place, address and house number', dzWizardText('#dz-lbl-mjesto_adresa_broj'));\n            addRow(nekretninaHr, nekretninaEn, 'Godina izgradnje', 'Year of construction', dzWizardText('#dz-lbl-godina_izgradnje'));\n            addRow(nekretninaHr, nekretninaEn, 'Broj katastarske \u010destice', 'Cadastral parcel number', dzWizardText('#dz-lbl-kat_cestica'));\n            addRow(nekretninaHr, nekretninaEn, 'Katastarska op\u0107ina', 'Cadastral municipality', dzWizardText('#dz-lbl-kat_opcina'));\n            addRow(nekretninaHr, nekretninaEn, 'Tada\u0161nji vlasnik', 'Owner at the time', dzWizardText('#dz-lbl-vlasnik'));\n            addRow(nekretninaHr, nekretninaEn, 'Tijelo i godina rje\u0161enja', 'Authority and year of decision', dzWizardText('#dz-lbl-organ_uprave'));\n            addRow(nekretninaHr, nekretninaEn, 'Broj zemlji\u0161noknji\u017enog ulo\u0161ka', 'Land register folio number', dzWizardText('#dz-lbl-broj_zk_uloska'));\n            addRow(nekretninaHr, nekretninaEn, 'Broj rje\u0161enja', 'Decision number', dzWizardText('#dz-lbl-broj_rjesenja'));\n\n            var drugoHr = [], drugoEn = [];\n            addRow(drugoHr, drugoEn, 'Vrsta drugog zahtjeva', 'Type of other request', dzWizardCheckedLabelText('drugo_podvrsta', 'hr'), dzWizardCheckedLabelText('drugo_podvrsta', 'en'));\n            addRow(drugoHr, drugoEn, 'Dodatni opis zahtjeva', 'Additional description', dzWizardText('#dz-lbl-drugo_tocka12'));\n            addRow(drugoHr, drugoEn, 'Mjesto', 'Place', dzWizardText('#dz-lbl-drugo_mjesto'));\n            addRow(drugoHr, drugoEn, 'Razdoblje', 'Period', dzWizardText('#dz-lbl-drugo_razdoblje'));\n\n            dzWizardAddReviewCard(\n                root, 'Podaci za pronala\u017eenje', 'Information for locating the records',\n                [\n                    { subtitle: 'Osoba', rows: osobaHr },\n                    { subtitle: '\u0160kolovanje i rad', rows: skolaHr },\n                    { subtitle: 'Nekretnina \/ predmet', rows: nekretninaHr },\n                    { subtitle: 'Drugo', rows: drugoHr }\n                ],\n                [\n                    { subtitle: 'Person', rows: osobaEn },\n                    { subtitle: 'Education and employment', rows: skolaEn },\n                    { subtitle: 'Property \/ case', rows: nekretninaEn },\n                    { subtitle: 'Other', rows: drugoEn }\n                ],\n                3, true\n            );\n\n            applyEnToggleTo(root);\n        }\n\n        function dzWizardSetFinalContentMode(step){\n            if (!container) { return; }\n            var finalActive = step === 7;\n            var step7Content = container.querySelector('#dz-step7-content');\n            var downloadBox = container.querySelector('#dz-download-box');\n            var step2Back = container.querySelector('#dz-step2-back');\n            \/\/ Korak 7 obuhva\u0107a preuzimanje, ispis i potpisivanje obrasca, dok je u\u010ditavanje i slanje ozna\u010deno kao Korak 8 na istoj zavr\u0161noj stranici.\n            if (step7Content) { step7Content.style.display = finalActive ? '' : 'none'; }\n            if (downloadBox) { downloadBox.style.display = finalActive ? '' : 'none'; }\n            if (step2Back && step2Back.parentElement) { step2Back.parentElement.style.display = finalActive ? '' : 'none'; }\n        }\n\n        function dzWizardShowStep(step, doScroll){\n            dzWizardCurrentStep = step;\n            Object.keys(dzWizardPanels).forEach(function(k){\n                var p = dzWizardPanels[k];\n                var active = parseInt(k, 10) === step;\n                p.classList.toggle('dz-wizard-active', active);\n                p.setAttribute('aria-hidden', active ? 'false' : 'true');\n            });\n            \/\/ Korak 7 renderira se u zasebnom #dz-step2-container izvan wizard panela.\n            \/\/ Mora biti vidljiv samo kad je aktivan zavr\u0161ni korak; ina\u010de bi ostao\n            \/\/ prikazan ispod koraka 1-6 (npr. nakon klika \"Natrag\").\n            if (container) {\n                var finalActive = step === 7;\n                container.style.display = finalActive ? '' : 'none';\n                container.setAttribute('aria-hidden', finalActive ? 'false' : 'true');\n                dzWizardSetFinalContentMode(step);\n            }\n            dzWizardIntroNodes.forEach(function(el){ el.classList.toggle('dz-wizard-intro-hidden', step !== 1); });\n            setStepStatus(step, 'active');\n            var mobileHr = document.getElementById('dz-wizard-mobile-current-hr');\n            var mobileEn = document.getElementById('dz-wizard-mobile-current-en');\n            if (mobileHr) { mobileHr.textContent = 'Korak ' + step + ' od 8 \u2014 ' + dzWizardTitles[step][0]; }\n            if (mobileEn) { mobileEn.textContent = 'Step ' + step + ' of 8 \u2014 ' + dzWizardTitles[step][1]; }\n            if (step === 6) { dzWizardBuildReview(); }\n            if (doScroll !== false) {\n                var progress = document.getElementById('dz-progress-wrap');\n                if (progress) { progress.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n            }\n        }\n        window.dzWizardShowStep = dzWizardShowStep;\n        window.dzWizardShowInvalidStep = function(){\n            for (var i = 1; i <= 6; i++) {\n                var p = dzWizardPanels[i];\n                if (p && (p.querySelector('[aria-invalid=\"true\"]') || p.querySelector('.dz-field-error'))) {\n                    dzWizardShowStep(i);\n                    var bad = p.querySelector('[aria-invalid=\"true\"]');\n                    if (bad) { setTimeout(function(){ bad.focus(); bad.scrollIntoView({ behavior:'smooth', block:'center' }); }, 80); }\n                    return;\n                }\n            }\n        };\n\n        function dzWizardSetup(){\n            var progress = document.getElementById('dz-progress-wrap');\n            if (!progress || progress.dataset.dzWizardReady) { return; }\n            progress.dataset.dzWizardReady = '1';\n            var nextAfterProgress = progress.nextSibling;\n            var frag = document.createDocumentFragment();\n            for (var i = 1; i <= 6; i++) { dzWizardPanels[i] = dzWizardMakePanel(i); frag.appendChild(dzWizardPanels[i]); }\n            step1Form.insertBefore(frag, nextAfterProgress);\n\n            \/\/ Uvodni elementi ostaju vidljivi samo u prvom koraku.\n            Array.from(step1Form.children).forEach(function(el){\n                if (el === progress || el.classList.contains('dz-wizard-panel') || el.tagName === 'INPUT') { return; }\n                if (el.compareDocumentPosition(progress) & Node.DOCUMENT_POSITION_FOLLOWING) { dzWizardIntroNodes.push(el); }\n            });\n\n            var applicant = document.getElementById('dz-lbl-ime_prezime').closest('fieldset');\n            var subject = document.getElementById('vrsta-preslika-label').closest('fieldset');\n            if (applicant) { dzWizardPanels[1].appendChild(applicant); }\n            if (subject) { dzWizardPanels[2].appendChild(subject); }\n\n            \/\/ Korak 3 sadr\u017ei samo podatke potrebne za pronala\u017eenje gradiva.\n            ['grupa1do6','grupa5','grupa6','grupa7do11','grupa12'].forEach(function(id){\n                var el = document.getElementById(id); if (el) { dzWizardPanels[3].appendChild(el); }\n            });\n\n            \/\/ Korak 4: svrha, zatim primjenjivi odnos(i), pa tek onda hitnost.\n            var purpose = document.getElementById('dz-lbl-svrha');\n            if (purpose && purpose.closest('fieldset')) { dzWizardPanels[4].appendChild(purpose.closest('fieldset')); }\n            ['grupa-odnos','grupa-odnos-nekretnina','grupa-hitno','grupa-hitno-razlog'].forEach(function(id){\n                var el = document.getElementById(id); if (el) { dzWizardPanels[4].appendChild(el); }\n            });\n\n            var payer = document.getElementById('platitelj-isti');\n            if (payer && payer.closest('fieldset')) { dzWizardPanels[5].appendChild(payer.closest('fieldset')); }\n            var signer = document.getElementById('potpis-druga-osoba');\n            if (signer && signer.closest('fieldset')) { dzWizardPanels[5].appendChild(signer.closest('fieldset')); }\n\n            var review = document.createElement('div');\n            review.id = 'dz-wizard-review'; review.className = 'dz-wizard-review';\n            dzWizardPanels[6].appendChild(review);\n            \/\/ Napomena: GDPR \"Detaljne informacije...\" (<details>) i \"Kako izgleda\n            \/\/ daljnji postupak\" NAMJERNO se vi\u0161e ne premje\u0161taju u korak 6 - GDPR\n            \/\/ detalji ostaju kao uvodni element uz Korak 1 (Podnositelj), a \"Kako\n            \/\/ izgleda daljnji postupak\" sad je dio zadnjeg koraka (potpis i slanje),\n            \/\/ generiranog zasebno u dz_render_step2_html().\n            var submit = document.getElementById('dz-submit-btn');\n            var hint = document.getElementById('dz-submit-hint');\n            var hintEn = document.getElementById('dz-submit-hint-en');\n            var nav6 = document.createElement('div'); nav6.className = 'dz-wizard-nav';\n            var back6 = document.createElement('button'); back6.type='button'; back6.className='dz-wizard-back'; back6.appendChild(document.createTextNode('\u2190 Natrag ')); var back6En=document.createElement('span'); back6En.className='dz-en'; back6En.lang='en'; back6En.style.display='inline'; back6En.style.margin='0'; back6En.classList.add('dz-btn-en'); back6En.style.display='block'; back6En.textContent='Back'; back6.appendChild(back6En); back6.addEventListener('click', function(){ dzWizardShowStep(5); }); nav6.appendChild(back6);\n            if (submit) { nav6.appendChild(submit); }\n            dzWizardPanels[6].appendChild(nav6);\n            if (hint) { dzWizardPanels[6].appendChild(hint); }\n            if (hintEn) { dzWizardPanels[6].appendChild(hintEn); }\n\n            dzWizardAddNav(dzWizardPanels[1], null, 2);\n            dzWizardAddNav(dzWizardPanels[2], 1, 3);\n            dzWizardAddNav(dzWizardPanels[3], 2, 4);\n            dzWizardAddNav(dzWizardPanels[4], 3, 5);\n            dzWizardAddNav(dzWizardPanels[5], 4, 6);\n            Object.keys(dzWizardPanels).forEach(function(k){ applyEnToggleTo(dzWizardPanels[k]); });\n            dzWizardShowStep(1, false);\n        }\n        dzWizardSetup();\n\n        step1Form.addEventListener('submit', function(e){\n            e.preventDefault();\n            if (window.dzValidateStep1 && !window.dzValidateStep1()) {\n                if (window.dzWizardShowInvalidStep) { window.dzWizardShowInvalidStep(); }\n                return;\n            }\n            var btn = document.getElementById('dz-submit-btn');\n            var originalHtml = btn ? btn.innerHTML : '';\n            var fd = new FormData(step1Form);\n            fd.append('dz_ajax', '1');\n\n            function proceedGenerate(){\n                if (btn) { btn.disabled = true; btn.innerHTML = 'Izrada PDF-a u tijeku\u2026<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Generating PDF\u2026<\/span>'; applyEnToggleTo(btn); }\n                \/\/ NAPOMENA: forma ima <input name=\"action\"> (WP admin-post.php obrazac),\n                \/\/ \u0161to u JavaScriptu ZASJENJUJE ugra\u0111eno svojstvo form.action (vra\u0107a sam\n                \/\/ DOM element polja, ne URL kao string!) - zato se OVDJE mora koristiti\n                \/\/ getAttribute('action'), nikako step1Form.action.\n                fetch(step1Form.getAttribute('action'), { method: 'POST', body: fd })\n                    .then(function(r){ return r.json(); })\n                    .then(function(res){\n                        if (res && res.success) {\n                            var keepDodatniDokumenti = dzFiles.dodatni_dokumenti;\n                            container.innerHTML = res.data.html;\n                            dzFiles = {\n                                potpisani_obrazac: null,\n                                potpisani_obrazac_2: null,\n                                potpisani_obrazac_3: null,\n                                dodatni_dokumenti: keepDodatniDokumenti\n                            };\n                            dzPdfOutdated = false;\n                            applyEnToggleTo(container);\n                            wireStep2Form();\n                            if (btn) {\n                                btn.disabled = false;\n                                btn.innerHTML = originalHtml || 'Izradi PDF za ispis<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Generate PDF for printing<\/span>';\n                                applyEnToggleTo(btn);\n                            }\n                            setStepUrl({ dz_status: 'download', dz_token: res.data.token });\n                            dzAlreadyGeneratedOnce = true;\n                            \/\/ Nakon uspje\u0161ne izrade PDF-a odmah otvori zavr\u0161ni Korak 7\n                            \/\/ i prika\u017ei potvrdu da je PDF uspje\u0161no izra\u0111en.\n                            dzWizardShowStep(7);\n                            if (typeof dzShowPdfReadyModal === 'function') {\n                                dzShowPdfReadyModal();\n                            }\n                        } else {\n                            var msg = (res && res.data && res.data.message) ? res.data.message : 'Zamolba nije poslana. Do\u0161lo je do pogre\u0161ke pri slanju. Poku\u0161ajte ponovno.';\n                            dzOpenModal({\n                                type: 'error',\n                                title: 'Zamolba nije poslana',\n                                titleEn: 'The request was not submitted',\n                                bodyHtml: msg,\n                                bodyHtmlEn: 'An error occurred while submitting the request. Please check the entered information and try again.',\n                                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                            });\n                            if (btn) { btn.disabled = false; btn.innerHTML = originalHtml || 'Izradi PDF za ispis<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Generate PDF for printing<\/span>'; applyEnToggleTo(btn); }\n                        }\n                    })\n                    .catch(function(){\n                        dzOpenModal({\n                            type: 'error',\n                            title: 'Prekid veze',\n                            titleEn: 'Connection interrupted',\n                            bodyHtml: 'Do\u0161lo je do prekida veze tijekom slanja. Va\u0161i uneseni podaci ostaju na obrascu. Provjerite internetsku vezu i poku\u0161ajte ponovno.',\n                            bodyHtmlEn: 'A connection interruption occurred during submission. Your entered data remains in the form. Please check your internet connection and try again.',\n                            buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n                        });\n                        if (btn) { btn.disabled = false; btn.innerHTML = originalHtml || 'Izradi PDF za ispis<span class=\"dz-en dz-btn-en\" lang=\"en\" style=\"display:block;\">Generate PDF for printing<\/span>'; applyEnToggleTo(btn); }\n                    });\n            }\n\n            \/\/ Ako je PDF ve\u0107 jednom generiran i korisnik je nakon toga promijenio\n            \/\/ bilo koji podatak iz obrasca, prethodni PDF vi\u0161e nije va\u017ee\u0107i.\n            if (dzAlreadyGeneratedOnce && dzPdfOutdated) {\n                var hasSignedUpload = !!(\n                    dzFiles.potpisani_obrazac ||\n                    dzFiles.potpisani_obrazac_2 ||\n                    dzFiles.potpisani_obrazac_3\n                );\n\n                var changedBody =\n                    'Promijenili ste podatke nakon \u0161to je PDF ve\u0107 izra\u0111en. Prethodno izra\u0111eni PDF vi\u0161e nije va\u017ee\u0107i. Potrebno je izraditi novi PDF, ponovno ga ispisati i vlastoru\u010dno potpisati.';\n\n                var changedBodyEn =\n                    'You changed the information after the PDF had already been generated. The previously generated PDF is no longer valid. You need to generate a new PDF, print it again and sign it by hand.';\n\n                if (hasSignedUpload) {\n                    changedBody += ' Prethodno u\u010ditane stranice potpisanog obrasca bit \u0107e uklonjene; dodatni dokumenti ostaju sa\u010duvani.';\n                    changedBodyEn += ' Previously uploaded pages of the signed form will be removed; additional documents will be kept.';\n                }\n\n                dzOpenModal({\n                    type: 'warning',\n                    title: 'Podaci su izmijenjeni',\n                    titleEn: 'Information has changed',\n                    bodyHtml: '<p>' + changedBody + '<\/p>',\n                    bodyHtmlEn: '<p>' + changedBodyEn + '<\/p>',\n                    buttons: [\n                        { label: 'Odustani', labelEn: 'Cancel', isCancel: true },\n                        { label: 'Izradi novi PDF', labelEn: 'Generate new PDF', primary: true, onClick: proceedGenerate }\n                    ]\n                });\n            } else {\n                proceedGenerate();\n            }\n        });\n    })();\n    <\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n    var root = document.querySelector('.dz-wrap, .dapa-zamolba, #dapa-zamolba');\n    if (!root) { return; }\n\n    function dzActivateProgressStep8(active) {\n        var steps = root.querySelectorAll('[data-step], .dz-progress-step, .dz-step-indicator');\n        if (!steps || !steps.length) { return; }\n\n        \/\/ Prefer explicit data-step=7\/8 if present.\n        var s7 = root.querySelector('[data-step=\"7\"]');\n        var s8 = root.querySelector('[data-step=\"8\"]');\n        if (s7 && s8) {\n            if (active) {\n                s7.classList.remove('active', 'is-active', 'current');\n                s8.classList.add('active');\n                s8.classList.add('is-active');\n                s8.classList.add('current');\n            }\n            return;\n        }\n\n        \/\/ Fallback: use the last two progress items.\n        var arr = Array.prototype.slice.call(steps);\n        if (arr.length >= 8 && active) {\n            arr[6].classList.remove('active', 'is-active', 'current');\n            arr[7].classList.add('active');\n            arr[7].classList.add('is-active');\n            arr[7].classList.add('current');\n        }\n    }\n\n    \/\/ Try to find the upload section by its known file input.\n    var upload = root.querySelector('input[name=\"potpisani_obrazac\"]');\n    var uploadSection = upload ? (upload.closest('.dz-step, .dz-panel, section, fieldset, div') || upload) : null;\n    if (!uploadSection || !('IntersectionObserver' in window)) { return; }\n\n    var observer = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n            if (entry.isIntersecting && entry.intersectionRatio > 0.15) {\n                dzActivateProgressStep8(true);\n            }\n        });\n    }, { threshold: [0.15, 0.35] });\n\n    observer.observe(uploadSection);\n});\n<\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n    function dzToggleIdRequiredWhenNoOib() {\n        var noOib = document.querySelector('input[name=\"nema_oib\"]');\n        var idField = document.querySelector('input[name=\"broj_iskaznice\"]');\n        if (!noOib || !idField) { return; }\n\n        var required = !!noOib.checked;\n        idField.required = required;\n        idField.setAttribute('aria-required', required ? 'true' : 'false');\n\n        var label = idField.id ? document.querySelector('label[for=\"' + idField.id + '\"]') : null;\n        if (label) {\n            var mark = label.querySelector('.dz-required-no-oib');\n            if (required && !mark) {\n                mark = document.createElement('span');\n                mark.className = 'dz-required-no-oib';\n                mark.textContent = ' *';\n                mark.setAttribute('aria-hidden', 'true');\n                label.appendChild(mark);\n            } else if (!required && mark) {\n                mark.remove();\n            }\n        }\n    }\n\n    var noOib = document.querySelector('input[name=\"nema_oib\"]');\n    if (noOib) {\n        noOib.addEventListener('change', dzToggleIdRequiredWhenNoOib);\n        dzToggleIdRequiredWhenNoOib();\n    }\n});\n\n    (function(){\n        const t = document.getElementById('toggle-obrazac-off');\n        const c = document.getElementById('opis-obrasca-off');\n        if (!t || !c) return;\n        const update = () => {\n            const open = !c.classList.contains('dz-hidden');\n            t.setAttribute('aria-expanded', open ? 'true' : 'false');\n            const i = t.querySelector('.dz-manual-card-icon');\n            if (i) i.textContent = open ? '\u2212' : '+';\n        };\n        t.addEventListener('click', function(){ setTimeout(update, 0); });\n        update();\n    })();\n\n    (function(){\n        \/\/ \"Prije ispunjavanja zamolbe\" i GDPR detalji su izvorni <details> elementi -\n        \/\/ preglednik sam upravlja otvaranjem\/zatvaranjem, mi samo pratimo 'toggle'\n        \/\/ doga\u0111aj da a\u017euriramo prikazani +\/- znak.\n        document.querySelectorAll('details.dz-step1-intro, details.dz-gdpr-details').forEach(function(det){\n            var icon = det.querySelector('.dz-preinfo-icon, .dz-gdpr-icon');\n            if (!icon) { return; }\n            var update = function(){ icon.textContent = det.open ? '\u2212' : '+'; };\n            det.addEventListener('toggle', update);\n            update();\n        });\n    })();\n\n    \/\/ Jezi\u010dni okvir mora ostati vidljiv pri svakoj promjeni koraka.\n    function dzKeepLanguageCardVisible(){\n        var card = document.querySelector('.dz-language-card-global');\n        if (card) {\n            card.style.setProperty('display', 'block', 'important');\n            card.removeAttribute('aria-hidden');\n        }\n    }\n\n    function dzSyncAdditionalDocsOpenState(scope){\n        var root = scope || document;\n        var box = root.querySelector ? root.querySelector('.dz-additional-docs') : null;\n        if (!box) return;\n\n        var hasFiles = false;\n\n        var fileInputs = box.querySelectorAll('input[type=\"file\"]');\n        fileInputs.forEach(function(input){\n            if (input.files && input.files.length) hasFiles = true;\n        });\n\n        var fileItems = box.querySelectorAll(\n            '.dz-file-item, .dz-upload-item, .dz-attachment-item, [data-file-name], .dz-file-row'\n        );\n        if (fileItems.length) hasFiles = true;\n\n        if (hasFiles) box.open = true;\n    }\n\n    document.addEventListener('change', function(e){\n        if (e.target && e.target.closest && e.target.closest('.dz-additional-docs')) {\n            dzSyncAdditionalDocsOpenState(document);\n        }\n    });\n\n    document.addEventListener('DOMContentLoaded', function(){\n        dzSyncAdditionalDocsOpenState(document);\n    });\n\n    function dzShowPdfReadyModal(scope){\n        var root = scope || document;\n        var chip = root.querySelector ? root.querySelector('.dz-pdf-ready-status') : null;\n        if (!chip || chip.dataset.modalShown === '1') return;\n\n        chip.dataset.modalShown = '1';\n\n        if (typeof dzOpenModal === 'function') {\n            dzOpenModal({\n                type: 'success',\n                title: 'PDF je izra\u0111en',\n                titleEn: 'PDF generated',\n                bodyHtml:\n                    '<p>Obrazac je spreman za preuzimanje. Nakon preuzimanja ispi\u0161ite ga i vlastoru\u010dno potpi\u0161ite na ozna\u010denom mjestu.<\/p>',\n                bodyHtmlEn:\n                    '<p>The form is ready to download. After downloading it, print it and sign it by hand in the marked place.<\/p>',\n                buttons: [\n                    { label: 'U redu', labelEn: 'OK', primary: true }\n                ]\n            });\n        }\n    }\n\n    document.addEventListener('DOMContentLoaded', function(){\n        dzShowPdfReadyModal(document);\n    });\n\n    function dzShowFinalSubmissionModal(scope){\n        var root = scope || document;\n        var trigger = root.querySelector ? root.querySelector('.dz-request-sent-trigger') : null;\n        if (!trigger || trigger.dataset.modalShown === '1') return;\n\n        trigger.dataset.modalShown = '1';\n        var confirmationFailed = trigger.getAttribute('data-confirmation-email-failed') === '1';\n\n        var bodyHr = confirmationFailed\n            ? '<p>Va\u0161a zamolba i prilo\u017eeni dokumenti uspje\u0161no su dostavljeni Dr\u017eavnom arhivu u Pazinu. Potvrdni e-mail nije bilo mogu\u0107e poslati, ali to ne utje\u010de na zaprimanje zamolbe.<\/p>'\n            : '<p>Va\u0161a zamolba i prilo\u017eeni dokumenti uspje\u0161no su dostavljeni Dr\u017eavnom arhivu u Pazinu. Potvrda o zaprimanju poslana je na Va\u0161u e-mail adresu.<\/p>';\n\n        var bodyEn = confirmationFailed\n            ? '<p>Your request and attached documents have been successfully delivered to the State Archives in Pazin. The confirmation e-mail could not be sent, but this does not affect receipt of your request.<\/p>'\n            : '<p>Your request and attached documents have been successfully delivered to the State Archives in Pazin. A confirmation of receipt has been sent to your e-mail address.<\/p>';\n\n        if (typeof dzOpenModal === 'function') {\n            dzOpenModal({\n                type: confirmationFailed ? 'warning' : 'success',\n                title: 'Zamolba je uspje\u0161no poslana',\n                titleEn: 'Request submitted successfully',\n                bodyHtml: bodyHr,\n                bodyHtmlEn: bodyEn,\n                buttons: [{\n                    label: 'U redu',\n                    labelEn: 'OK',\n                    primary: true,\n                    onClick: function(){\n                        window.location.href = 'https:\/\/www.dapa.hr\/';\n                    }\n                }]\n            });\n        } else {\n            window.location.href = 'https:\/\/www.dapa.hr\/';\n        }\n    }\n\n    function dzShowUploadFallbackError(scope){\n        var root = scope || document;\n        var trigger = root.querySelector ? root.querySelector('.dz-upload-error-trigger') : null;\n        if (!trigger || trigger.dataset.modalShown === '1') return;\n\n        trigger.dataset.modalShown = '1';\n        if (typeof dzOpenModal === 'function') {\n            dzOpenModal({\n                type: 'error',\n                title: 'Zamolba nije poslana',\n                titleEn: 'Request not submitted',\n                bodyHtml:\n                    '<p>Do\u0161lo je do pogre\u0161ke pri slanju zamolbe. Provjerite podatke i poku\u0161ajte ponovno.<\/p>',\n                bodyHtmlEn:\n                    '<p>An error occurred while submitting the request. Please check the details and try again.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n        }\n    }\n\n    function dzShowStep8StatusModals(scope){\n        dzShowFinalSubmissionModal(scope);\n        dzShowUploadFallbackError(scope);\n    }\n\n    document.addEventListener('DOMContentLoaded', function(){\n        dzShowStep8StatusModals(document);\n    });\n\n    function dzGetAllSelectedUploadBytes(scope){\n        var root = scope || document;\n        var total = 0;\n        var inputs = root.querySelectorAll ? root.querySelectorAll('input[type=\"file\"]') : [];\n        inputs.forEach(function(input){\n            if (!input.files) return;\n            Array.from(input.files).forEach(function(file){\n                total += Number(file.size || 0);\n            });\n        });\n        return total;\n    }\n\n    function dzValidateTotalUploadSize(scope){\n        var total = dzGetAllSelectedUploadBytes(scope || document);\n        var max = 15 * 1024 * 1024;\n\n        if (total <= max) return true;\n\n        if (typeof dzOpenModal === 'function') {\n            dzOpenModal({\n                type: 'error',\n                title: 'Ukupna veli\u010dina datoteka je prevelika',\n                titleEn: 'Total file size is too large',\n                bodyHtml:\n                    '<p>Ukupna veli\u010dina svih datoteka prilo\u017eenih uz jednu zamolbu ne smije biti ve\u0107a od 15 MB.<\/p>',\n                bodyHtmlEn:\n                    '<p>The total size of all files attached to one request must not exceed 15 MB.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n        }\n        return false;\n    }\n\n    document.addEventListener('click', function(e){\n        var btn = e.target && e.target.closest\n            ? e.target.closest('#dz-step3-submit, .dz-submit-btn, button[name=\"dz_submit\"], button[type=\"submit\"].dz-final-submit')\n            : null;\n        if (!btn) return;\n\n        if (!dzValidateTotalUploadSize(document)) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n        }\n    }, true);\n\n    function dzExpectedSignedFormPages(){\n        var card = document.getElementById('dz-upload-individual');\n        if (!card) return 2;\n        var n = parseInt(card.getAttribute('data-dz-pdf-pages'), 10);\n        return n >= 3 ? 3 : 2;\n    }\n\n    function dzValidateSignedFormCompleteness(){\n        if (typeof dzFiles === 'undefined') return true;\n\n        var f1 = dzFiles.potpisani_obrazac;\n        var f2 = dzFiles.potpisani_obrazac_2;\n        var f3 = dzFiles.potpisani_obrazac_3;\n\n        if (!f1) {\n            dzOpenModal({\n                type: 'error',\n                title: 'U\u010ditajte potpisani obrazac',\n                titleEn: 'Upload the signed form',\n                bodyHtml: '<p>Za slanje zamolbe potrebno je u\u010ditati potpisani obrazac kao PDF ili fotografije svih stranica.<\/p>',\n                bodyHtmlEn: '<p>To submit the request, upload the signed form as a PDF or photographs of all pages.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n            return false;\n        }\n\n        var name = String(f1.name || '').toLowerCase();\n        var type = String(f1.type || '').toLowerCase();\n        var isPdf = name.endsWith('.pdf') || type === 'application\/pdf';\n\n        if (isPdf) return true;\n\n        if (!f2) {\n            dzOpenModal({\n                type: 'error',\n                title: 'Nedostaje druga stranica obrasca',\n                titleEn: 'The second page of the form is missing',\n                bodyHtml: '<p>Ako obrazac u\u010ditavate kao fotografije, u\u010ditajte i drugu stranicu obrasca.<\/p>',\n                bodyHtmlEn: '<p>If you upload the form as photographs, please also upload the second page.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n            return false;\n        }\n\n        if (dzExpectedSignedFormPages() >= 3 && !f3) {\n            dzOpenModal({\n                type: 'error',\n                title: 'Nedostaje tre\u0107a stranica obrasca',\n                titleEn: 'The third page of the form is missing',\n                bodyHtml: '<p>Generirani obrazac ima tri stranice. U\u010ditajte i fotografiju tre\u0107e stranice prije slanja.<\/p>',\n                bodyHtmlEn: '<p>The generated form has three pages. Please also upload a photograph of the third page before submitting.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n            return false;\n        }\n\n        return true;\n    }\n\n    document.addEventListener('click', function(e){\n        var btn = e.target && e.target.closest\n            ? e.target.closest('#dz-step3-submit, .dz-submit-btn, button[name=\"dz_submit\"], button[type=\"submit\"].dz-final-submit')\n            : null;\n        if (!btn) return;\n\n        if (!dzValidateSignedFormCompleteness()) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n        }\n    }, true);\n\n    \/*\n     * Nenametljiva provjera vlastoru\u010dnog potpisa.\n     * Ovo NIJE provjera autenti\u010dnosti potpisa i nikad ne blokira slanje.\n     * Kod fotografija druge stranice analizira se samo zona iznad crte potpisa.\n     * Za PDF se provjera radi samo ako je pdf.js ve\u0107 dostupan na stranici;\n     * ina\u010de se PDF ne procjenjuje automatski.\n     *\/\n    var dzSignatureWarningAccepted = false;\n    var dzSignatureCheckRunning = false;\n\n    function dzAnalyzeSignatureCanvas(canvas){\n        try {\n            var ctx = canvas.getContext('2d', { willReadFrequently: true });\n            if (!ctx) return null;\n\n            var w = canvas.width, h = canvas.height;\n            if (w < 200 || h < 200) return null;\n\n            \/\/ Potpis se tra\u017ei RELATIVNO u odnosu na crtu za potpis podnositelja,\n            \/\/ a ne na fiksnom postotku visine stranice. Ispisani pa skenirani ili\n            \/\/ fotografirani obrazac uvijek je malo pomaknut\/skaliran (izmjereno:\n            \/\/ sken s DAPA skenera pomaknut je ~0,6 % visine), pa je fiksna zona\n            \/\/ hvatala donji dio natpisa \"Podnositelj zamolbe:\" i la\u017eno javljala\n            \/\/ da potpis postoji.\n            \/\/\n            \/\/ 1) U desnom stupcu (55-97 % \u0161irine), izme\u0111u 74 % i 88 % visine,\n            \/\/    prona\u0111i crtu za potpis: redak s neprekinutim tamnim potezom\n            \/\/    od barem 10 % \u0161irine stranice. Tekst nikad nema tako dug potez.\n            \/\/    Uzima se NAJNI\u017dA takva crta (ispod nje je samo otisnuto ime).\n            \/\/ 2) Provjeri traku od 2,6 % do 0,25 % visine IZNAD te crte - prostor\n            \/\/    izme\u0111u natpisa \"Podnositelj zamolbe:\" i crte, gdje se potpisuje.\n            \/\/    Otisnuto ime ispod crte namjerno se ne gleda.\n            var x0 = Math.floor(w * 0.55);\n            var x1 = Math.floor(w * 0.97);\n            var ry0 = Math.floor(h * 0.68);\n            var ry1 = Math.floor(h * 0.88);\n            var rw = x1 - x0, rh = ry1 - ry0;\n            var d = ctx.getImageData(x0, ry0, rw, rh).data;\n            var isDark = function(cx, cy){\n                var i = (cy * rw + cx) * 4;\n                return (0.299 * d[i] + 0.587 * d[i+1] + 0.114 * d[i+2]) < 165;\n            };\n            var isVeryDark = function(cx, cy){\n                var i = (cy * rw + cx) * 4;\n                return (0.299 * d[i] + 0.587 * d[i+1] + 0.114 * d[i+2]) < 95;\n            };\n\n            var minRun = Math.floor(w * 0.10);\n            var lineTop = -1;\n            var yStart = Math.floor(h * 0.74) - ry0;\n            for (var yy = rh - 1; yy >= yStart; yy--) {\n                var run = 0, best = 0;\n                for (var xx = 0; xx < rw; xx++) {\n                    if (isDark(xx, yy)) { run++; if (run > best) best = run; } else { run = 0; }\n                }\n                if (best >= minRun) {\n                    \/\/ Najni\u017ea crta prona\u0111ena - popni se do njezina vrha.\n                    lineTop = yy;\n                    while (lineTop - 1 >= yStart) {\n                        var r2 = 0, b2 = 0;\n                        for (var x2 = 0; x2 < rw; x2++) {\n                            if (isDark(x2, lineTop - 1)) { r2++; if (r2 > b2) b2 = r2; } else { r2 = 0; }\n                        }\n                        if (b2 >= minRun) { lineTop--; } else { break; }\n                    }\n                    break;\n                }\n            }\n\n            \/\/ Crta nije prona\u0111ena (npr. u\u010ditana pogre\u0161na stranica ili jako\n            \/\/ nakrivljena fotografija) - potpis se ne mo\u017ee potvrditi.\n            if (lineTop < 0) return false;\n\n            var za = Math.max(0, lineTop - Math.floor(h * 0.026));\n            var zb = Math.max(za + 1, lineTop - Math.floor(h * 0.0025));\n            var dark = 0, veryDark = 0, total = 0;\n            for (var zy = za; zy < zb; zy++) {\n                for (var zx = 0; zx < rw; zx++) {\n                    total++;\n                    if (isDark(zx, zy)) dark++;\n                    if (isVeryDark(zx, zy)) veryDark++;\n                }\n            }\n            var darkRatio = dark \/ total;\n            var veryDarkRatio = veryDark \/ total;\n\n            \/\/ Vra\u0107a true = iznad crte postoji rukom dodan trag (potpis).\n            return (darkRatio > 0.004 || veryDarkRatio > 0.0035);\n        } catch (e) {\n            return null;\n        }\n    }\n\n    function dzCheckSignatureInImageFile(file){\n        return new Promise(function(resolve){\n            if (!file) { resolve(null); return; }\n\n            var url = URL.createObjectURL(file);\n            var img = new Image();\n\n            img.onload = function(){\n                try {\n                    var maxW = 1400;\n                    var scale = img.naturalWidth > maxW ? maxW \/ img.naturalWidth : 1;\n                    var canvas = document.createElement('canvas');\n                    canvas.width = Math.max(1, Math.round(img.naturalWidth * scale));\n                    canvas.height = Math.max(1, Math.round(img.naturalHeight * scale));\n                    var ctx = canvas.getContext('2d');\n                    ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n                    resolve(dzAnalyzeSignatureCanvas(canvas));\n                } catch (e) {\n                    resolve(null);\n                } finally {\n                    URL.revokeObjectURL(url);\n                }\n            };\n\n            img.onerror = function(){\n                URL.revokeObjectURL(url);\n                resolve(null);\n            };\n\n            img.src = url;\n        });\n    }\n\n    \/\/ pdf.js (Mozilla, Apache 2.0) isporu\u010den je unutar plugina (assets\/pdfjs) i\n    \/\/ u\u010ditava se tek kad zatreba - samo za provjeru potpisa na u\u010ditanom PDF-u.\n    var dzPdfJsPromise = null;\n    function dzLoadPdfJs(){\n        if (window.pdfjsLib) { return Promise.resolve(window.pdfjsLib); }\n        if (dzPdfJsPromise) { return dzPdfJsPromise; }\n        dzPdfJsPromise = new Promise(function(resolve){\n            var sc = document.createElement('script');\n            sc.src = \"https:\\\/\\\/www.dapa.hr\\\/wp-content\\\/plugins\\\/dapa-zamolba\\\/assets\\\/pdfjs\\\/pdf.js\";\n            sc.onload = function(){\n                try {\n                    window.pdfjsLib.GlobalWorkerOptions.workerSrc = \"https:\\\/\\\/www.dapa.hr\\\/wp-content\\\/plugins\\\/dapa-zamolba\\\/assets\\\/pdfjs\\\/pdf.worker.js\";\n                    resolve(window.pdfjsLib);\n                } catch (e) { resolve(null); }\n            };\n            sc.onerror = function(){ dzPdfJsPromise = null; resolve(null); };\n            document.head.appendChild(sc);\n        });\n        return dzPdfJsPromise;\n    }\n\n    \/\/ Iscrtava zadanu stranicu PDF-a i provjerava potpis na njoj.\n    \/\/ Vra\u0107a true\/false, ili null ako provjera tehni\u010dki nije mogu\u0107a.\n    function dzCheckSignatureInPdfFile(file, pageNum){\n        return dzLoadPdfJs().then(function(lib){\n            if (!lib || !file) { return null; }\n            return file.arrayBuffer().then(function(buf){\n                return lib.getDocument({data: new Uint8Array(buf)}).promise;\n            }).then(function(doc){\n                if (doc.numPages < pageNum) { return null; }\n                return doc.getPage(pageNum).then(function(page){\n                    var viewport = page.getViewport({scale: 1.4});\n                    var canvas = document.createElement('canvas');\n                    canvas.width = Math.round(viewport.width);\n                    canvas.height = Math.round(viewport.height);\n                    var ctx = canvas.getContext('2d');\n                    ctx.fillStyle = '#ffffff';\n                    ctx.fillRect(0, 0, canvas.width, canvas.height);\n                    return page.render({canvasContext: ctx, viewport: viewport}).promise.then(function(){\n                        return dzAnalyzeSignatureCanvas(canvas);\n                    });\n                });\n            });\n        }).catch(function(){ return null; });\n    }\n\n    function dzPdfPageCount(file){\n        return dzLoadPdfJs().then(function(lib){\n            if (!lib || !file) { return 0; }\n            return file.arrayBuffer().then(function(buf){\n                return lib.getDocument({data: new Uint8Array(buf)}).promise;\n            }).then(function(doc){ return doc.numPages; });\n        }).catch(function(){ return 0; });\n    }\n\n    function dzIsPdfFile(f){\n        var n = String(f.name || '').toLowerCase();\n        var t = String(f.type || '').toLowerCase();\n        return n.endsWith('.pdf') || t === 'application\/pdf';\n    }\n\n    function dzUploadedFile(field){\n        var files = (typeof window.dzGetUploadedFiles === 'function') ? window.dzGetUploadedFiles() : null;\n        if (files && files[field]) { return files[field]; }\n        var input = document.querySelector('input[name=\"' + field + '\"]');\n        return (input && input.files && input.files[0]) ? input.files[0] : null;\n    }\n\n    \/\/ Potpis podnositelja nalazi se na 2. stranici obrasca:\n    \/\/ - jedan PDF s vi\u0161e stranica -> 2. stranica tog PDF-a\n    \/\/ - stranice u\u010ditane zasebno -> datoteka \"stranica 2\" (PDF ili slika)\n    function dzCheckUploadedSignature(){\n        var f1 = dzUploadedFile('potpisani_obrazac');\n        var f2 = dzUploadedFile('potpisani_obrazac_2');\n        if (!f1) { return Promise.resolve(null); }\n\n        var checkSecond = function(){\n            if (!f2) { return Promise.resolve(null); }\n            return dzIsPdfFile(f2) ? dzCheckSignatureInPdfFile(f2, 1) : dzCheckSignatureInImageFile(f2);\n        };\n\n        if (dzIsPdfFile(f1)) {\n            return dzPdfPageCount(f1).then(function(n){\n                if (n >= 2) { return dzCheckSignatureInPdfFile(f1, 2); }\n                return checkSecond();\n            });\n        }\n        return checkSecond();\n    }\n\n    function dzSetSignatureCheckValue(v){\n        var el = document.getElementById('dz-signature-check');\n        if (el) { el.value = v; }\n    }\n\n    function dzShowSignatureWarning(continueCallback){\n        dzOpenModal({\n            type: 'warning',\n            title: 'Potpis mo\u017eda nije vidljiv',\n            titleEn: 'The signature may not be visible',\n            bodyHtml:\n                '<p>Na u\u010ditanom obrascu nije mogu\u0107e pouzdano prepoznati vlastoru\u010dni potpis.<\/p>' +\n                '<p>Provjerite jeste li obrazac vlastoru\u010dno potpisali na ozna\u010denoj liniji prije slanja.<\/p>',\n            bodyHtmlEn:\n                '<p>A handwritten signature could not be reliably detected on the uploaded form.<\/p>' +\n                '<p>Please check that the form has been signed by hand on the marked line before submitting.<\/p>',\n            buttons: [\n                {\n                    label: 'Vrati se na upload',\n                    labelEn: 'Return to upload',\n                    primary: false\n                },\n                {\n                    label: 'Svejedno nastavi',\n                    labelEn: 'Continue anyway',\n                    primary: true,\n                    onClick: function(){\n                        dzSignatureWarningAccepted = true;\n                        dzSetSignatureCheckValue('nije_pronaden');\n                        if (typeof continueCallback === 'function') {\n                            setTimeout(continueCallback, 80);\n                        }\n                    }\n                }\n            ]\n        });\n    }\n\n    function dzRunSignatureWarningBeforeSubmit(btn){\n        if (dzSignatureWarningAccepted || dzSignatureCheckRunning) return false;\n\n        dzSignatureCheckRunning = true;\n\n        dzCheckUploadedSignature().then(function(result){\n            dzSignatureCheckRunning = false;\n\n            \/\/ null = provjera tehni\u010dki nije mogu\u0107a; tada ne ometamo korisnika.\n            if (result === null || result === true) {\n                dzSetSignatureCheckValue(result === true ? 'pronaden' : 'nije_provjereno');\n                dzSignatureWarningAccepted = true;\n                if (btn) btn.click();\n                return;\n            }\n\n            dzShowSignatureWarning(function(){\n                if (btn) btn.click();\n            });\n        });\n\n        return true;\n    }\n\n    \/\/ Resetiraj prethodnu odluku ako korisnik zamijeni stranicu obrasca.\n    document.addEventListener('change', function(e){\n        var t = e.target;\n        if (!t) return;\n        if (\n            t.name === 'potpisani_obrazac' ||\n            t.name === 'potpisani_obrazac_2' ||\n            t.name === 'potpisani_obrazac_3'\n        ) {\n            dzSignatureWarningAccepted = false;\n        }\n    });\n\n    \/\/ Provjera se pokre\u0107e neposredno prije zavr\u0161ne potvrde\/slanja.\n    document.addEventListener('click', function(e){\n        var btn = e.target && e.target.closest\n            ? e.target.closest('#dz-step3-submit, .dz-submit-btn, button[name=\"dz_submit\"], button[type=\"submit\"].dz-final-submit')\n            : null;\n        if (!btn) return;\n\n        \/\/ Najprije moraju pro\u0107i postoje\u0107e obvezne provjere.\n        if (typeof dzValidateSignedFormCompleteness === 'function' && !dzValidateSignedFormCompleteness()) {\n            return;\n        }\n\n        if (typeof dzValidateRequiredAdditionalDocuments === 'function' && !dzValidateRequiredAdditionalDocuments()) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n            return;\n        }\n\n        if (dzRunSignatureWarningBeforeSubmit(btn)) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n        }\n    }, true);\n\n    function dzShowRemainingSystemErrorModals(scope){\n        var root = scope || document;\n\n        var expired = root.querySelector ? root.querySelector('.dz-expired-link-trigger') : null;\n        if (expired && expired.dataset.modalShown !== '1') {\n            expired.dataset.modalShown = '1';\n            dzOpenModal({\n                type: 'error',\n                title: 'Poveznica nije va\u017ee\u0107a',\n                titleEn: 'The link is not valid',\n                bodyHtml: '<p>Poveznica je istekla ili je neva\u017ee\u0107a. Molimo ponovno ispunite obrazac.<\/p>',\n                bodyHtmlEn: '<p>The link has expired or is invalid. Please complete the form again.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n        }\n\n        var pdfErr = root.querySelector ? root.querySelector('.dz-pdf-generation-error-trigger') : null;\n        if (pdfErr && pdfErr.dataset.modalShown !== '1') {\n            pdfErr.dataset.modalShown = '1';\n            dzOpenModal({\n                type: 'error',\n                title: 'PDF nije izra\u0111en',\n                titleEn: 'The PDF was not generated',\n                bodyHtml: '<p>Do\u0161lo je do pogre\u0161ke pri generiranju obrasca. Poku\u0161ajte ponovno ili kontaktirajte arhiv izravno.<\/p>',\n                bodyHtmlEn: '<p>An error occurred while generating the form. Please try again or contact the Archives directly.<\/p>',\n                buttons: [{ label: 'U redu', labelEn: 'OK', primary: true }]\n            });\n        }\n    }\n\n    document.addEventListener('DOMContentLoaded', function(){\n        dzShowRemainingSystemErrorModals(document);\n    });\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"cybocfi_hide_featured_image":"","footnotes":""},"class_list":["post-13299","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/pages\/13299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/comments?post=13299"}],"version-history":[{"count":4,"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/pages\/13299\/revisions"}],"predecessor-version":[{"id":13310,"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/pages\/13299\/revisions\/13310"}],"wp:attachment":[{"href":"https:\/\/www.dapa.hr\/en\/wp-json\/wp\/v2\/media?parent=13299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}