/* NSi Volitve — ENOTNE KOMPONENTE (admin + javni del).
   Nalaga se ZADNJA (po admin.css / frontend.css / temah), da so vsa vnosna polja, izbirniki, potrditvena polja
   in gumbi povsod enaki, ne glede na brskalnik (Safari, Chrome, Edge, Firefox).
   Vzorec: velika polja z mehkim robom in modrim obročem ob fokusu (kot na vstopu /letak).
   Ne dodajaj novih slogov za polja/gumbe po straneh — uporabi razrede .nsi-gumb--* in standardne <input>/<select>/<textarea>. */

body.nsi{
	--k-vis:44px;            /* višina polj in gumbov */
	--k-vis-mala:38px;       /* polja v tabelah, filtrih */
	--k-pisava:15px;
	--k-obroc:0 0 0 3px rgba(0,154,199,.22);
}

/* ------------------------------------------------------------------
   1. Besedilna polja, izbirniki (select), večvrstična polja
   ------------------------------------------------------------------ */
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea){
	-webkit-appearance:none;-moz-appearance:none;appearance:none;
	box-sizing:border-box;margin:0;max-width:100%;
	min-height:var(--k-vis);padding:10px 14px;
	font-family:var(--font-sans);font-size:var(--k-pisava);font-weight:var(--fw-regular);line-height:1.35;letter-spacing:0;
	color:var(--text-primary);background-color:var(--bg-surface);
	border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-md);
	box-shadow:none;outline:none;
	transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea):hover:not(:disabled):not(:focus){
	border-color:var(--nsi-cyan-300);
}
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea):focus,
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea):focus-visible{
	border-color:var(--nsi-modra);box-shadow:var(--k-obroc);outline:none;
}
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea)::placeholder{
	color:var(--text-muted);opacity:1;
}
body.nsi :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select,textarea):disabled,
body.nsi :is(input,select,textarea)[readonly]:not([type=checkbox],[type=radio]){
	background-color:var(--bg-sunken);color:var(--text-secondary);cursor:not-allowed;
}
/* Napake / opozorila, ki jih nastavijo skripte (obstoječi razredi) */
body.nsi :is(input,select,textarea).je-napaka{border-color:var(--danger) !important;background-color:#fdf1f0;box-shadow:none}
body.nsi :is(input,select,textarea).je-opozorilo{border-color:#d99a1e !important;background-color:#fff8e6}

/* Select: lastna puščica (enaka v vseh brskalnikih) */
body.nsi select:not([multiple]):not([size]){
	padding-right:42px;cursor:pointer;text-overflow:ellipsis;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23425968' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:right 16px center;background-size:14px 9px;
}
body.nsi select::-ms-expand{display:none}
body.nsi select[multiple],body.nsi select[size]:not([size="1"]){background-image:none;padding-right:14px;height:auto;cursor:default}
body.nsi select option{font-family:var(--font-sans);color:var(--text-primary);background:#fff}

/* Večvrstična polja */
body.nsi textarea{min-height:110px;line-height:1.5;resize:vertical;display:block;overflow:auto}

/* Datum / čas: enaka višina v Safariju, Chromu, Edgu in Firefoxu */
body.nsi :is(input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]){
	display:block;line-height:1.35;min-width:0;
}
body.nsi input[type=date]::-webkit-date-and-time-value,
body.nsi input[type=time]::-webkit-date-and-time-value,
body.nsi input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:1.35em}
body.nsi input[type=date]::-webkit-datetime-edit,
body.nsi input[type=time]::-webkit-datetime-edit,
body.nsi input[type=datetime-local]::-webkit-datetime-edit{padding:0}
body.nsi input[type=date]::-webkit-calendar-picker-indicator,
body.nsi input[type=time]::-webkit-calendar-picker-indicator,
body.nsi input[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.65}
body.nsi input[type=date]::-webkit-calendar-picker-indicator:hover,
body.nsi input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}

