:root {
  --cs-primary: #4a84eb;
  --cs-accent: #00B8D9;
  --cs-ok: #5BE49B;
  --cs-text: #1b2430;
  --cs-muted: #6b7280;
  --cs-surface: #ffffff;
  --cs-surface-2: #f6f7fb;
  --cs-ring: rgba(0, 184, 217, .35);
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif;
  color: var(--cs-text);
  background: #f2f5fb
}

.container {
  max-width: 1100px;
  margin: 24px auto;
  padding: 0 16px
}

.card {
  background: var(--cs-surface);
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
  overflow: hidden
}

.card-body {
  padding: 32px
}

/* .row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px
}

.col {
  flex: 1 1 280px
} */

.text-center {
  text-align: center
}

.mb-3 {
  margin-bottom: 12px
}

.mb-4 {
  margin-bottom: 16px
}

.mt-3 {
  margin-top: 12px
}

.fw-800 {
  font-weight: 800
}

/* ---------- Wizard stepper ---------- */
.wizard {
  position: sticky;
  top: 0;
  z-index: 5;
  margin-bottom: 18px;
  background: transparent;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.stepper {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  counter-reset: step;
  list-style: none;
  margin: 0;
  padding: 0
}

.stepper li {
  position: relative;
  flex: 1 1 0;
  text-align: center
}

.stepper .bubble {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  margin: 0 auto 8px;
  display: grid;
  place-items: center;
  font-weight: 700;
  background: #e6eefc;
  color: #406bd9;
  border: 2px solid transparent;
  transition: .25s ease;
  user-select: none
}

.stepper .label {
  font-size: 12px;
  color: var(--cs-muted)
}

.stepper li[aria-current="step"] .bubble {
  background: #dff3ff;
  border-color: var(--cs-accent);
  color: #0a4b61;
  box-shadow: 0 0 0 6px rgba(0, 184, 217, .08)
}

.stepper li.completed .bubble {
  background: var(--cs-ok);
  color: #08130C;
  border-color: transparent;
  box-shadow: 0 0 0 6px rgba(91, 228, 155, .18)
}

.stepper li::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 18px;
  right: -50%;
  height: 2px;
  background: #d7dcec;
  z-index: -1
}

.stepper li:last-child::after {
  display: none
}

.stepper li.completed::after {
  background: linear-gradient(90deg, var(--cs-ok), var(--cs-accent))
}

/* ---------- Tab panels ---------- */
.tab-panel {
  display: none;
  opacity: 0;
  transform: translateY(8px);
  transition: .25s ease
}

.tab-panel.active {
  display: block;
  opacity: 1;
  transform: none
}

/* ---------- Nav buttons ---------- */
.wizard-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px
}

.btn {
  border: 0;
  border-radius: 12px;
  padding: 12px 18px;
  font-weight: 700;
  cursor: pointer;
  background: #e9eef7;
  color: #1a2433;
  transition: .2s ease
}

.btn:disabled {
  opacity: .5;
  cursor: not-allowed
}

.btn:hover {
  filter: brightness(0.98)
}

.btn-primary {
  background: var(--cs-primary);
  color: #fff
}

.btn-ghost {
  background: transparent;
  border: 1px solid #dde3f0
}

.option-input{
  position: fixed;
  top: -10000px;
  left: -10000px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  tab-index: -1;
}

.option-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin: 20px auto
}

.option-card {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease;
  position: relative;
  flex: 1 1 280px;
  max-width: 320px;
  min-height: 300px
}

.option-card__media {
  position: relative;
  height: 180px;
  overflow: hidden
}

.option-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease
}

.option-card__body {
  padding: 14px 16px 18px;
  text-align: center
}

.option-card__title {
  margin: 8px 0;
  font-size: 1.2rem;
  font-weight: 700
}

.option-card__text {
  font-size: .95rem;
  color: #555
}

.option-card:hover .option-card__media img {
  transform: scale(1.06)
}

.option-input:checked+.option-card {
  transform: scale(1.06);
  box-shadow: 0 18px 54px var(--cs-ring);
  z-index: 2
}

