/* ============================================================
   LINGVIOMA — skupni blagovni tokeni in osnovne komponente.
   Uvozi ga vsaka stran (spletna stran, aplikacija, portal).
   Barve iz CGP (LINGVIOMA_barve.pdf) — ne dodajaj svojih odtenkov.
   ============================================================ */

/* ─────────── Pisave (samogoščene) ───────────
   Pisavi sta lokalni, ne z Google CDN: obiskovalčev naslov IP ne odteka tretji
   osebi (GDPR) in prikaz ni odvisen od tujega strežnika. Datoteke so v
   assets/fonts/ — strežnik jim postavi `immutable, max-age=1 leto`, zato ima
   ime vgrajeno različico družine (v20 / v12); ob nadgradnji se ime spremeni.

   Obe datoteki sta VARIABILNI (ena datoteka pokrije celoten razpon debelin).
   Vsak @font-face zato pripne eno samo debelino — natanko tako, kot je delal
   Google. To NI naključje: v CSS-u je marsikje `font-weight:650`, kar se ob
   pripetih debelinah 600/700/800 zaokroži na 700. Če bi tu zapisali razpon
   (`font-weight:600 800`), bi 650 postal pravih 650 in ves app bi se opazno
   stanjšal. Debelin torej ne združuj v razpon brez oblikovalske odločitve.

   Delitev latin / latin-ext je Googlova in jo namenoma ohranjamo: sumniki
   (č š ž) so v latin-ext, evro (€) pa v latin. `unicode-range` poskrbi, da
   angleški obiskovalec latin-ext sploh ne prenese.
   Licenca obeh: SIL Open Font License 1.1 — glej assets/fonts/LICENSE.txt.  */