/* Številke: brez nihajočih puščic (enak videz povsod) */
body.nsi input[type=number]{-moz-appearance:textfield}
body.nsi input[type=number]::-webkit-inner-spin-button,
body.nsi input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Iskanje: brez vgrajenih okrasov */
body.nsi input[type=search]::-webkit-search-decoration,
body.nsi input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}

/* Samodejno izpolnjevanje brskalnika ne sme obarvati polj rumeno/modro */
body.nsi input:-webkit-autofill,
body.nsi input:-webkit-autofill:hover,
body.nsi input:-webkit-autofill:focus,
body.nsi select:-webkit-autofill,
body.nsi textarea:-webkit-autofill{
	-webkit-text-fill-color:var(--text-primary);
	-webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;
	transition:background-color 9999s ease-out 0s;
}

/* Kompaktna polja: tabele, filtri, množične akcije, vrstice s kontrolami */
body.nsi :is(.nsi-tabela,.nsi-oo-tabela,.nsi-filtri,.nsi-mnozicno,.nsi-vrstica-kontrol,.nsi-pogled--nov,.nsi-lepljivo-dno) :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=color]),select){
	min-height:var(--k-vis-mala);padding:7px 11px;font-size:14px;
}
body.nsi :is(.nsi-tabela,.nsi-oo-tabela,.nsi-filtri,.nsi-mnozicno,.nsi-vrstica-kontrol,.nsi-pogled--nov,.nsi-lepljivo-dno) select:not([multiple]):not([size]):not([hidden]){padding:7px 36px 7px 11px;background-position:right 12px center}
body.nsi :is(.nsi-tabela,.nsi-oo-tabela) textarea{min-height:70px;padding:8px 11px;font-size:14px}

/* ------------------------------------------------------------------
   2. Potrditvena polja, izbirni gumbi, drsniki, datoteke
   ------------------------------------------------------------------ */
body.nsi :is(input[type=checkbox],input[type=radio]){
	accent-color:var(--nsi-modra);
	width:18px;height:18px;min-height:0;margin:0;padding:0;flex:none;cursor:pointer;vertical-align:middle;
}
body.nsi label.nsi-checkbox>input[type=checkbox],body.nsi label.nsi-checkbox>input[type=radio]{margin-top:2px}
body.nsi input[type=range]{
	-webkit-appearance:none;-moz-appearance:none;appearance:none;
	accent-color:var(--nsi-modra);cursor:pointer;min-height:0;height:22px;padding:0;margin:0;border:0;background:transparent;box-shadow:none;
}
body.nsi input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--line-200)}
body.nsi input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--line-200)}
body.nsi input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--nsi-modra)}
body.nsi input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:var(--nsi-modra);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
body.nsi input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--nsi-modra);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
body.nsi input[type=range]:focus-visible{outline:none;box-shadow:none}
body.nsi input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px rgba(0,154,199,.35)}
body.nsi input[type=color]{width:44px;height:var(--k-vis-mala);padding:2px;border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-md);background:#fff;cursor:pointer}

/* Izbira datoteke: gumb v isti obliki kot ostali gumbi */
body.nsi input[type=file]{
	box-sizing:border-box;max-width:100%;min-height:var(--k-vis);padding:5px;
	font-family:var(--font-sans);font-size:14px;color:var(--text-secondary);
	background:var(--bg-surface);border:var(--border-thin) dashed var(--border-strong);border-radius:var(--radius-md);cursor:pointer;
}
body.nsi input[type=file]:hover{border-color:var(--nsi-modra)}
body.nsi input[type=file]::file-selector-button{
	margin:0 12px 0 0;min-height:32px;padding:0 16px;cursor:pointer;
	font-family:var(--font-sans);font-size:13px;font-weight:var(--fw-ultra);color:var(--text-primary);
	background:var(--bg-surface);border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-sm);
}
body.nsi input[type=file]::-webkit-file-upload-button{
	margin:0 12px 0 0;min-height:32px;padding:0 16px;cursor:pointer;
	font-family:var(--font-sans);font-size:13px;font-weight:900;color:var(--text-primary);
	background:var(--bg-surface);border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-sm);
}
body.nsi input[type=file]:hover::file-selector-button{border-color:var(--nsi-modra);color:var(--nsi-temno-modra)}
body.nsi input[type=file]:hover::-webkit-file-upload-button{border-color:var(--nsi-modra);color:var(--nsi-temno-modra)}