.option-input:checked+.option-card::after {
  content: "✓";
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--cs-ok);
  color: #08130C;
  font-weight: 900;
  display: grid;
  place-items: center;
  box-shadow: 0 6px 16px rgba(91, 228, 155, .45)
}

/* ---------- Simple form look (keeps your IDs) ---------- */
label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px
}

input[type="text"],
input[type="number"],
select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #dfe5ef;
  outline: none;
  background: #fff;
  transition: border-color .15s ease
}

input.valid {
  border-color: #9be4bd
}

input.invalid {
  border-color: #f59e9e
}

.register-page {
/* --bg-1: #0f172a;
--bg-2: #1e293b; */
--card-bg: rgba(255,255,255,.9);
--text: #0b1220;
--muted: #6b7280;
--accent: #2563eb;
--ring: 34 197 94;
--radius: 12px;
--field-bg: #fff;
--border: #e5e7eb;
--control-h: 44px;

color: var(--text);
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}

.register-page::before {
content: "";
position: fixed;
inset: 0;
/* background:
radial-gradient(1200px 600px at 10% -10%, #3b82f61a 0%, transparent 60%),
radial-gradient(900px 500px at 100% 0%, #22c55e1a 0%, transparent 55%),
linear-gradient(160deg, var(--bg-1), var(--bg-2)); */
z-index: -1;
}

.register-page .form-card {
background: var(--card-bg);
backdrop-filter: saturate(140%) blur(6px);
border: 1px solid rgba(255,255,255,.6);
box-shadow: 0 10px 30px rgba(2,6,23,.15);
border-radius: 18px;
}

.register-page h1,
.register-page .section-title {
font-weight: 700;
letter-spacing: -.015em;
}
.register-page h1 { font-size: clamp(22px, 2.4vw, 28px); }
.register-page .section-title { font-size: clamp(18px, 2vw, 22px); }

.register-page .form-grid {
display: grid;
grid-template-columns: 1fr;
gap: 14px;
}
@media (min-width: 900px) {
.register-page .form-grid { grid-template-columns: repeat(2, 1fr); }
.register-page .form-grid .col-span-2 { grid-column: span 2; }
}