@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(assets/fonts/inter-v20-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(assets/fonts/inter-v20-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(assets/fonts/inter-v20-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(assets/fonts/inter-v20-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(assets/fonts/inter-v20-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(assets/fonts/inter-v20-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 800; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 800; font-display: swap;
  src: url(assets/fonts/plus-jakarta-sans-v12-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  /* CGP */
  --indigo:#262894;      --indigo-2:#3a3cb0;   --indigo-soft:#9899CB;
  --indigo-100:#E6E6F3;  --indigo-50:#F6F6FA;
  --orange:#FF9B36;      --orange-2:#FBBA78;   --orange-100:#FFE2C4;  --orange-50:#FEF9F2;
  --gray:#848688;

  /* izpeljano */
  --ink:#1b1c33;         --ink-soft:#5f6172;   --ink-mute:#8b8d9e;
  --bg:#ffffff;          --bg-soft:var(--indigo-50);
  --surface:#ffffff;     --line:#e7e7f0;       --line-2:#d6d7e6;
  --green:#2e9e6b;       --green-soft:#e3f4ec;
  --red:#cf4436;         --red-soft:#fbe6e3;
  --amber:#c9781a;       --amber-soft:var(--orange-100);

  --shadow-s:0 1px 2px rgba(38,40,148,.05), 0 2px 8px rgba(38,40,148,.05);
  --shadow-m:0 2px 6px rgba(38,40,148,.06), 0 12px 32px rgba(38,40,148,.08);
  --shadow-l:0 8px 40px rgba(38,40,148,.14);
  --r-s:10px; --r-m:14px; --r-l:20px; --r-xl:28px;
  --font-head:'Plus Jakarta Sans','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font-body);color:var(--ink);background:var(--bg);
  line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;overflow-x:hidden;
}
h1,h2,h3,h4,h5{font-family:var(--font-head);font-weight:700;letter-spacing:-.02em;line-height:1.15}
a{color:inherit;text-decoration:none}
button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}
img,svg,video{display:block;max-width:100%}
::selection{background:var(--orange-100);color:var(--indigo)}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}

/* ── gumbi ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;border-radius:999px;font-weight:650;font-size:15px;font-family:var(--font-head);
  background:var(--indigo);color:#fff;transition:background .18s,transform .1s,box-shadow .18s;
  box-shadow:0 4px 14px rgba(38,40,148,.22);white-space:nowrap;
}
.btn:hover{background:var(--indigo-2)}
.btn:active{transform:scale(.975)}
.btn svg{width:18px;height:18px;flex-shrink:0;stroke-width:2}
.btn-accent{background:var(--orange);color:#3d2405;box-shadow:0 4px 14px rgba(255,155,54,.32)}
.btn-accent:hover{background:#ffa94f}
.btn-ghost{background:transparent;color:var(--indigo);border:1.5px solid var(--line-2);box-shadow:none}
.btn-ghost:hover{background:var(--indigo-50);border-color:var(--indigo-soft)}
.btn-quiet{background:var(--indigo-50);color:var(--indigo);box-shadow:none}
.btn-quiet:hover{background:var(--indigo-100)}
.btn-danger{background:var(--red);box-shadow:0 4px 14px rgba(207,68,54,.24)}
.btn-danger:hover{background:#b93a2e}
.btn-sm{padding:8px 15px;font-size:13.5px}
.btn-sm svg{width:15px;height:15px}
.btn:disabled{opacity:.5;pointer-events:none}
.btn-block{width:100%}

/* ── polja (branded, nikoli native videz) ──────────────── */
.input,.textarea,.select{
  width:100%;padding:12px 15px;border:1.5px solid var(--line);border-radius:var(--r-s);
  background:var(--surface);font-family:var(--font-body);font-size:16px;color:var(--ink);
  outline:none;transition:border-color .16s,box-shadow .16s;
}
.input::placeholder,.textarea::placeholder{color:var(--ink-mute)}
.input:focus,.textarea:focus,.select:focus{border-color:var(--indigo-soft);box-shadow:0 0 0 3px var(--indigo-100)}
.input:disabled,.select:disabled{background:var(--indigo-50);color:var(--ink-mute);cursor:not-allowed}
.textarea{resize:vertical;min-height:96px;line-height:1.5}
.select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23262894' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:16px}
.field{margin-bottom:16px}
.field>label{display:block;font-size:13px;font-weight:650;margin-bottom:7px;color:var(--ink-soft);font-family:var(--font-head)}
.field .hint{font-size:12.5px;color:var(--ink-mute);margin-top:6px}
.field .err{font-size:12.5px;color:var(--red);margin-top:6px;display:none}
.field.invalid .input,.field.invalid .select,.field.invalid .textarea{border-color:var(--red)}
.field.invalid .err{display:block}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.row2{grid-template-columns:1fr}}

/* file picker (branded) */
.filepick{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--line-2);border-radius:var(--r-m);
  padding:16px;background:var(--indigo-50);cursor:pointer;transition:border-color .16s,background .16s}
.filepick:hover{border-color:var(--indigo-soft);background:var(--indigo-100)}
.filepick input[type=file]{display:none}

/* ── iOS toggle ────────────────────────────────────────── */
.toggle{position:relative;width:44px;height:24px;cursor:pointer;display:inline-block;flex-shrink:0}
.toggle input{display:none}
.toggle .slider{position:absolute;inset:0;background:#c8c9d6;border-radius:24px;transition:.28s}
.toggle .slider:before{content:'';position:absolute;left:2px;top:2px;width:20px;height:20px;background:#fff;
  border-radius:50%;transition:.28s;box-shadow:0 1px 3px rgba(0,0,0,.22)}
.toggle input:checked+.slider{background:#22c55e}
.toggle input:checked+.slider:before{transform:translateX(20px)}

/* ── značke / pillsi ───────────────────────────────────── */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:4px 10px;
  border-radius:999px;white-space:nowrap;font-family:var(--font-head);letter-spacing:.01em}
.pill-indigo{background:var(--indigo-100);color:var(--indigo)}
.pill-orange{background:var(--orange-100);color:#8a4d05}
.pill-green{background:var(--green-soft);color:var(--green)}
.pill-red{background:var(--red-soft);color:var(--red)}
.pill-gray{background:#eeeef4;color:var(--ink-soft)}

/* ── kartice ───────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow-s)}
.card-pad{padding:20px}

/* ── modal (skupno ogrodje; zapiranje ureja ui.js) ─────── */
.ov{position:fixed;inset:0;z-index:200;background:rgba(27,28,51,.5);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .2s}
.ov.show{opacity:1;pointer-events:auto}
.ov .sheet{background:#fff;width:100%;max-width:560px;max-height:88vh;border-radius:var(--r-l);
  display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-l);
  transform:translateY(14px) scale(.985);transition:transform .22s cubic-bezier(.4,0,.2,1)}
.ov.show .sheet{transform:none}
.ov .sheet-h{padding:20px 22px 14px;display:flex;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line)}
.ov .sheet-h h3{font-size:19px}
.ov .sheet-h .sub{font-size:13px;color:var(--ink-soft);margin-top:2px}
.ov .sheet-x{margin-left:auto;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;color:var(--ink-soft);flex-shrink:0;transition:background .15s}
.ov .sheet-x:hover{background:var(--indigo-50);color:var(--ink)}
.ov .sheet-b{padding:20px 22px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}
.ov .sheet-f{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;
  background:var(--indigo-50);flex-wrap:wrap}
@media(max-width:640px){
  .ov{padding:0;align-items:flex-end}
  .ov .sheet{max-width:none;max-height:92vh;border-radius:var(--r-l) var(--r-l) 0 0;transform:translateY(28px)}
  .ov .sheet-f>.btn{flex:1}
}
/* mali dialogi (appConfirm/appAlert/appPrompt) */
.ov.dlg .sheet{max-width:420px}
@media(max-width:640px){.ov.dlg{align-items:center;padding:20px}.ov.dlg .sheet{border-radius:var(--r-l)}}

/* ── razno ─────────────────────────────────────────────── */
.spin{width:20px;height:20px;border:2.5px solid var(--indigo-100);border-top-color:var(--indigo);
  border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.empty{text-align:center;padding:52px 20px;color:var(--ink-mute)}
.empty svg{width:44px;height:44px;margin:0 auto 12px;opacity:.35;stroke-width:1.5}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
.toast-wrap{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:400;display:flex;
  flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:var(--indigo);color:#fff;padding:11px 18px;border-radius:999px;font-size:14px;font-weight:600;
  box-shadow:var(--shadow-m);animation:toastIn .25s cubic-bezier(.4,0,.2,1)}
.toast.err{background:var(--red)}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