/* ------------------------------------------------------------------
   3. GUMBI — vsi enaki
   ------------------------------------------------------------------ */
body.nsi .nsi-gumb,
body.nsi input[type=submit],body.nsi input[type=button],body.nsi input[type=reset]{
	-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	min-height:40px;margin:0;padding:0 18px;
	font-family:var(--font-sans);font-size:14px;font-weight:var(--fw-ultra);line-height:1.15;letter-spacing:0;text-align:center;
	color:var(--text-primary);background:var(--bg-surface);
	border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-md);
	box-shadow:none;text-decoration:none;cursor:pointer;transform:none;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
body.nsi .nsi-gumb:hover,
body.nsi input[type=submit]:hover,body.nsi input[type=button]:hover{
	text-decoration:none;border-color:var(--nsi-modra);color:var(--nsi-temno-modra);background:var(--bg-brand-soft);transform:none;box-shadow:none;
}
body.nsi .nsi-gumb:focus-visible,body.nsi input[type=submit]:focus-visible,body.nsi input[type=button]:focus-visible{
	outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-md);
}
body.nsi .nsi-gumb:active{transform:translateY(1px)}
body.nsi .nsi-gumb:disabled,body.nsi .nsi-gumb[disabled],body.nsi .nsi-gumb[aria-disabled=true]{
	opacity:.5;cursor:not-allowed;pointer-events:none;transform:none;
}