.register-page :is(input[type="text"], input[type="email"], input[type="date"],
          input[type="number"], select, textarea) {
appearance: none;
width: 100%;
height: var(--control-h);
padding: 12px 14px;
border-radius: var(--radius);
border: 1px solid var(--border);
background: var(--field-bg);
color: var(--text);
outline: none;
transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.register-page textarea {
height: auto;
min-height: 120px;
}

.register-page input[type="number"]::-webkit-outer-spin-button,
.register-page input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.register-page input[type="number"] { -moz-appearance: textfield; }

.register-page ::placeholder { color: var(--muted); opacity: .9; }
.register-page .help-text { color: var(--muted); font-size: 12px; }

.register-page :is(input, select, textarea):focus {
border-color: #16a34a;
box-shadow: 0 0 0 3px rgba(22,163,74,.22);
}

.register-page .is-invalid { border-color: #ef4444; }
.register-page .is-invalid:focus { box-shadow: 0 0 0 3px rgb(239 68 68 / .2); }
.register-page .is-valid { border-color: #22c55e; }

.register-page label {
font-weight: 600;
font-size: 13px;
color: #111827;
margin-bottom: 6px;
display: inline-block;
}

.register-page .section-divider {
height: 1px;
background: rgba(0,0,0,.08);
margin: 18px 0;
}

@media (prefers-color-scheme: dark) {
.register-page {
--card-bg: rgba(17,24,39,.75);
--text: #e5e7eb;
--muted: #94a3b8;
--field-bg: #fff;  
--border: #374151;
}
.register-page .form-card { border-color: rgba(255,255,255,.08); }
.register-page ::placeholder { color: #94a3b8; }
}

.register-page .select2-container { width: 100% !important; }
.register-page .select2-container .select2-selection--single {
height: var(--control-h);
position: relative;
border-radius: var(--radius);
border: 1px solid var(--border);
display: flex;
align-items: center;
padding: 0 12px;
background: var(--field-bg);
}
.register-page .select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: normal;
color: var(--text);
font-size: 15px;
}
.register-page .select2-container--default .select2-selection--single .select2-selection__arrow {
height: 100%;
top: 0;
right: 8px;
}
.register-page .select2-container--default .select2-dropdown {
border: 1px solid var(--border);
border-radius: 10px;
box-shadow: 0 10px 24px rgba(2,6,23,.15);
overflow: hidden;
}
.register-page .select2-results__option { padding: 10px 12px; }
.register-page .select2-results__option--highlighted {
background: rgba(37,99,235,.08);
color: inherit;
}
.register-page .select2-container--default .select2-selection--single .select2-selection__clear {
position: absolute;
right: 28px;
top: 50%;
transform: translateY(-50%);
font-size: 16px;
line-height: 1;
color: #ef4444;
opacity: .9;
cursor: pointer;
}
.register-page .select2-container--default .select2-selection--single .select2-selection__clear:hover {
opacity: 1;
}

.register-page .error { color: #dc2626 !important; font-weight: 600; }
.register-page .success { color: #16a34a !important; font-weight: 600; }
.register-page .help-text, .register-page .error, .register-page .success {
margin-top: 6px;
}

.register-page .btn {
font-weight: 600;
letter-spacing: .3px;
padding: 12px 22px;
border-radius: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
transition: background-color .2s ease, box-shadow .2s ease, transform .1s ease;
}

.register-page .btn-success {
background-color: #22c55e;
border-color: #22c55e;
color: #fff;
}
.register-page .btn-success:hover {
background-color: #16a34a;
border-color: #16a34a;
box-shadow: 0 6px 20px rgba(34,197,94,.35);
transform: translateY(-1px);
}
.register-page .btn-success:active {
background-color: #15803d;
border-color: #15803d;
transform: translateY(0);
box-shadow: 0 4px 12px rgba(34,197,94,.25) inset;
}

.register-page .btn-primary {
background-color: #2563eb;
border-color: #2563eb;
color: #fff;
}
.register-page .btn-primary:hover {
background-color: #1d4ed8;
border-color: #1d4ed8;
box-shadow: 0 6px 20px rgba(37,99,235,.35);
transform: translateY(-1px);
}
.register-page .btn-primary:active {
background-color: #1e40af;
border-color: #1e40af;
transform: translateY(0);
box-shadow: 0 4px 12px rgba(37,99,235,.25) inset;
}

.register-page .btn-danger {
background-color: #ef4444;
border-color: #ef4444;
color: #fff;
}
.register-page .btn-danger:hover {
background-color: #dc2626;
border-color: #dc2626;
box-shadow: 0 6px 20px rgba(239,68,68,.35);
transform: translateY(-1px);
}
.register-page .btn-danger:active {
background-color: #b91c1c;
border-color: #b91c1c;
transform: translateY(0);
box-shadow: 0 4px 12px rgba(239,68,68,.25) inset;
}

@media (prefers-reduced-motion: reduce) {
.register-page * { transition: none !important; }
}

.zakljucano {
font-weight: bold;
font-size: 10px !important;
color: red;
text-align: center !important;
display: none;
}

.success {
color: #00B033 !important;
}

.error {
color: #B01800 !important;
}

.kliknuto {
background-color: #1E67A7 !important;
color: white;
font-weight: bold;
}

#datatable1>tbody tr:hover {
background: #87b6e0 !important;
color: white;
cursor: pointer;
} 

#loading {
position: fixed;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
top: 0;
left: 0;
opacity: 0.7;
background-color: #fff;
z-index: 99;
}

#loading-image {
z-index: 100;
}

.register-page .select2-container .select2-selection--single {
height: 46px;           
padding: 0 40px 0 14px; 
font-size: 16px;        
}

.register-page .select2-container--default .select2-selection--single
.select2-selection__rendered {
color: #111827;    
line-height: 46px;  
font-size: 16px;
}

.register-page .select2-container--default .select2-selection--single
.select2-selection__placeholder {
color: #6b7280;  
opacity: 1;
}

.register-page .select2-container--default .select2-selection--single
.select2-selection__clear {
position: absolute;
right: 28px;
top: 50%;
transform: translateY(-50%);
font-size: 20px;         
line-height: 1;
color: #ef4444;
cursor: pointer;
opacity: .95;
}

.register-page .select2-container--default .select2-selection--single
.select2-selection__arrow {
height: 100%;
top: 0;
right: 8px;
}

.register-page .select2-dropdown { font-size: 16px; }
.register-page .select2-results__option { padding: 10px 12px; }

.register-page input.form-control[readonly],
.register-page input[readonly][type="text"],
.register-page input[readonly][type="date"] {
background-color: #ffffff !important;
color: #111827 !important;
opacity: 1 !important;
cursor: text;         
}

.register-page #datum_rodenja::placeholder {
color: #6b7280;
opacity: 1;
}

.register-page :is(input[type="text"], input[type="email"], input[type="number"],
          input[type="date"], select) {
height: 46px;
}

.register-page .flatpickr-input,
.register-page .datepicker-input {
height: 46px;
font-size: 16px;
color: #111827;
}

.register-page input,
.register-page select,
.register-page textarea {
color: #111827 !important;
font-size: 16px;           
font-weight: 400;
}

.register-page ::placeholder {
color: #6b7280 !important;
opacity: 1 !important;
}

.pills {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  margin-top: 8px;
}

.pill-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px; /* space between pill and discount */
}