/* Primarni: modra */
body.nsi .nsi-gumb--primarni,body.nsi input[type=submit].nsi-gumb--primarni{
	color:#fff;background:var(--nsi-modra);border-color:var(--nsi-modra);box-shadow:0 1px 2px rgba(0,154,199,.25);
}
body.nsi .nsi-gumb--primarni:hover{color:#fff;background:var(--nsi-cyan-600);border-color:var(--nsi-cyan-600);box-shadow:0 3px 10px rgba(0,154,199,.30)}
/* Sekundarni: bel z okvirjem (osnova zgoraj) */
body.nsi .nsi-gumb--sekundarni{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}
/* Tih: brez okvirja, povezava */
body.nsi .nsi-gumb--tih{background:transparent;border-color:transparent;color:var(--text-link);padding:0 12px}
body.nsi .nsi-gumb--tih:hover{background:var(--bg-sunken);border-color:transparent;color:var(--nsi-temno-modra)}
/* Svetlomodri / kopiraj */
body.nsi :is(.nsi-gumb--svetlomodra,.nsi-gumb--kopiraj){background:var(--nsi-cyan-50);color:var(--nsi-temno-modra);border-color:var(--nsi-cyan-100)}
body.nsi :is(.nsi-gumb--svetlomodra,.nsi-gumb--kopiraj):hover{background:var(--nsi-cyan-100);border-color:var(--nsi-cyan-300);color:var(--nsi-temno-modra)}
body.nsi .nsi-gumb--kopiraj{margin-bottom:var(--space-3)}
/* Nevarno: rdeč poudarek */
body.nsi .nsi-gumb--nevarno{background:var(--danger-100);color:var(--danger-700);border-color:var(--danger-100)}
body.nsi .nsi-gumb--nevarno:hover{background:var(--danger-fill);border-color:var(--danger-fill);color:#fff}

/* Majhni gumbi v tabelah in gostih vrsticah */
body.nsi :is(.nsi-tabela,.nsi-oo-tabela,.nsi-oo-k-vrstica,.nsi-oo-sporocilo) .nsi-gumb{min-height:34px;padding:0 14px;font-size:13px}
body.nsi :is(.nsi-tabela,.nsi-oo-tabela,.nsi-oo-k-vrstica,.nsi-oo-sporocilo) .nsi-gumb--tih{padding:0 10px}
body.nsi .nsi-gumb--majhen{min-height:32px;padding:0 12px;font-size:13px}

/* Filtri in vrstice kontrol: polja in gumbi enako visoki */
body.nsi :is(.nsi-filtri-vrsta,.nsi-vrstica-kontrol,.nsi-mnozicno,.nsi-pogled--nov) .nsi-gumb{height:var(--k-vis-mala);min-height:var(--k-vis-mala);padding:0 16px;font-size:13px}

/* Prekopne tipke (toggle), ki niso .nsi-gumb: enaka tabletna oblika */
body.nsi :is(.nsi-oo-pogled-gumbi button,.nsi-kart-uredi-dizajn button){
	-webkit-appearance:none;appearance:none;box-sizing:border-box;
	min-height:32px;padding:0 14px;margin:0;
	font-family:var(--font-sans);font-size:13px;font-weight:var(--fw-ultra);line-height:1;
	color:var(--text-primary);background:var(--bg-surface);
	border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-pill);cursor:pointer;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
body.nsi :is(.nsi-oo-pogled-gumbi button,.nsi-kart-uredi-dizajn button):hover{border-color:var(--nsi-modra);color:var(--nsi-temno-modra)}
body.nsi :is(.nsi-oo-pogled-gumbi button.je-izbrana,.nsi-kart-uredi-dizajn button.je-izbran){background:var(--nsi-modra);border-color:var(--nsi-modra);color:#fff}

/* Majhni ikonski gumbi (▲ ▼ ✕ …) */
body.nsi :is(.nsi-kand-red button,.nsi-kand-kartica-akcije button,.nsi-kand-odstrani,.nsi-pogled-x){
	-webkit-appearance:none;appearance:none;box-sizing:border-box;
	min-width:32px;min-height:32px;padding:0 8px;margin:0;
	display:inline-flex;align-items:center;justify-content:center;
	font-family:var(--font-sans);font-size:13px;line-height:1;color:var(--text-primary);
	background:var(--bg-surface);border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
body.nsi :is(.nsi-kand-red button,.nsi-kand-kartica-akcije button,.nsi-kand-odstrani,.nsi-pogled-x):hover:not(:disabled){border-color:var(--nsi-modra);color:var(--nsi-temno-modra);background:var(--bg-brand-soft)}
body.nsi :is(.nsi-kand-red button,.nsi-kand-kartica-akcije button):disabled{opacity:.35;cursor:not-allowed}
body.nsi .nsi-kand-odstrani{color:var(--danger) !important}
body.nsi .nsi-kand-odstrani:hover{background:var(--danger-100);border-color:var(--danger-fill);color:var(--danger-700) !important}
body.nsi .nsi-pogled-x{min-width:26px;min-height:26px;border:0;background:transparent}

/* Varnostna mreža: <button> brez razreda nikoli ne sme biti videti kot privzeti gumb brskalnika */
body.nsi :where(button:not([class])){
	-webkit-appearance:none;appearance:none;box-sizing:border-box;
	min-height:40px;padding:0 18px;
	font-family:var(--font-sans);font-size:14px;font-weight:var(--fw-ultra);
	color:var(--text-primary);background:var(--bg-surface);
	border:var(--border-thin) solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;
}
body.nsi :where(button:not([class])):hover{border-color:var(--nsi-modra);color:var(--nsi-temno-modra);background:var(--bg-brand-soft)}
/* Izbira gumbov z lastnim videzom (kartice, razdelki): samo odpravi privzeti videz brskalnika */
body.nsi :is(.nsi-oo-sklop-glava,.nsi-graf-namen,.nsi-graf-predloga){-webkit-appearance:none;appearance:none;font-family:var(--font-sans);box-sizing:border-box}

/* ------------------------------------------------------------------
   4. Postavitev polj v obrazcih (admin): nobeno polje ne sme prelivati iz stolpca
   ------------------------------------------------------------------ */
body.nsi .nsi-polje{min-width:min(100%,200px);display:flex;flex-direction:column;gap:6px}
body.nsi .nsi-polje>label{font-size:14px;font-weight:var(--fw-ultra);line-height:1.3;margin:0}
body.nsi .nsi-polje>:is(input:not([type=checkbox],[type=radio]),select,textarea){width:100%}
body.nsi .nsi-polje>.nsi-pomoc{margin:0;line-height:1.45}

body.nsi .nsi-odsek>h3{margin:0 0 4px}
body.nsi .nsi-odsek-polja{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px 24px;align-items:start}
body.nsi .nsi-odsek-polja>:is(.nsi-polje--checkbox,.nsi-mreza-2,.nsi-poln,.nsi-obv-blok,.nsi-potrditveni-seznam),
body.nsi .nsi-odsek-polja>[style*="grid-column"]{grid-column:1/-1}

/* Potrditveno polje: oznaka z besedilom, pod njo pomoč (ne ob njej) */
body.nsi .nsi-polje--checkbox{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex-direction:column;min-width:0;align-self:start}
body.nsi .nsi-polje--checkbox>label{display:inline-flex;align-items:flex-start;gap:10px;font-weight:var(--fw-regular);font-size:14.5px;line-height:1.4;cursor:pointer}
body.nsi .nsi-polje--checkbox>label input[type=checkbox]{margin-top:1px}
body.nsi .nsi-polje--checkbox>.nsi-pomoc{margin-left:28px;max-width:78ch}

/* Mreža dveh stolpcev: oznake do dveh vrstic, vnosna polja poravnana na isti rob */
body.nsi .nsi-mreza-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;align-items:start}
body.nsi .nsi-mreza-2>.nsi-polje{min-width:0}
body.nsi .nsi-mreza-2>.nsi-polje>label{min-height:2.6em;display:flex;align-items:flex-end}
@media (max-width:760px){body.nsi .nsi-mreza-2{grid-template-columns:1fr}body.nsi .nsi-mreza-2>.nsi-polje>label{min-height:0}}

/* Mreža polj v javnem delu: enake razdalje, brez prelivanja */
body.nsi .nsi-mreza-polj{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px 20px;align-items:start}
body.nsi .nsi-mreza-polj>label{min-width:0}
body.nsi .nsi-mreza-polj label.nsi-checkbox{align-items:flex-start;gap:10px !important}

/* Tablični vnosi (tiskarji, raznos, številke …): polje zapolni celico */
body.nsi .nsi-tabela td>:is(input:not([type=checkbox],[type=radio]),select){width:100%;min-width:110px}
body.nsi .nsi-tabela td>:is(input[type=text],input[type=email],input[type=url],input[type=search]){min-width:170px}
body.nsi .nsi-tabela td>input[type=number]{min-width:84px}

/* Mobilni brskalniki: 16 px, da iOS ne povečuje strani ob fokusu */
@media (max-width:760px){
	body.nsi{--k-pisava:16px}
	body.nsi :is(.nsi-tabela,.nsi-oo-tabela,.nsi-filtri,.nsi-mnozicno) :is(input:not([type=checkbox],[type=radio]),select){font-size:16px}
}

/* Iskalna in dolga polja v filtrih: besedilo namiga se ne sme odrezati */
body.nsi .nsi-filtri input[type=search]{min-width:340px}
body.nsi input[type=url]{min-width:min(100%,480px)}
body.nsi .nsi-obrazec>.nsi-polje:has(input[type=url],input[type=email]){max-width:640px}
body.nsi .nsi-filtri select{min-width:190px}

/* Admin: vse kartice, ki so ena pod drugo, so enako široke (ne glede na vsebino) */
body.nsi-admin .nsi-kartica{max-width:min(1900px,calc(100vw - 320px));width:100%}