.pill-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pill {
  cursor: pointer;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid #dfe5ef;
  background: #fff;
  font-weight: 700;
  user-select: none;
  text-align: center;
  min-width: 92px;
  transition: all 0.2s ease;
}

.pill:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}

.pill-input:checked + .pill {
  border-color: var(--cs-accent);
  background: var(--cs-accent);
  color: #fff;
  box-shadow: 0 6px 18px rgba(0,184,217,.35);
  transform: scale(1.05);
}

.discount-label {
  font-size: 22px;   /* big discount */
  font-weight: 800;
  color: #4a84eb;
  margin-top: -15px!important;
}

.price-summary{
  margin-top:16px;text-align:center;font-weight:700;
}
.price-summary small{display:block;color:#6b7280;font-weight:600}

    #plan-float {
        position: fixed;
        right: 18px;
        bottom: 18px;
        width: 320px;
        max-width: calc(100vw - 36px);
        background: #ffffffee;
        backdrop-filter: blur(6px);
        border: 1px solid rgba(0, 0, 0, .08);
        border-radius: 14px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
        padding: 14px 16px;
        z-index: 9999;
        font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    }

    #plan-float .pf-title {
        font-size: 12px;
        color: #6b7280;
        /* gray-500 */
        margin-top: 6px;
    }

    #plan-float .pf-value {
        font-size: 16px;
        font-weight: 800;
        color: #4a84eb;
        /* tvoja plava */
        margin-top: 2px;
        word-break: break-word;
    }

    @media (max-width: 480px) {
        #plan-float {
            width: 92vw;
            right: 4vw;
            bottom: 10px;
        }
    }

    /* Pozadinski video iza svega */
    .bg-video {
        position: fixed;
        inset: 0;
        width: 100vw;
        height: 100vh;
        object-fit: cover;
        /* popuni ekran bez letterbox-a */
        z-index: -2;
        /* iza sadržaja */
        pointer-events: none;
        /* da ne “loví” klikove */
        filter: none;
        /* po želji dodaj lagani blur ili sl. */
    }

    /* Tamni “scrim” radi kontrasta teksta */
    .bg-scrim {
        position: fixed;
        inset: 0;
        z-index: -1;
        /* iznad videa, ispod sadržaja */
        background: linear-gradient(to bottom,
                rgba(0, 0, 0, .35),
                rgba(0, 0, 0, .35));
        pointer-events: none;
    }

    /* Ako koristiš .register-page::before (već imaš), pazi na slojeve:
   tvoj ::before sada ostaje IZNAD videa, ali ISPOD sadržaja. */
    .register-page::before {
        z-index: -1;
        /* ostavi -1; video je na -2 pa se lijepo “stapaju” */
    }
