/* Informator — product site. The app's own tokens (zinc neutrals, blue-600,
   Rethink Sans / Inter), the dashboard's phase colours (app/dashboard.css is a
   verbatim copy of the app's blocks/dashboard.css) and the logo's three cards
   as the one decorative shape. */

:root {
  --color-white: #fff;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-300: #d4d4d8;
  --color-neutral-400: #9f9fa9;
  --color-neutral-500: #71717b;
  --color-neutral-600: #52525c;
  --color-neutral-700: #3f3f46;
  --color-neutral-800: #27272a;
  --color-neutral-900: #18181b;
  --color-neutral-950: #09090b;
  --color-primary: #155dfc;
  --font-inter: "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Rethink Sans", var(--font-inter);
  --font-weight-display: 700;
  --app-font: var(--font-inter);

  --logo-back: #9bbeff;
  --logo-mid: #5a90ff;
  --logo-front: #155dfc;
  --ink: #02216d;
  /* dashboard domain + severity colours, outside .db too */
  --db-dm-lockers: oklch(50% .09 195); --db-dm-assets: oklch(48% .14 305); --db-dm-networks: oklch(52% .11 130);
  --db-dm-students: oklch(46% .14 335); --db-dm-reversals: oklch(46% .07 280); --db-crit: oklch(53% .21 27);

  --page: var(--color-neutral-100);
  --card: var(--color-white);
  --tx: var(--color-neutral-900);
  --tx2: var(--color-neutral-600);
  --tx3: var(--color-neutral-500);
  --line: var(--color-neutral-200);
  --head: var(--ink);

  --gut: clamp(20px, 4.5vw, 72px);
  --max: 1560px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

.dark {
  --page: var(--color-neutral-950);
  --card: var(--color-neutral-900);
  --tx: var(--color-neutral-50);
  --tx2: var(--color-neutral-300);
  --tx3: var(--color-neutral-400);
  --line: var(--color-neutral-800);
  --head: oklch(96% .015 262.88);
  --logo-back: oklch(43% .16 262.88);
  --logo-mid: oklch(58% .2 262.88);
  --logo-front: oklch(72% .15 262.88);
  --color-primary: oklch(62% .2 262.88);
  color-scheme: dark;
}
/* the dashboard reads --color-white for its cards */
.dark .db { --db-card: var(--color-neutral-800); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--page); color: var(--tx); font: 400 17px/1.6 var(--app-font); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
button { font: inherit; color: inherit; }
.ico { width: 1em; height: 1em; flex-shrink: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.disp { font-family: var(--font-display); font-weight: var(--font-weight-display); letter-spacing: -.03em; color: var(--head); }
.eyebrow { font-size: .75rem; line-height: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tx3); }

/* tailwind-like helpers the dashboard markup uses */
.block { display: block; } .flex { display: flex; } .items-start { align-items: flex-start; } .gap-1\.5 { gap: .375rem; }
.mt-0\.5 { margin-top: .125rem; } .mt-1 { margin-top: .25rem; } .mt-2 { margin-top: .5rem; } .mt-3 { margin-top: .75rem; }
.mt-4 { margin-top: 1rem; } .mt-5 { margin-top: 1.25rem; } .mt-6 { margin-top: 1.5rem; }
.text-xs { font-size: .75rem; line-height: 1rem; } .text-sm { font-size: .875rem; line-height: 1.25rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; } .text-right { text-align: right; } .text-center { text-align: center; }
.font-semibold { font-weight: 600; } .font-medium { font-weight: 500; } .font-mono { font-family: var(--app-font); font-variant-numeric: tabular-nums; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .min-w-0 { min-width: 0; } .flex-1 { flex: 1; } .shrink-0 { flex-shrink: 0; }
.size-3 { width: .75rem; height: .75rem; } .size-3\.5 { width: .875rem; height: .875rem; } .size-4 { width: 1rem; height: 1rem; } .size-5 { width: 1.25rem; height: 1.25rem; }

/* ---- buttons ------------------------------------------------------------ */
.btn { display: inline-flex; align-items: center; gap: .5rem; height: 48px; padding: 0 1.375rem; border-radius: 10px; border: 0; cursor: pointer;
  font-weight: 600; font-size: 1rem; text-decoration: none; white-space: nowrap; transition: transform .2s var(--ease), background-color .2s, box-shadow .2s; }
.btn-primary { background: var(--color-primary); color: #fff; box-shadow: 0 1px 0 rgb(255 255 255 / .25) inset, 0 8px 24px -10px color-mix(in oklch, var(--color-primary) 80%, transparent); }
.btn-primary:hover { background: color-mix(in oklch, var(--color-primary) 88%, black); transform: translateY(-1px); }
.btn-ghost { color: var(--tx); background: transparent; box-shadow: inset 0 0 0 1px var(--line); }
.btn-ghost:hover { background: var(--card); }
.btn .ico { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.btn:hover .ico.go { transform: translateX(3px); }
.btn:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }

/* ---- header --------------------------------------------------------------- */
.top { position: sticky; top: 0; z-index: 50; background: color-mix(in oklch, var(--page) 82%, transparent); backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid transparent; transition: border-color .3s; }
.top.is-scrolled { border-bottom-color: var(--line); }
.top .wrap { display: flex; align-items: center; gap: 2.5rem; height: 72px; }
.top .brand { display: block; height: 30px; flex-shrink: 0; }
.top .brand svg { height: 30px; width: auto; overflow: visible; }
.top nav { display: flex; gap: 2rem; font-size: .9375rem; font-weight: 500; color: var(--tx2); }
.top nav a { text-decoration: none; padding: .25rem 0; }
.top nav a:hover, .top nav a[aria-current] { color: var(--tx); }
.top .btn { margin-left: auto; height: 40px; font-size: .9375rem; padding: 0 1rem; }

/* logo motion — the app's own (application.css "Logo motion") */
.logo-mark, .logo-motion { overflow: visible; }
.logo-lean { transform-box: view-box; transform-origin: 8px 8px; transform: scale(.904884) skewX(-6deg); }
@keyframes logo-slide { from { transform: translateX(6px); opacity: .35; } to { transform: none; opacity: 1; } }
@keyframes logo-fade { from { opacity: .35; } to { opacity: 1; } }
@keyframes logo-lean { from { transform: none; } to { transform: scale(.904884) skewX(-6deg); } }
@media (prefers-reduced-motion: no-preference) {
  .logo-motion .logo-card { animation: logo-slide 500ms cubic-bezier(.2, .8, .2, 1) both; }
  .logo-motion .logo-card-0 { animation-name: logo-fade; }
  .logo-motion .logo-card-1 { animation-delay: 110ms; }
  .logo-motion .logo-card-2 { animation-delay: 220ms; }
  .logo-motion .logo-lean { animation: logo-lean 250ms ease-out 720ms both; }
}

/* ---- hero ----------------------------------------------------------------- */
.hero { position: relative; padding: clamp(40px, 6vw, 96px) 0 0; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(32px, 4vw, 80px); align-items: center; }
.hero h1 { font-size: clamp(3.25rem, 6.4vw, 7.25rem); line-height: .92; letter-spacing: -.045em; margin-top: 1.25rem; }
.hero h1 .l2 { display: block; color: var(--color-primary); }
.hero .lead { margin-top: 2rem; max-width: 34rem; font-size: clamp(1.125rem, 1.35vw, 1.3125rem); line-height: 1.55; color: var(--tx2); text-wrap: pretty; }
.hero .ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.today-line { display: inline-flex; align-items: center; gap: .625rem; }
/* hero: the date line and the school-type switch share one row; the switch wraps under the date on narrow screens */
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.seg.kind-seg { padding: 2px; border-radius: 8px; }
.seg.kind-seg button { padding: .1875rem .625rem; border-radius: 6px; font-size: .75rem; white-space: nowrap; }
.today-line .dot { width: 8px; height: 8px; border-radius: 99px; background: var(--ph, var(--color-primary)); box-shadow: 0 0 0 4px color-mix(in oklch, var(--ph, var(--color-primary)) 22%, transparent); }

/* the school-type switch: the whole page speaks OŠ or SŠ */
.kind { display: inline-flex; align-items: center; gap: .75rem; margin-top: 2.25rem; font-size: .875rem; color: var(--tx3); }
.seg { display: inline-flex; padding: 3px; border-radius: 10px; background: color-mix(in oklch, var(--tx) 6%, transparent); }
.seg button { border: 0; background: transparent; padding: .375rem .875rem; border-radius: 7px; font-size: .875rem; font-weight: 500; color: var(--tx2); cursor: pointer; transition: background-color .2s, color .2s; }
.seg button[aria-pressed="true"] { background: var(--card); color: var(--tx); box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 0 0 1px var(--line); }
.t { transition: opacity .2s; }
.t.is-swap { opacity: 0; }

/* the emblem, large: three cards; the front one is a window onto real lockers */
.mark { position: relative; aspect-ratio: 1; width: 100%; max-width: 620px; justify-self: end; }
.mark > svg { width: 100%; height: 100%; overflow: visible; }
.mark .logo-lean { transition: transform .9s var(--ease-out); }
.mark image { transform-origin: 12px 8px; }
@media (prefers-reduced-motion: no-preference) {
  .mark .logo-card { animation: mark-slide 900ms cubic-bezier(.2, .8, .2, 1) both; }
  .mark .logo-card-0 { animation-delay: 100ms; }
  .mark .logo-card-1 { animation-delay: 220ms; }
  .mark .logo-card-2 { animation-delay: 340ms; }
  .mark .logo-lean { animation: logo-lean 600ms var(--ease-out) 1150ms both; }
  .mark image { animation: photo-drift 18s ease-in-out 1.6s infinite alternate; }
}
@keyframes mark-slide { from { transform: translateX(9px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes photo-drift { from { transform: scale(1.04) translateX(0); } to { transform: scale(1.12) translateX(-.5px); } }
.mark-tag { position: absolute; left: 4%; bottom: 13%; display: flex; flex-direction: column; gap: .5rem; z-index: 2; }
.chip { display: inline-flex; align-items: center; gap: .625rem; padding: .625rem 1rem .625rem .75rem; border-radius: 12px; background: var(--card); color: var(--tx);
  font-size: .875rem; font-weight: 500; box-shadow: 0 1px 2px rgb(0 0 0 / .06), 0 12px 32px -12px rgb(2 33 109 / .35); white-space: nowrap; }
.chip .sw { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; color: #fff; }
.chip small { display: block; font-size: .75rem; color: var(--tx3); font-weight: 400; }
@media (prefers-reduced-motion: no-preference) {
  .mark-tag .chip { animation: chip-in .7s var(--ease-out) both; }
  .mark-tag .chip:nth-child(1) { animation-delay: 1.5s; }
  .mark-tag .chip:nth-child(2) { animation-delay: 1.7s; }
}
@keyframes chip-in { from { opacity: 0; transform: translateY(12px) scale(.96); } }

/* ---- sections ------------------------------------------------------------ */
.sec { padding: clamp(80px, 10vw, 160px) 0 0; }
.sec-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.sec-head h2 { font-size: clamp(2.5rem, 5vw, 5rem); line-height: .98; letter-spacing: -.04em; }
.sec-head p { font-size: 1.125rem; line-height: 1.6; color: var(--tx2); max-width: 36rem; }
.sec-head .eyebrow { grid-column: 1 / -1; margin-bottom: -1rem; }

/* ---- the year: the real dashboard, at full width ----------------------- */
.year-card { background: var(--card); border-radius: 20px; padding: clamp(20px, 2.6vw, 40px); box-shadow: 0 0 0 1px var(--line), 0 30px 80px -40px rgb(2 33 109 / .25); }
.year-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; }
.year-top .brief { font-size: clamp(1.125rem, 1.6vw, 1.5rem); line-height: 1.45; max-width: 52rem; color: var(--tx); }
.year-top .brief b { font-weight: 600; }
.db .db-rb { margin-top: 1.25rem; }
.db .db-seg { cursor: pointer; }
.db .db-fp { min-height: 24rem; transition: background-color .45s ease; }
.db .db-fp > * { animation: fp-in .5s var(--ease-out) both; }
.db .db-fp > *:nth-child(2) { animation-delay: .06s; }
.db .db-fp > *:nth-child(3) { animation-delay: .12s; }
.db .db-fp > *:nth-child(4) { animation-delay: .18s; }
@keyframes fp-in { from { opacity: 0; transform: translateY(8px); } }
.db .db-fp .db-illo { grid-row: span 2; }
.db .db-ar { text-decoration: none; }
.db .db-big { font-variant-numeric: tabular-nums; }

/* what you do in the phase: three points under the card, in the phase's ink */
.phase-do { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: clamp(28px, 3vw, 44px); }
.phase-do .pt-ico { display: block; width: 22px; height: 22px; margin-bottom: .75rem; color: var(--pm, var(--color-primary)); transition: color .45s; }
.phase-do h3 { font-family: var(--font-display); font-size: 1.375rem; line-height: 1.75rem; letter-spacing: -.015em; color: var(--head); }
.phase-do p { margin-top: .5rem; color: var(--tx2); font-size: 1rem; line-height: 1.6; }
.phase-do article { animation: fp-in .5s var(--ease-out) both; }
.phase-do article:nth-child(2) { animation-delay: .08s; }
.phase-do article:nth-child(3) { animation-delay: .16s; }
.autoplay { display: inline-flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--tx3); border: 0; background: none; padding: 0; cursor: pointer; }
.autoplay .bar { position: relative; width: 56px; height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; }
.autoplay .bar i { position: absolute; inset: 0; background: var(--tx2); transform-origin: left; transform: scaleX(0); }
.autoplay.is-running .bar i { animation: ap 7s linear forwards; }
@keyframes ap { to { transform: scaleX(1); } }

/* ---- the transition: a full-bleed ink band ------------------------------ */
.band { position: relative; margin-top: clamp(80px, 10vw, 160px); background: var(--ink); color: #dbe6ff; overflow: hidden; }
.dark .band { background: oklch(20% .06 262.88); }
.band .wrap { position: relative; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 96px); padding-top: clamp(72px, 9vw, 140px); padding-bottom: clamp(72px, 9vw, 140px); align-items: center; }
.band h2 { color: #fff; font-size: clamp(2.5rem, 5vw, 4.75rem); line-height: .98; letter-spacing: -.04em; }
.band .lead { margin-top: 1.5rem; font-size: 1.125rem; line-height: 1.6; color: #b9cbf5; max-width: 32rem; }
.band-list { list-style: none; margin: 2.25rem 0 0; padding: 0; display: grid; gap: 1.125rem; }
.band-list li { display: grid; grid-template-columns: 28px 1fr; gap: .875rem; font-size: 1rem; line-height: 1.5; color: #dbe6ff; }
.band-list li b { color: #fff; font-weight: 600; display: block; }
.band-list li .ico { width: 22px; height: 22px; margin-top: 2px; color: var(--logo-back); }
.band-cards { position: absolute; right: -6%; top: -12%; width: 46%; height: 124%; pointer-events: none; opacity: .5; }
.band-cards i { position: absolute; top: 0; bottom: 0; border-radius: 48px; transform: skewX(-6deg); }
.band-cards i:nth-child(1) { left: 0; width: 22%; top: 16%; bottom: 16%; background: rgb(155 190 255 / .05); }
.band-cards i:nth-child(2) { left: 26%; width: 22%; top: 7%; bottom: 7%; background: rgb(155 190 255 / .07); }
.band-cards i:nth-child(3) { left: 52%; width: 48%; background: rgb(155 190 255 / .09); }

/* the wizard, drawn after the real one (year_transitions) */
.wiz { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.5rem; padding: 1.75rem; border-radius: 18px; background: var(--color-white); color: var(--color-neutral-900);
  box-shadow: 0 40px 90px -30px rgb(0 0 0 / .55); font-size: .875rem; line-height: 1.25rem; }
.dark .wiz { background: var(--color-neutral-900); color: var(--color-neutral-50); }
.wiz-title { grid-column: 1 / -1; display: flex; align-items: baseline; gap: .5rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; letter-spacing: -.01em; }
.wiz-title span { font-size: .875rem; color: oklch(55% .11 95); }
.wiz-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .125rem; }
.wiz-steps li { display: grid; grid-template-columns: 28px 1fr; gap: .75rem; align-items: start; padding: .5rem .5rem; border-radius: 10px; transition: background-color .3s; }
.wiz-steps li .n { width: 24px; height: 24px; border-radius: 99px; display: grid; place-items: center; font-size: .75rem; font-weight: 600; color: var(--color-neutral-500);
  box-shadow: inset 0 0 0 1.5px var(--color-neutral-300); transition: background-color .3s, color .3s, box-shadow .3s; }
.wiz-steps li .n svg { width: 13px; height: 13px; }
.wiz-steps li b { display: block; font-weight: 600; }
.wiz-steps li small { display: block; font-size: .75rem; color: var(--color-neutral-500); }
.wiz-steps li.is-on { background: color-mix(in oklch, var(--color-primary) 8%, transparent); }
.wiz-steps li.is-on .n { background: var(--color-primary); color: #fff; box-shadow: none; }
.wiz-steps li.is-done .n { background: var(--color-neutral-900); color: #fff; box-shadow: none; }
.dark .wiz-steps li.is-done .n { background: var(--color-neutral-100); color: var(--color-neutral-900); }
.wiz-steps .grp { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--color-neutral-500); padding: .875rem .5rem .25rem; border-top: 1px solid var(--color-neutral-200); margin-top: .375rem; }
.dark .wiz-steps .grp { border-color: var(--color-neutral-800); }
.wiz-main { display: flex; flex-direction: column; gap: 1rem; }
.wiz-panel { border-radius: 14px; padding: 1.25rem 1.375rem; box-shadow: inset 0 0 0 1px var(--color-neutral-200); }
.dark .wiz-panel { box-shadow: inset 0 0 0 1px var(--color-neutral-800); }
.wiz-years { display: flex; align-items: center; gap: .75rem; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.5rem, 2.2vw, 2.125rem); letter-spacing: -.03em; }
.wiz-years .from { color: var(--color-neutral-400); }
.wiz-years .ico { width: 24px; height: 24px; color: oklch(58% .11 95); }
.wiz-note { display: flex; align-items: center; gap: .375rem; margin-top: .5rem; font-size: .8125rem; color: oklch(50% .13 150); }
.wiz-bar { display: flex; gap: 3px; height: 8px; margin-top: 1rem; }
.wiz-bar i { border-radius: 99px; background: var(--color-primary); }
.wiz-bar i:last-child { background: color-mix(in oklch, var(--color-primary) 55%, white); }
.wiz-legend { display: flex; gap: 1rem; margin-top: .5rem; font-size: .75rem; color: var(--color-neutral-500); }
.wiz-run { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; }
.wiz-input { flex: 1; height: 40px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--color-neutral-300); display: flex; align-items: center; padding: 0 .75rem;
  font-family: var(--app-font); font-variant-numeric: tabular-nums; letter-spacing: .06em; font-size: .9375rem; }
.wiz-input .caret { width: 1.5px; height: 18px; background: var(--color-primary); margin-left: 2px; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.wiz-btn { height: 40px; padding: 0 1rem; border-radius: 8px; border: 0; background: var(--color-neutral-200); color: var(--color-neutral-500); font-weight: 600; font-size: .875rem; display: inline-flex; align-items: center; gap: .375rem; transition: background-color .3s, color .3s, box-shadow .3s; }
.wiz-btn.is-ready { background: var(--color-primary); color: #fff; box-shadow: 0 0 0 4px color-mix(in oklch, var(--color-primary) 22%, transparent); }
.wiz-done { display: none; align-items: center; justify-content: space-between; gap: 1rem; }
.wiz.is-run .wiz-done { display: flex; }
.wiz.is-run .wiz-run { display: none; }
.wiz-done .ok { display: flex; align-items: center; gap: .5rem; font-weight: 600; color: oklch(50% .13 150); }
.wiz-done .undo { display: inline-flex; align-items: center; gap: .375rem; height: 34px; padding: 0 .75rem; border-radius: 8px; font-size: .8125rem; font-weight: 600; box-shadow: inset 0 0 0 1px var(--color-neutral-300); }
.wiz-stages ol { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; }
.wiz-stages li { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--color-neutral-500); transition: color .3s; }
.wiz-stages li i { flex: none; position: relative; width: 16px; height: 16px; border-radius: 99px; box-shadow: inset 0 0 0 1.5px var(--color-neutral-300); transition: background-color .3s, box-shadow .3s; }
.wiz-stages li.is-on { color: var(--color-neutral-900); }
.wiz-stages li.is-on i { box-shadow: inset 0 0 0 2px color-mix(in oklch, var(--color-primary) 30%, transparent); }
.wiz-stages li.is-on i::after { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid transparent; border-top-color: var(--color-primary); animation: wiz-spin .7s linear infinite; }
.wiz-stages li.is-done { color: var(--color-neutral-900); }
.wiz-stages li.is-done i { background: oklch(59.6% .145 163.2); box-shadow: none; }
.wiz-stages li.is-done i::after { content: ""; position: absolute; left: 5px; top: 3px; width: 4px; height: 7px; border: solid #fff; border-width: 0 1.75px 1.75px 0; transform: rotate(45deg); }
@keyframes wiz-spin { to { transform: rotate(1turn); } }
@media (max-width: 600px) { .wiz-stages ol { column-gap: .75rem; } .wiz-stages li { white-space: nowrap; font-size: .75rem; } }
.dark .wiz-how p { color: var(--color-neutral-400); }

/* ---- equipment: four leaning cards, the emblem's lean ------------------- */
.deck { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); padding: 12px 0 8px; }
.dk { --c: var(--db-dm-assets); position: relative; display: flex; flex-direction: column; min-height: 25rem; padding: 1.5rem 1.5rem 1.375rem; border-radius: 22px; background: var(--card);
  box-shadow: 0 0 0 1px var(--line), 0 24px 48px -32px rgb(2 33 109 / .35); transform: skewX(-3deg); transition: transform .5s var(--ease-out), box-shadow .5s; }
.dk > * { transform: skewX(3deg); }
.dk:hover { transform: skewX(-3deg) translateY(-6px); box-shadow: 0 0 0 1px var(--line), 0 34px 60px -30px rgb(2 33 109 / .45); }
.dk::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 4px; border-radius: 0 0 3px 3px; background: var(--c); }
.dk .no { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: .8125rem; color: var(--tx3); }
.dk h3 { margin-top: .75rem; font-family: var(--font-display); font-size: 1.75rem; line-height: 2rem; letter-spacing: -.02em; color: var(--head); }
.dk p { margin-top: .625rem; color: var(--tx2); font-size: .9375rem; line-height: 1.55; }
.dk .stages { margin-top: auto; padding-top: 1.5rem; display: flex; gap: 4px; }
.dk .stages span { flex: 1; min-width: 0; font-size: .6875rem; line-height: 1rem; color: var(--tx3); padding-top: .5rem; border-top: 3px solid color-mix(in oklch, var(--c) 22%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk .stages span.is-done { border-color: var(--c); color: var(--tx); }
.dk .stages span.is-now { border-color: var(--c); color: var(--tx); font-weight: 600; }
.dk .fig { margin-top: 1.25rem; display: flex; align-items: center; gap: .75rem; }
.dk .fig .ico { width: 20px; height: 20px; color: var(--c); }
.dk .fig span { font-size: .875rem; color: var(--tx); font-weight: 500; }
@media (prefers-reduced-motion: no-preference) {
  .js .deck .dk { opacity: 0; transform: translateX(40px); }
  .js .deck.in .dk { animation: deck-in .8s cubic-bezier(.2, .8, .2, 1) both, deck-lean .45s var(--ease-out) both; }
  .js .deck.in .dk:nth-child(1) { animation-delay: 0s, .75s; }
  .js .deck.in .dk:nth-child(2) { animation-delay: .1s, .85s; }
  .js .deck.in .dk:nth-child(3) { animation-delay: .2s, .95s; }
  .js .deck.in .dk:nth-child(4) { animation-delay: .3s, 1.05s; }
}
@keyframes deck-in { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes deck-lean { from { transform: none; } to { transform: skewX(-3deg); } }
@keyframes deck-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---- dashboard: attention + feed --------------------------------------- */
.dash-sec .db-low { margin-top: 0; padding: clamp(20px, 2.6vw, 40px); background: var(--card); border-radius: 20px; box-shadow: 0 0 0 1px var(--line); }
.dash-sec .db { --db-card: var(--card); }

/* ---- small things grid --------------------------------------------------- */
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); }
.tile { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 22rem; padding: 1.75rem; border-radius: 20px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
.tile h3 { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.875rem; letter-spacing: -.02em; color: var(--head); }
.tile p { margin-top: .5rem; color: var(--tx2); font-size: .9375rem; line-height: 1.55; max-width: 28rem; }
.tile .art { margin-top: auto; padding-top: 1.5rem; }
.tile.wide { grid-column: span 2; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 2.5rem; grid-template-rows: auto 1fr; align-items: start; }
.tile.wide .art { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; padding-top: .25rem; align-self: center; }

/* QR label sheet: Avery 3651, 4 × 10 on A4 */
.sheet { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 10px; border-radius: 8px; background: var(--color-neutral-50); box-shadow: inset 0 0 0 1px var(--line); }
.dark .sheet { background: var(--color-neutral-800); }
.lbl { aspect-ratio: 52.5 / 29.7; border-radius: 4px; display: grid; grid-template-columns: auto 1fr; gap: 4px; align-items: center; padding: 3px 4px; min-width: 0; overflow: hidden; background: var(--color-white); box-shadow: 0 0 0 1px var(--color-neutral-200);
  font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 7.5px; line-height: 1.1; color: var(--color-neutral-900); opacity: .25; transition: opacity .25s, transform .25s; }
.lbl.on { opacity: 1; }
.lbl i { width: 15px; height: 15px; background:
  conic-gradient(from 90deg at 30% 30%, #18181b 25%, transparent 0) 0 0 / 4px 4px,
  linear-gradient(#18181b, #18181b) 0 0 / 5px 5px no-repeat, linear-gradient(#18181b, #18181b) 100% 0 / 5px 5px no-repeat, linear-gradient(#18181b, #18181b) 0 100% / 5px 5px no-repeat; }
.lbl b { font-weight: 500; letter-spacing: .04em; }
.lbl small { display: block; font-family: var(--app-font); font-size: 6.5px; color: var(--color-neutral-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lbl b { display: block; white-space: nowrap; }

/* import: rows checked one by one */
.imp { border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); font-size: .8125rem; }
.imp-row { white-space: nowrap; display: grid; grid-template-columns: 2.25rem 1.2fr 1fr .6fr 1.6rem; gap: .5rem; align-items: center; padding: .5rem .75rem; border-top: 1px solid var(--line); }
.imp-row:first-child { border-top: 0; font-size: .6875rem; color: var(--tx3); text-transform: uppercase; letter-spacing: .06em; }
.imp-row .n { color: var(--tx3); font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: .75rem; }
.imp-row .st { width: 18px; height: 18px; border-radius: 99px; display: grid; place-items: center; color: #fff; transform: scale(0); transition: transform .3s var(--ease-out); }
.imp-row .st svg { width: 11px; height: 11px; }
.imp-row.ok .st { background: oklch(59.6% .145 163.2); transform: none; }
.imp-row.err { background: color-mix(in oklch, oklch(53% .21 27) 7%, transparent); }
.imp-row.err .st { background: oklch(53% .21 27); transform: none; }
.imp-msg { padding: .5rem .75rem; font-size: .75rem; color: oklch(48% .19 27); border-top: 1px solid var(--line); opacity: 0; transition: opacity .3s; }
.imp.has-err .imp-msg { opacity: 1; }

/* phone: stocktake count */
.phone { position: relative; width: 168px; height: 300px; margin: 0 auto; border-radius: 28px; background: var(--color-neutral-900); padding: 8px; box-shadow: 0 24px 48px -24px rgb(0 0 0 / .45); }
.phone-scr { height: 100%; border-radius: 21px; background: #fff; overflow: hidden; display: flex; flex-direction: column; color: var(--color-neutral-900); font-size: 11px; }
.dark .phone { background: #000; box-shadow: 0 0 0 1px var(--color-neutral-700); }
.phone-cam { position: relative; height: 54%; background: url(../images/omarice.webp?v=69700ed9) center / cover; }
.phone-cam::after { content: ""; position: absolute; inset: 24% 20%; border-radius: 10px; border: 2px solid #fff; box-shadow: 0 0 0 999px rgb(0 0 0 / .35); }
.phone-cam .beep { position: absolute; inset: 24% 20%; border-radius: 10px; background: oklch(76.5% .177 163.2 / .55); opacity: 0; z-index: 1; }
.phone-cam .beep.on { animation: beep .5s ease-out; }
@keyframes beep { 0% { opacity: .9; } 100% { opacity: 0; } }
.phone-info { padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.phone-info .rm { font-weight: 600; font-size: 12px; }
.phone-info .cnt { font-family: var(--font-display); font-size: 26px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.phone-info .cnt small { font-size: 13px; color: var(--color-neutral-500); font-weight: 500; }
.phone-info .pb { height: 5px; border-radius: 9px; background: var(--color-neutral-200); overflow: hidden; }
.phone-info .pb i { display: block; height: 100%; background: var(--color-primary); width: 0; transition: width .4s var(--ease-out); }
.phone-info .last { color: var(--color-neutral-500); font-size: 10px; }

/* field history */
.hist { display: flex; flex-direction: column; gap: 0; font-size: .8125rem; }
.hist div { display: grid; grid-template-columns: 10px 1fr auto; gap: .75rem; align-items: start; padding: .5rem 0; }
.hist div::before { content: ""; width: 9px; height: 9px; margin-top: 5px; border-radius: 99px; box-shadow: inset 0 0 0 2px var(--color-primary); }
.hist div:first-child::before { background: var(--color-primary); }
.hist b { font-weight: 600; }
.hist s { color: var(--tx3); }
.hist time { color: var(--tx3); font-size: .75rem; }

/* roles grid */
.perm { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); font-size: .75rem; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.perm > * { padding: .4375rem .625rem; border-top: 1px solid var(--line); display: flex; align-items: center; }
.perm > :nth-child(-n + 5) { border-top: 0; color: var(--tx3); font-weight: 600; }
.perm .y { justify-content: center; color: var(--color-primary); }
.perm .y svg { width: 14px; height: 14px; }
.perm .no { justify-content: center; color: var(--line); }

/* ---- security teaser ----------------------------------------------------- */
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem 2.5rem; margin-top: clamp(40px, 5vw, 72px); }
.facts div { padding-top: 1rem; border-top: 1px solid var(--line); }
.facts b { display: block; font-weight: 600; color: var(--tx); }
.facts span { display: block; margin-top: .25rem; color: var(--tx2); font-size: .9375rem; line-height: 1.5; }

/* ---- start --------------------------------------------------------------- */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); counter-reset: s; }
.steps li { list-style: none; position: relative; padding: 1.75rem; border-radius: 20px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
.steps { padding: 0; margin: 0; }
.steps .num { font-family: var(--font-display); font-weight: 700; font-size: 4.5rem; line-height: 1; letter-spacing: -.04em; color: color-mix(in oklch, var(--color-primary) 22%, var(--card)); }
.steps h3 { margin-top: 1rem; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -.02em; color: var(--head); }
.steps p { margin-top: .5rem; color: var(--tx2); font-size: .9375rem; }

/* ---- closing call to action: a compact brand-blue strip (no section on the site is blue), text left, actions right ---- */
.close { position: relative; overflow: hidden; margin-top: clamp(72px, 9vw, 136px); padding: clamp(28px, 3.5vw, 44px) clamp(28px, 4vw, 56px); border-radius: 24px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .625rem 3rem;
  background: radial-gradient(70% 140% at 90% 0%, oklch(70% .17 262 / .55), transparent 65%), linear-gradient(165deg, var(--color-primary), color-mix(in oklch, var(--color-primary) 45%, var(--ink))); }
.close h2.disp { grid-column: 1; position: relative; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1; letter-spacing: -.02em; color: #fff; }
.close p { grid-column: 1; position: relative; max-width: 36rem; color: rgb(255 255 255 / .8); }
.close .ctas { grid-column: 2; grid-row: 1 / span 2; position: relative; display: flex; }
.close .btn { height: 60px; padding: 0 2rem; border-radius: 12px; font-size: 1.0625rem; }
.close .btn .ico { width: 20px; height: 20px; }
.close .btn-primary { background: #fff; color: var(--color-primary); box-shadow: 0 14px 30px -14px rgb(0 10 40 / .55); }
.close .wm { position: absolute; right: -40px; top: -60px; height: 280px; width: auto; aspect-ratio: 1; pointer-events: none; }
.close .wm path { fill: #fff; }
.close .wm path:nth-of-type(1) { fill-opacity: .05; }
.close .wm path:nth-of-type(2) { fill-opacity: .075; }
.close .wm path:nth-of-type(3) { fill-opacity: .1; }
@media (max-width: 860px) {
  .close { grid-template-columns: minmax(0, 1fr); }
  .close .ctas { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 1rem; }
}

footer { padding: clamp(56px, 6vw, 88px) 0 48px; }
footer .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; font-size: .875rem; color: var(--tx3); }
footer .brand svg { height: 24px; width: auto; }
footer nav { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-left: auto; }
footer a { text-decoration: none; } footer a:hover { color: var(--tx); }

/* ---- reveal ---------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .js .rv { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
  .js .rv.in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ---- sub page ---------------------------------------------------------------- */
.page-hero { padding: clamp(48px, 7vw, 112px) 0 0; }
.page-hero h1 { font-size: clamp(3rem, 6.5vw, 6.5rem); line-height: .94; letter-spacing: -.045em; max-width: 14ch; margin-top: 1rem; }
.page-hero .lead { margin-top: 1.75rem; font-size: clamp(1.125rem, 1.35vw, 1.3125rem); color: var(--tx2); max-width: 40rem; }
.rows { display: grid; gap: 0; margin-top: clamp(48px, 6vw, 88px); }
.row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1.5rem 4rem; padding: clamp(28px, 3vw, 44px) 0; border-top: 1px solid var(--line); }
.row h2 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.05; letter-spacing: -.03em; }
.row .body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2.5rem; }
.row .body div b { display: block; font-weight: 600; }
.row .body div span { display: block; margin-top: .25rem; color: var(--tx2); font-size: .9375rem; line-height: 1.55; }
.note { margin-top: 1rem; padding: 1rem 1.25rem; border-radius: 12px; background: color-mix(in oklch, var(--color-primary) 7%, var(--card)); color: var(--tx2); font-size: .9375rem; grid-column: 1 / -1; }

/* ---- small screens ------------------------------------------------------- */
@media (max-width: 1100px) {
  .tile.wide { grid-template-columns: minmax(0, 1fr); } .tile.wide .art { grid-column: auto; grid-row: auto; margin-top: auto; padding-top: 1.5rem; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .mark { max-width: 460px; justify-self: start; margin-top: 8px; }
  .band .wrap, .sec-head { grid-template-columns: minmax(0, 1fr); }
  .deck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile.wide { grid-column: span 2; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 2.5rem; grid-template-rows: auto 1fr; align-items: start; }
.tile.wide .art { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; padding-top: .25rem; align-self: center; }
  .wiz { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .top nav { display: none; }
  .hero h1 { font-size: clamp(2.75rem, 13vw, 4rem); }
  .phase-do, .deck, .grid3, .steps, .facts { grid-template-columns: minmax(0, 1fr); }
  .tile.wide { grid-column: auto; }
  .dk { min-height: 0; transform: none; } .dk > * { transform: none; }
  /* no lean here: the cards only fade in where they stand */
  .js .deck .dk { transform: none; }
  .js .deck.in .dk { animation-name: deck-fade; }
  .year-card { padding: 16px; border-radius: 16px; }
  .row, .row .body { grid-template-columns: minmax(0, 1fr); }
  .wiz { padding: 1rem; }
  .wiz-steps li small { display: none; }
  .band-cards { display: none; }
  footer nav { margin-left: 0; }
}

/* wide tiles stack below the desktop grid; the ribbon keeps its width and scrolls on a phone */
@media (max-width: 1100px) {
  .grid3 .tile.wide { display: flex; flex-direction: column; }
  .grid3 .tile.wide .art { margin-top: auto; padding-top: 1.5rem; }
}
@media (max-width: 760px) {
  .grid3 .tile.wide { grid-column: auto; }
  .year-card .db-rb { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .year-card .db-rb-ax, .year-card .db-rb-tr { min-width: 720px; }
}

/* ===================================================================
   Round 2: the page lives through the school year
   =================================================================== */
:root {
  --ph-start: oklch(55% .13 150); --ph-start-t: oklch(95.5% .04 150); --ph-start-i: oklch(32% .07 150);
  --ph-mid: oklch(54% .07 230); --ph-mid-t: oklch(95.5% .02 230); --ph-mid-i: oklch(32% .04 230);
  --ph-end: oklch(55% .14 355); --ph-end-t: oklch(95.5% .03 355); --ph-end-i: oklch(33% .08 355);
  --ph-summer: oklch(58% .11 95); --ph-summer-t: oklch(96.5% .05 95); --ph-summer-i: oklch(34% .06 95);
}
.dark {
  --ph-start: oklch(78% .14 150); --ph-start-t: oklch(29% .045 150); --ph-start-i: oklch(93% .05 150);
  --ph-mid: oklch(78% .07 230); --ph-mid-t: oklch(29% .03 230); --ph-mid-i: oklch(93% .03 230);
  --ph-end: oklch(78% .12 355); --ph-end-t: oklch(29% .045 355); --ph-end-i: oklch(93% .04 355);
  --ph-summer: oklch(84% .12 95); --ph-summer-t: oklch(30% .04 95); --ph-summer-i: oklch(94% .05 95);
}
.c-start { --m: var(--ph-start); --tn: var(--ph-start-t); --in: var(--ph-start-i); }
.c-mid { --m: var(--ph-mid); --tn: var(--ph-mid-t); --in: var(--ph-mid-i); }
.c-end { --m: var(--ph-end); --tn: var(--ph-end-t); --in: var(--ph-end-i); }
.c-summer { --m: var(--ph-summer); --tn: var(--ph-summer-t); --in: var(--ph-summer-i); }

/* the run of chapters carries a pinned, slim ribbon */
.year-run { position: relative; margin-top: clamp(80px, 10vw, 160px); }
.spine { position: sticky; top: 72px; z-index: 40; }
.spine .wrap { position: relative; z-index: 1; display: flex; align-items: center; gap: .5rem; padding-top: 10px; padding-bottom: 10px; }
.spine-lab { font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tx3); white-space: nowrap; }
.spine-lab { padding: .5rem .875rem; border-radius: 999px; background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 8px 18px -12px rgb(2 33 109 / .4); }
.spine-tr { position: relative; flex: 1; display: flex; gap: 4px; height: 36px; padding: 5px; border-radius: 12px; background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 8px 18px -12px rgb(2 33 109 / .4); }
.spine-tr a { position: relative; display: flex; align-items: center; padding: 0 .625rem; border-radius: 6px; font-size: .75rem; font-weight: 600; text-decoration: none; color: var(--tx3);
  background: color-mix(in oklch, var(--tn) 70%, var(--card)); overflow: hidden; white-space: nowrap; transition: background-color .4s, color .4s; }
.spine-tr a::before { content: ""; position: absolute; left: 6px; right: 6px; top: 0; height: 3px; border-radius: 0 0 3px 3px; background: var(--m); opacity: .4; transition: opacity .4s; }
.spine-tr a.is-on { background: var(--tn); color: var(--in); }
.spine-tr a.is-on::before { opacity: 1; }
.spine-pole { position: absolute; top: -6px; bottom: -4px; width: 2px; margin-left: -1px; background: var(--tx); border-radius: 2px; pointer-events: none; transition: left .12s linear; z-index: 2; }
.spine-pole span { position: absolute; top: 0; left: 0; white-space: nowrap; font-size: .6875rem; line-height: 1rem; font-weight: 600; color: var(--card);
  background: var(--tx); padding: 2px 8px 2px 6px; border-radius: 0 999px 999px 0; }
.spine-pole.is-right span { left: auto; right: 0; padding: 2px 6px 2px 8px; border-radius: 999px 0 0 999px; }

/* one chapter per phase: a full-bleed tint the page moves through */
.chap { position: relative; padding: clamp(72px, 8vw, 128px) 0; background: linear-gradient(to bottom, color-mix(in oklch, var(--tn) 70%, var(--page)), var(--page) 92%); }
.chap-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 4rem; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.chap-tag { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: .75rem; font-size: .8125rem; font-weight: 600; color: var(--in); }
.chap-tag .pill { display: inline-flex; align-items: center; gap: .5rem; padding: .3125rem .875rem .3125rem .75rem; border-radius: 999px; background: var(--card); box-shadow: 0 0 0 1px color-mix(in oklch, var(--m) 35%, transparent); }
.chap-tag .pill i { width: 8px; height: 8px; border-radius: 99px; background: var(--m); }
.chap-tag .dates { color: var(--tx3); font-weight: 500; }
.chap-head h2 { font-size: clamp(2.5rem, 5vw, 5rem); line-height: .98; letter-spacing: -.04em; }
.chap-head p:not(.chap-tag) { font-size: 1.125rem; line-height: 1.6; color: var(--tx2); max-width: 36rem; }
.chap .points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: clamp(32px, 4vw, 56px); }
.chap .points article { position: relative; }
.chap .points .pt-ico { display: block; width: 22px; height: 22px; margin-bottom: .75rem; color: var(--m); }
.chap .points h3 { font-family: var(--font-display); font-size: 1.375rem; line-height: 1.75rem; letter-spacing: -.015em; color: var(--head); }
.chap .points p { margin-top: .5rem; color: var(--tx2); font-size: 1rem; line-height: 1.6; }
.more-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: clamp(28px, 3vw, 44px); font-weight: 600; color: var(--in); text-decoration: none; }
.more-link .ico { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.more-link:hover .ico { transform: translateX(3px); }
.panel { background: var(--card); border-radius: 20px; box-shadow: 0 0 0 1px var(--line), 0 30px 80px -44px rgb(2 33 109 / .3); padding: clamp(20px, 2.6vw, 36px); }

/* Začetek: a corridor of lockers fills class by class (Množična dodelitev) */
.corridor { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 48px); align-items: stretch; }
.wall-wrap { display: flex; flex-direction: column; gap: 1rem; }
.wall-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.wall-top b { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.01em; }
.wall-legend { display: flex; flex-wrap: wrap; gap: .375rem .875rem; font-size: .8125rem; color: var(--tx2); }
.wall-legend span { display: inline-flex; align-items: center; gap: .375rem; }
.wall-legend i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); }
.wall { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 5px; }
.lk { position: relative; aspect-ratio: 3 / 5.2; border-radius: 4px; background: color-mix(in oklch, var(--tx) 5%, var(--card)); box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.lk::before { content: ""; position: absolute; left: 22%; right: 22%; top: 12%; height: 2px; border-radius: 2px; background: var(--line); box-shadow: 0 4px 0 var(--line), 0 8px 0 var(--line); }
.lk::after { content: ""; position: absolute; right: 18%; top: 48%; width: 2px; height: 14%; border-radius: 2px; background: color-mix(in oklch, var(--tx) 25%, transparent); }
.lk i { position: absolute; inset: 0; background: var(--c); transform: scaleY(0); transform-origin: bottom; transition: transform .45s var(--ease-out); opacity: .88; }
.lk.on i { transform: none; }
.lk.broken { background: repeating-linear-gradient(-45deg, color-mix(in oklch, var(--db-crit) 14%, var(--card)) 0 4px, var(--card) 4px 8px); }
.lk span { position: absolute; left: 0; right: 0; bottom: 3px; text-align: center; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 8px; color: var(--tx3); z-index: 1; }
.lk.on span { color: #fff; }
.wall-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; font-size: .8125rem; color: var(--tx3); }
.toast { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border-radius: 12px; background: var(--tx); color: var(--card); font-size: .875rem; opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s var(--ease-out); }
.toast.on { opacity: 1; transform: none; }
.toast b { font-weight: 600; }
.toast .undo { margin-left: auto; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.teacher { display: flex; flex-direction: column; gap: .875rem; }
.teacher .phone { width: 220px; height: 420px; }
.tp { padding: 14px 14px 0; display: flex; flex-direction: column; gap: 10px; font-size: 11px; }
.tp .t1 { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--color-neutral-900); }
.tp .t2 { color: var(--color-neutral-500); }
.tp .row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--color-neutral-200); color: var(--color-neutral-900); }
.tp .row small { display: block; color: var(--color-neutral-500); font-size: 10px; }
.tp .row .go { padding: 4px 8px; border-radius: 6px; background: var(--color-primary); color: #fff; font-weight: 600; font-size: 10px; }
.tp .row.done .go { background: oklch(59.6% .145 163.2); }
.tp .sug { display: flex; gap: 4px; margin-top: 4px; }
.tp .sug span { padding: 2px 6px; border-radius: 5px; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 9px; background: color-mix(in oklch, var(--ph-start) 16%, white); color: var(--ph-start-i); }

/* Med letom: a wider stage for deck, dashboard and networks */
.stack-gap > * + * { margin-top: clamp(20px, 2.4vw, 32px); }
.duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 2.4vw, 32px); }
.duo .panel h3 { font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -.02em; color: var(--head); }
.duo .panel > p { margin-top: .375rem; color: var(--tx2); font-size: .9375rem; }

/* Konec: the end focus card next to the printed class list */
/* Konec leta: borrowed equipment comes home tile by tile, the final-year classes fill below */
.hm { --ok: oklch(59.6% .145 163.2); --out: oklch(70% .16 70); }
.hm-top { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .5rem 1.5rem; }
.hm-lab { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--tx3); }
.hm-lab span { text-transform: none; letter-spacing: 0; font-weight: 500; }
.hm-count { display: flex; align-items: baseline; gap: .5rem; }
.hm-count b { font-family: var(--font-display); font-size: clamp(2.25rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -.04em; color: var(--head); font-variant-numeric: tabular-nums; }
.hm-count span { font-size: .875rem; color: var(--tx2); }
.hm-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin-top: 1.25rem; }
.hm-t { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1rem; border-radius: 14px; background: var(--card); box-shadow: 0 0 0 1px var(--line); transition: box-shadow .4s, background .4s, transform .5s var(--ease-out, ease); }
.hm-ic { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: .5rem; border-radius: 10px; background: color-mix(in oklch, var(--out) 16%, var(--card)); color: oklch(55% .14 65); transition: background .4s, color .4s; }
.hm-ic .ico { width: 22px; height: 22px; }
.hm-it { font-size: .875rem; font-weight: 600; line-height: 1.3; color: var(--tx); }
.hm-who { font-size: .75rem; color: var(--tx3); }
.hm-st { position: relative; display: block; height: 1.375rem; margin-top: auto; padding-top: .5rem; box-sizing: content-box; overflow: hidden; }
.hm-st > span { position: absolute; left: 0; top: .5rem; display: inline-flex; align-items: center; gap: .25rem; height: 1.375rem; padding: 0 .5rem; border-radius: 999px; font-size: .6875rem; font-weight: 600; transition: transform .45s var(--ease-out, ease), opacity .45s; }
.hm-st .a { background: color-mix(in oklch, var(--out) 18%, var(--card)); color: oklch(50% .13 60); }
.hm-st .b { background: color-mix(in oklch, var(--ok) 16%, var(--card)); color: oklch(45% .12 163); transform: translateY(110%); opacity: 0; }
.hm-st .b .ico { width: 11px; height: 11px; }
.hm-t.on { transform: translateY(-2px); }
.hm-t.on .hm-ic { background: color-mix(in oklch, var(--ok) 14%, var(--card)); color: oklch(50% .13 163); }
.hm-t.on .a { transform: translateY(-110%); opacity: 0; }
.hm-t.on .b { transform: none; opacity: 1; }
.hm-t.is-stay { box-shadow: 0 0 0 1.5px color-mix(in oklch, var(--out) 55%, transparent); }
.hm-lockers { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.hm-lockers .hm-lab { margin-right: .25rem; }
.hm-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.hm-chip { display: inline-flex; align-items: center; gap: .375rem; height: 2rem; padding: 0 .75rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); font-size: .8125rem; color: var(--tx2); font-variant-numeric: tabular-nums; transition: background .4s, color .4s, box-shadow .4s; }
.hm-chip b { color: var(--tx); font-weight: 600; margin-right: .125rem; }
.hm-chip.is-full { background: color-mix(in oklch, var(--ok) 14%, var(--card)); box-shadow: none; color: oklch(45% .12 163); }
.hm-btn { margin-left: auto; display: inline-flex; align-items: center; height: 2.375rem; padding: 0 1rem; border-radius: 10px; background: color-mix(in oklch, var(--color-primary) 35%, var(--card)); color: #fff; font-size: .875rem; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; transition: background .4s; }
.hm-btn.is-ready { background: var(--color-primary); }
@media (max-width: 1100px) { .hm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hm-t:nth-child(n+10) { display: none; } }
@media (max-width: 600px) {
  .hm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .hm-t { padding: .75rem; } .hm-t:nth-child(n+7) { display: none; }
  .hm-btn { margin-left: 0; width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .hm-t, .hm-st > span, .hm-ic, .hm-chip, .hm-btn { transition: none; } }

/* the transition band now speaks summer */
.band .eyebrow.sum { color: oklch(84% .12 95); }
.band-sun { position: absolute; left: var(--gut); top: clamp(28px, 4vw, 52px); }

/* ---- area page ---------------------------------------------------------- */
.area-hero { padding: clamp(48px, 7vw, 112px) 0 0; }
.area-hero .grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 96px); align-items: end; }
.area-hero h1 { font-size: clamp(3rem, 6.8vw, 7rem); line-height: .93; letter-spacing: -.045em; margin-top: 1rem; }
.area-hero .lead { margin-top: 1.75rem; font-size: clamp(1.125rem, 1.35vw, 1.3125rem); color: var(--tx2); max-width: 36rem; }
.toc { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
/* room for the chips' ring when they are the hero's lowest line (Varnost): the next section would paint over it */
.area-hero .toc { margin-bottom: 4px; }
.toc a { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .875rem; border-radius: 999px; font-size: .875rem; font-weight: 500; text-decoration: none; color: var(--tx2); background: var(--card); box-shadow: 0 0 0 1px var(--line); transition: box-shadow .2s, color .2s; }
.toc a i { width: 8px; height: 8px; border-radius: 99px; background: var(--c); }
.toc a:hover { color: var(--tx); box-shadow: 0 0 0 1px var(--c); }
/* section colours for the page's links (no inline styles on the live site) */
.toc .c-asg { --c: oklch(56% .11 200); } .toc .c-card { --c: var(--color-primary); } .toc .c-end { --c: oklch(55% .14 355); } .toc .c-stu { --c: oklch(62% .15 55); }
.feat { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 96px); align-items: center; padding: clamp(64px, 8vw, 128px) 0 0; }
.feat.flip > :first-child { order: 2; }
/* section labels read like the page eyebrow (»Omarice in dijaki«): small caps-style, with the section's colour square */
.feat .k { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; line-height: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tx3); }
.feat .k i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); }
.feat h2 { margin-top: 1rem; font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1; letter-spacing: -.035em; }
.feat .lead { margin-top: 1.25rem; font-size: 1.125rem; line-height: 1.6; color: var(--tx2); max-width: 34rem; }
.feat ul { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: .875rem; }
.feat li { display: grid; grid-template-columns: 22px 1fr; gap: .75rem; font-size: 1rem; line-height: 1.5; color: var(--tx2); }
.feat li .ico { width: 18px; height: 18px; margin-top: 3px; color: var(--c); }
.feat li b { color: var(--tx); font-weight: 600; }
.stage { position: relative; display: grid; place-items: center; min-height: 26rem; padding: clamp(24px, 3vw, 48px); border-radius: 24px;
  background: radial-gradient(120% 90% at 80% 10%, color-mix(in oklch, var(--c) 14%, var(--card)), var(--card) 70%); box-shadow: 0 0 0 1px var(--line); overflow: hidden; }
.stage > .bgcards { position: absolute; right: -8%; top: -10%; width: 40%; height: 120%; pointer-events: none; }
.stage > .bgcards i { position: absolute; top: 0; bottom: 0; border-radius: 40px; transform: skewX(-6deg); background: color-mix(in oklch, var(--c) 7%, transparent); }
.stage > .bgcards i:nth-child(1) { left: 0; width: 22%; top: 16%; bottom: 16%; }
.stage > .bgcards i:nth-child(2) { left: 26%; width: 22%; top: 7%; bottom: 7%; }
.stage > .bgcards i:nth-child(3) { left: 52%; width: 48%; }
.stage > :not(.bgcards) { position: relative; }

/* a printed reverz */
.doc-a4 { width: min(100%, 400px); aspect-ratio: 210 / 260; background: #fff; color: #18181b; border-radius: 4px; padding: 26px 28px; font-size: 10px;
  box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 30px 60px -30px rgb(0 0 0 / .4); transform: rotate(-1.5deg); display: flex; flex-direction: column; }
.doc-a4 .lh { display: flex; justify-content: space-between; align-items: center; padding-bottom: 10px; border-bottom: 1px solid #e4e4e7; }
.doc-a4 .lh svg { height: 14px; width: auto; }
.doc-a4 .lh span { font-size: 9px; color: #71717b; }
.doc-a4 h4 { margin: 16px 0 2px; font-family: var(--font-display); font-size: 16px; }
.doc-a4 .no { font-family: var(--app-font); font-variant-numeric: tabular-nums; color: #71717b; font-size: 9.5px; }
.doc-a4 dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 14px 0; }
.doc-a4 dt { color: #71717b; } .doc-a4 dd { margin: 0; font-weight: 500; }
.doc-a4 table { width: 100%; border-collapse: collapse; margin-top: 4px; }
.doc-a4 th { text-align: left; font-size: 9px; font-weight: 600; color: #52525c; padding: 5px 4px; border-bottom: 1px solid #d4d4d8; }
.doc-a4 td { padding: 6px 4px; border-bottom: 1px solid #f0f0f2; }
.doc-a4 td.m { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 9px; color: #52525c; }
.doc-a4 .sign { display: flex; justify-content: space-between; margin-top: auto; color: #71717b; font-size: 9px; }
.doc-a4 .sign span { width: 42%; }
.doc-a4 .sig { font-family: "Caveat", cursive; font-weight: 500; color: var(--color-primary); font-size: 19px; line-height: 20px; height: 22px; margin-bottom: 4px; border-bottom: 1px solid #a1a1aa; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.chips span { display: inline-flex; align-items: center; gap: .375rem; padding: .3125rem .75rem; border-radius: 999px; font-size: .8125rem; font-weight: 500; background: var(--card); box-shadow: 0 0 0 1px var(--line); }

/* repairs board */

/* write-off stages */

/* ---- contact ------------------------------------------------------------- */
.contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 96px); padding-top: clamp(48px, 7vw, 112px); align-items: start; }
.contact h1 { font-size: clamp(3rem, 6.5vw, 6.5rem); line-height: .93; letter-spacing: -.045em; margin-top: 1rem; }
.contact .lead { margin-top: 1.5rem; font-size: 1.1875rem; color: var(--tx2); max-width: 30rem; }
.alt { margin-top: 2.5rem; display: grid; gap: 1.25rem; }
.alt div { display: grid; grid-template-columns: 40px 1fr; gap: .875rem; align-items: start; }
.alt .ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--card); box-shadow: 0 0 0 1px var(--line); color: var(--color-primary); }
.alt .ic svg { width: 18px; height: 18px; }
.alt b { display: block; font-weight: 600; } .alt span { color: var(--tx2); font-size: .9375rem; } .alt a { color: var(--color-primary); font-weight: 500; }
/* Kontakt: the Predstavitev row grows into the three start steps; the other ways to reach us sit below a hairline */
.alt .mini-h { margin-bottom: -.25rem; }
.alt .k-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.alt .k-steps li { position: relative; display: grid; grid-template-columns: 40px 1fr; gap: .875rem; align-items: start; }
.alt .k-steps li > span:last-child { padding-top: .1875rem; }
.alt .k-steps .sn { justify-self: center; margin-top: .125rem; width: 1.75rem; height: 1.75rem; border-radius: 999px; display: grid; place-items: center; background: color-mix(in oklch, var(--color-primary) 10%, var(--card));
  font-family: var(--font-display); font-weight: 700; font-size: .875rem; line-height: 1; color: var(--color-primary); }
.alt .k-steps li:not(:last-child)::after { content: ""; position: absolute; left: 19.5px; width: 1px; top: calc(.125rem + 1.75rem + .375rem); bottom: calc(-1rem + .5rem); background: var(--line); }
.alt .k-rest { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; margin-top: .5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
/* one column: the form comes first, the steps and other ways follow it */
@media (max-width: 1100px) {
  .contact { row-gap: 0; }
  .contact > div:first-child { display: contents; }
  .contact .form-card { order: 1; margin-top: 2rem; }
  .contact .alt { order: 2; margin-top: 2.5rem; }
}
.form-card { position: relative; overflow: hidden; border-radius: 24px; background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 40px 100px -50px rgb(2 33 109 / .35); padding: clamp(24px, 3.4vw, 48px); }
.form-card .wm { position: absolute; right: -64px; bottom: -64px; height: 360px; width: auto; aspect-ratio: 1; pointer-events: none; }
.form-card .wm path { fill: var(--color-primary); }
.form-card .wm path:nth-of-type(1) { fill-opacity: .035; } .form-card .wm path:nth-of-type(2) { fill-opacity: .05; } .form-card .wm path:nth-of-type(3) { fill-opacity: .065; }
.form-card form, .form-card .sent { position: relative; }
.fl { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .5rem; }
.fl small { font-weight: 400; color: var(--tx3); }
.topics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .625rem; margin-bottom: 2.75rem; border: 0; padding: 0; }
.topics legend { padding: 0; }
.topic { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: .875rem .875rem 1rem; border-radius: 14px; cursor: pointer; background: var(--card); box-shadow: 0 0 0 1px var(--line); transition: box-shadow .2s, background-color .2s; }
.topic input { position: absolute; opacity: 0; }
.topic .ico { width: 20px; height: 20px; color: var(--tx3); transition: color .2s; }
.topic b { font-size: .9375rem; font-weight: 600; }
.topic:hover { box-shadow: 0 0 0 1px var(--color-neutral-400); }
.topic:has(input:checked) { box-shadow: 0 0 0 2px var(--color-primary); background: color-mix(in oklch, var(--color-primary) 5%, var(--card)); }
.topic:has(input:checked) .ico { color: var(--color-primary); }
.topic:has(input:focus-visible) { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.125rem 1rem; }
.fields .full { grid-column: 1 / -1; }
.inp { width: 100%; height: 44px; border-radius: 10px; border: 0; padding: 0 .875rem; font: inherit; font-size: .9375rem; color: var(--tx); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--color-neutral-300); transition: box-shadow .15s; }
.dark .inp { box-shadow: inset 0 0 0 1px var(--color-neutral-700); }
textarea.inp { height: 9rem; padding: .75rem .875rem; resize: vertical; line-height: 1.5; }
.inp::placeholder { color: var(--color-neutral-400); }
.inp:focus { outline: none; box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 3px color-mix(in oklch, var(--color-primary) 22%, transparent); }
.field.err .inp { box-shadow: inset 0 0 0 1px var(--db-crit), 0 0 0 3px color-mix(in oklch, var(--db-crit) 16%, transparent); }
.field .msg { display: none; margin-top: .375rem; font-size: .8125rem; color: var(--db-crit); }
.field.err .msg { display: flex; align-items: center; gap: .375rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.form-foot p { font-size: .8125rem; color: var(--tx3); max-width: 26rem; }
.form-foot p a { color: inherit; }
.btn[disabled] { opacity: .7; cursor: progress; }
.spin { width: 16px; height: 16px; border-radius: 99px; border: 2px solid rgb(255 255 255 / .35); border-top-color: #fff; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.banner-err { display: none; gap: .75rem; align-items: flex-start; margin-bottom: 1.5rem; padding: .875rem 1rem; border-radius: 12px; font-size: .9375rem;
  background: color-mix(in oklch, var(--db-crit) 8%, var(--card)); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--db-crit) 30%, transparent); }
.banner-err .ico { width: 20px; height: 20px; color: var(--db-crit); margin-top: 1px; }
.form-card.is-error .banner-err { display: flex; }
.sent { display: none; min-height: 30rem; flex-direction: column; justify-content: center; }
.form-card.is-sent form { display: none; }
.form-card.is-sent .sent { display: flex; }
.sent .ok { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: color-mix(in oklch, oklch(59.6% .145 163.2) 14%, var(--card)); color: oklch(52% .14 163); }
.sent .ok svg { width: 28px; height: 28px; }
.sent h2 { margin-top: 1.5rem; font-size: clamp(2rem, 3.4vw, 3rem); letter-spacing: -.035em; line-height: 1.02; }
.sent p { margin-top: 1rem; color: var(--tx2); font-size: 1.0625rem; max-width: 32rem; }
@media (prefers-reduced-motion: no-preference) {
  .form-card.is-sent .sent > * { animation: fp-in .6s var(--ease-out) both; }
  .form-card.is-sent .sent > :nth-child(2) { animation-delay: .08s; }
  .form-card.is-sent .sent > :nth-child(3) { animation-delay: .16s; }
}


@media (max-width: 1100px) {
  .corridor, .duo, .chap-head, .area-hero .grid, .feat, .contact { grid-template-columns: minmax(0, 1fr); }
  .feat.flip > :first-child { order: 0; }
  .teacher { align-items: center; }
}
@media (max-width: 760px) {
  .spine-lab { display: none; }
  .spine-tr a { padding: 0 .375rem; font-size: .6875rem; }
  .chap .points, .topics, .fields { grid-template-columns: minmax(0, 1fr); }
  .topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wall { grid-template-columns: repeat(10, minmax(0, 1fr)); }
}

/* paper is always white, so the logo on a printed document keeps its light colours */
.doc-a4 .lh svg { --head: #02216D; --logo-back: #9bbeff; --logo-mid: #5a90ff; --logo-front: #155dfc; }

/* Oprema hero: the four cards sit two by two beside the title */
.area-hero .deck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.area-hero .dk { min-height: 15rem; }

/* ---------- round 2: shared bits ---------- */
.mono { font-family: var(--app-font); font-variant-numeric: tabular-nums; }
.st-pill { display: inline-flex; align-items: center; gap: .375rem; padding: .1875rem .625rem; border-radius: 999px; font-size: .75rem; font-weight: 600; white-space: nowrap;
  background: color-mix(in oklch, var(--s) 14%, var(--card)); color: color-mix(in oklch, var(--s) 80%, var(--tx)); }
.st-pill::before { content: ""; width: 6px; height: 6px; border-radius: 99px; background: var(--s); }
.s-ok { --s: oklch(59.6% .145 163.2); } .s-info { --s: var(--color-primary); } .s-warn { --s: oklch(70% .16 70); } .s-muted { --s: var(--color-neutral-400); } .s-crit { --s: var(--db-crit); }
.mini-h { font-size: .75rem; font-weight: 600; color: var(--tx3); letter-spacing: .02em; }
.copy { display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .75rem; border-radius: 8px; font-size: .8125rem; font-weight: 600; color: var(--tx); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); white-space: nowrap; transition: background-color .2s, color .2s; }
.copy .ico { width: 14px; height: 14px; }
.copy.is-done { background: color-mix(in oklch, oklch(59.6% .145 163.2) 14%, var(--card)); color: oklch(45% .12 163); box-shadow: none; }

/* ---------- QR label: one label, big, and where it sits on the sheet ---------- */
.minisheet { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.minisheet .ms { width: 112px; aspect-ratio: 210 / 297; padding: 6px 4px; background: #fff; border-radius: 3px; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: 2px; box-shadow: 0 0 0 1px var(--line), 0 14px 30px -18px rgb(2 33 109 / .35); }
.minisheet .ms i { border-radius: 1.5px; background: #f4f4f5; }
.minisheet .ms i.used { background: repeating-linear-gradient(-45deg, #e4e4e7 0 2px, #fafafa 2px 4px); }
.minisheet .ms i.new { background: color-mix(in oklch, var(--c) 30%, white); }
.minisheet .ms i.first { background: var(--c); box-shadow: 0 0 0 2px color-mix(in oklch, var(--c) 35%, transparent); }
@media (prefers-reduced-motion: no-preference) { .minisheet .ms i.first { animation: ms-pulse 1.8s ease-in-out infinite; } }
@keyframes ms-pulse { 50% { box-shadow: 0 0 0 4px color-mix(in oklch, var(--c) 15%, transparent); } }
.minisheet p { font-size: .8125rem; color: var(--tx2); }

/* ---------- address map (Omrežje): one square per address ---------- */
.ipmap-wrap { display: flex; flex-direction: column; gap: 1rem; }
.ipmap { --sq: var(--color-primary); display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 3px; }
.ipmap .q { aspect-ratio: 1; border-radius: 3px; background: color-mix(in oklch, var(--sq) 14%, var(--card)); transition: opacity .3s, transform .3s, box-shadow .3s; }
.ipmap .q.u { background: var(--sq); }
.ipmap .q.r { background: repeating-linear-gradient(-45deg, oklch(78% .14 75) 0 2px, color-mix(in oklch, oklch(78% .14 75) 30%, var(--card)) 2px 4px); }
.ipmap .q.x { background: var(--tx); }
.ipmap .q.n { background: transparent; box-shadow: inset 0 0 0 1px var(--line); }
.ipmap.is-hl .q:not(.on) { opacity: .18; }
.ipmap.is-hl .q.on { transform: scale(1.08); }
.ipmap .q.ping { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px oklch(59.6% .145 163.2); }
.ip-legend { display: flex; flex-wrap: wrap; gap: .375rem 1rem; font-size: .8125rem; color: var(--tx2); }
.ip-legend span { display: inline-flex; align-items: center; gap: .375rem; }
.ip-legend i { width: 11px; height: 11px; border-radius: 3px; }
.ip-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; }
.ip-top b { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.01em; }
.ip-top .mono { font-size: .8125rem; color: var(--tx3); }
.wg-chips { display: flex; flex-wrap: wrap; gap: .375rem; }
.wg-chips button { border: 0; font: inherit; font-size: .8125rem; font-weight: 500; padding: .375rem .75rem; border-radius: 999px; background: var(--card); color: var(--tx2); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.wg-chips button[aria-pressed="true"] { background: var(--tx); color: var(--card); box-shadow: none; }
.wg-cap { font-size: .875rem; color: var(--tx2); min-height: 1.5em; }
.wg-cap b { color: var(--tx); }

/* address card */
.acard { width: min(100%, 440px); display: flex; flex-direction: column; gap: 1.125rem; }
.acard .a-ip { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.acard .a-ip b { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 1.625rem; font-weight: 500; letter-spacing: -.01em; }
.acard .hold { display: flex; gap: .875rem; align-items: center; padding: .875rem 1rem; border-radius: 14px; background: color-mix(in oklch, var(--tx) 3.5%, var(--card)); box-shadow: inset 0 0 0 1px var(--line); }
.acard .hold .ico { width: 22px; height: 22px; color: var(--color-primary); flex: none; }
.acard .hold span { font-size: .875rem; color: var(--tx2); line-height: 1.45; }
.acard .hold b { display: block; color: var(--tx); font-family: var(--app-font); font-variant-numeric: tabular-nums; font-weight: 500; }
.nbr { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 4px; }
.nbr span { display: flex; flex-direction: column; align-items: center; gap: 4px; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 10px; color: var(--tx3); }
.nbr span i { width: 100%; aspect-ratio: 1; border-radius: 5px; background: color-mix(in oklch, var(--color-primary) 14%, var(--card)); }
.nbr span.u i { background: var(--color-primary); }
.nbr span.me i { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--tx); }
.nbr span.me { color: var(--tx); font-weight: 600; }
.nbr span.free i { box-shadow: inset 0 0 0 2px oklch(59.6% .145 163.2); }
.near { display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: .875rem; color: var(--tx2); }
.near b { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-weight: 500; color: var(--tx); }

.unreg { display: flex; flex-direction: column; gap: .5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.unreg div { display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: .8125rem; color: var(--tx2); }
.unreg div span b { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-weight: 500; color: var(--tx); }

/* reservation list */
.rsv { width: min(100%, 460px); display: flex; flex-direction: column; gap: .75rem; }
.rsv .srch { display: flex; align-items: center; gap: .625rem; height: 42px; padding: 0 .875rem; border-radius: 10px; background: var(--card); box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 3px color-mix(in oklch, var(--color-primary) 18%, transparent); font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: .875rem; }
.rsv .srch .ico { width: 16px; height: 16px; color: var(--tx3); }
.rsv .rows { border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; background: var(--card); }
.rsv .rows div { display: grid; grid-template-columns: 18px 1fr auto; gap: .75rem; align-items: center; padding: .5rem .875rem; font-size: .8125rem; border-top: 1px solid var(--line); }
.rsv .rows div:first-child { border-top: 0; }
.rsv .rows .cb { width: 14px; height: 14px; border-radius: 4px; background: var(--color-primary); display: grid; place-items: center; color: #fff; }
.rsv .rows .cb .ico { width: 10px; height: 10px; }
.rsv .rows .mono { color: var(--tx); }
.rsv .rows .more { color: var(--tx3); grid-template-columns: 1fr; }
.rsv .bar { display: flex; align-items: center; gap: .75rem; padding: .625rem .625rem .625rem 1rem; border-radius: 12px; background: var(--tx); color: var(--card); font-size: .8125rem; }
.rsv .bar .b { margin-left: auto; padding: .375rem .75rem; border-radius: 8px; background: var(--card); color: var(--tx); font-weight: 600; }
.rsv .bar .b2 { padding: .375rem .25rem; opacity: .7; }

/* ---------- Omarice page ---------- */
.loc-list { width: min(100%, 460px); display: flex; flex-direction: column; }
.loc-list .lr { display: grid; grid-template-columns: 1fr auto; gap: .375rem 1rem; padding: .875rem 0; border-top: 1px solid var(--line); }
.loc-list .lr:first-of-type { border-top: 0; }
.loc-list .nm { display: flex; align-items: center; gap: .625rem; font-weight: 600; font-size: .9375rem; color: var(--tx); }
.loc-list .nm i { width: 12px; height: 12px; border-radius: 4px; background: var(--c); }
.loc-list .fr { font-size: .8125rem; color: var(--tx2); text-align: right; }
.loc-list .fr b { color: var(--tx); }
.loc-list .bar { grid-column: 1 / -1; display: flex; height: 8px; border-radius: 99px; overflow: hidden; background: color-mix(in oklch, var(--c) 16%, var(--card)); }
.loc-list .bar .u { background: var(--c); }
.loc-list .bar .x { background: repeating-linear-gradient(-45deg, var(--db-crit) 0 2px, transparent 2px 4px); opacity: .6; }
.loc-list .sub { grid-column: 1 / -1; font-size: .75rem; color: var(--tx3); }

.prev { width: min(100%, 480px); display: flex; flex-direction: column; gap: 1rem; }
.prev .ok { display: flex; align-items: center; gap: .625rem; font-size: .9375rem; color: var(--tx); }
.prev .ok .ico { width: 20px; height: 20px; color: oklch(59.6% .145 163.2); }
.prev .strip { display: grid; grid-template-columns: repeat(32, minmax(0, 1fr)); gap: 2px; }
.prev .strip i { aspect-ratio: 1 / 1.7; border-radius: 2px; background: color-mix(in oklch, var(--c) 18%, var(--card)); }
.prev .strip i.on { background: var(--c); }
.prev .cls { display: flex; flex-direction: column; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); background: var(--card); overflow: hidden; }
.prev .cls > div { display: grid; grid-template-columns: 4px 3.25rem 1fr auto; gap: .75rem; align-items: center; padding: .625rem .875rem .625rem 0; font-size: .8125rem; border-top: 1px solid var(--line); color: var(--tx2); }
.prev .cls > div:first-child { border-top: 0; }
.prev .cls > div > i { align-self: stretch; background: var(--c); }
.prev .cls b { color: var(--tx); font-weight: 600; }
.prev .cls .mono { color: var(--tx); font-size: .8125rem; }
.prev .cls .open { background: color-mix(in oklch, var(--tx) 2.5%, var(--card)); }
.prev .kids { grid-column: 3 / -1; display: grid; gap: .25rem; padding: .25rem 0 .125rem; }
.prev .kids > span { display: grid; grid-template-columns: 14px 1fr auto; gap: .5rem; align-items: center; font-size: .75rem; color: var(--tx2); }
.prev .kids > span .cb { width: 12px; height: 12px; border-radius: 3px; background: var(--color-primary); }
.prev .kids > span.off { color: var(--tx3); text-decoration: line-through; }
.prev .kids > span.off .cb { background: transparent; box-shadow: inset 0 0 0 1.5px var(--color-neutral-400); }

.lcard { width: min(100%, 440px); display: flex; flex-direction: column; gap: 1.125rem; }
.lcard .lh { display: flex; align-items: center; gap: .875rem; flex-wrap: wrap; }
.lcard .lh .st-pill { margin-left: auto; }
.lcard .num { padding: .25rem .75rem; border-radius: 10px; background: var(--c); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: -.01em; }
.lcard .loc { font-size: .875rem; color: var(--tx2); }
.lcard .who { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .875rem 1rem; border-radius: 14px; background: color-mix(in oklch, var(--tx) 3.5%, var(--card)); box-shadow: inset 0 0 0 1px var(--line); font-size: .875rem; color: var(--tx2); }
.lcard .who b { display: block; color: var(--tx); font-size: .9375rem; }
.lcard .who .acts { display: flex; gap: .375rem; }
.lcard .who .acts span { padding: .3125rem .625rem; border-radius: 8px; font-size: .75rem; font-weight: 600; color: var(--tx); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.nlk { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.nlk span { display: flex; flex-direction: column; align-items: center; gap: 5px; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 10px; color: var(--tx3); }
.nlk span i { width: 100%; aspect-ratio: 3 / 5.2; border-radius: 4px; background: var(--c); opacity: .88; }
.nlk span.free i { background: color-mix(in oklch, var(--tx) 5%, var(--card)); box-shadow: inset 0 0 0 2px oklch(59.6% .145 163.2); opacity: 1; }
.nlk span.me i { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--tx); opacity: 1; }
.nlk span.me { color: var(--tx); font-weight: 600; }
.lhist { display: flex; flex-direction: column; gap: .375rem; font-size: .8125rem; color: var(--tx2); }
.lhist div { display: flex; justify-content: space-between; gap: 1rem; }
.lhist time { font-family: var(--app-font); font-variant-numeric: tabular-nums; color: var(--tx3); }

.doors { display: flex; gap: clamp(14px, 2.4vw, 28px); align-items: flex-end; justify-content: center; flex-wrap: wrap; }
.doors figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.door { position: relative; width: 92px; aspect-ratio: 3 / 5.2; border-radius: 8px; background: var(--c); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .06); }
.door::before { content: ""; position: absolute; left: 24%; right: 24%; top: 10%; height: 3px; border-radius: 2px; background: rgb(255 255 255 / .45); box-shadow: 0 7px 0 rgb(255 255 255 / .45), 0 14px 0 rgb(255 255 255 / .45); }
.door::after { content: ""; position: absolute; right: 16%; top: 48%; width: 4px; height: 16%; border-radius: 2px; background: rgb(255 255 255 / .7); }
.door b { position: absolute; left: 0; right: 0; bottom: 8px; text-align: center; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 12px; color: #fff; }
.door.broken { background: repeating-linear-gradient(-45deg, color-mix(in oklch, var(--db-crit) 22%, var(--card)) 0 6px, var(--card) 6px 12px); box-shadow: inset 0 0 0 1.5px color-mix(in oklch, var(--db-crit) 40%, transparent); }
.door.broken b, .door.out b { color: var(--tx2); }
.door.broken::before, .door.out::before { background: var(--line); box-shadow: 0 7px 0 var(--line), 0 14px 0 var(--line); }
.door.broken::after, .door.out::after { background: color-mix(in oklch, var(--tx) 25%, transparent); }
.door.out { background: color-mix(in oklch, var(--tx) 6%, var(--card)); box-shadow: inset 0 0 0 1px var(--line); }


.ap { width: 100%; max-width: 440px; }
.tp .sheet-h { font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--color-neutral-900); }
.tp .grp { font-size: 10px; font-weight: 600; color: var(--color-neutral-500); margin-top: 2px; }
.tp .opts { display: flex; flex-wrap: wrap; gap: 5px; }
.tp .opts span { padding: 5px 8px; border-radius: 7px; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 11px; background: color-mix(in oklch, var(--c) 14%, white); color: color-mix(in oklch, var(--c) 70%, black); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--c) 30%, transparent); }
.tp .opts span.pick { background: var(--c); color: #fff; }
.tp .opts.dim span { opacity: .55; }

@media (max-width: 760px) {
  .ipmap { gap: 2px; } .ipmap .q { border-radius: 2px; }
  .door { width: 72px; }
}
/* dark: the reserved stripes would shout on a dark card */
.dark .ipmap .q.r { background: repeating-linear-gradient(-45deg, oklch(62% .11 75) 0 2px, oklch(30% .04 75) 2px 4px); }

/* ---------- internal comparison page ---------- */
.cmp-h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.04em; margin-top: 1rem; }
.cmp-lead { margin-top: 1.25rem; max-width: 44rem; color: var(--tx2); font-size: 1.0625rem; }
.cmp { margin-top: clamp(48px, 6vw, 88px); }
.cmp header { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.cmp h2 { font-family: var(--font-display); font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.02em; }
.verdict { padding: .25rem .75rem; border-radius: 999px; font-size: .8125rem; font-weight: 600; }
.v-site { background: color-mix(in oklch, var(--color-primary) 12%, var(--card)); color: var(--color-primary); }
.v-app { background: color-mix(in oklch, oklch(59.6% .145 163.2) 14%, var(--card)); color: oklch(45% .12 163); }
.v-even { background: color-mix(in oklch, var(--tx) 8%, var(--card)); color: var(--tx2); }
.v-fix { background: color-mix(in oklch, oklch(70% .16 70) 16%, var(--card)); color: oklch(48% .12 60); }
.pair { margin-top: 1.25rem; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2.4vw, 32px); align-items: start; }
.pair figure { margin: 0; padding: clamp(12px, 1.6vw, 20px); border-radius: 18px; background: color-mix(in oklch, var(--tx) 3%, var(--card)); box-shadow: inset 0 0 0 1px var(--line); }
.pair img { display: block; width: 100%; height: auto; border-radius: 10px; }
.pair figcaption { margin-top: .75rem; font-size: .8125rem; color: var(--tx3); font-family: var(--app-font); font-variant-numeric: tabular-nums; }
.cmp > p { margin-top: 1rem; max-width: 52rem; color: var(--tx2); line-height: 1.6; }
.cmp-notes ul { margin: 1rem 0 0; padding-left: 1.25rem; color: var(--tx2); line-height: 1.7; max-width: 52rem; }
.cmp-notes b { color: var(--tx); }
.cmp-page { padding-bottom: clamp(64px, 8vw, 120px); }

/* ---- Pravne informacije: on the site grid; a sticky side column with the two chapters, the text at a reading width ---- */
.legal { padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 96px); }
.legal h1.disp { margin-top: .75rem; font-size: clamp(2.5rem, 5vw, 4rem); line-height: .95; letter-spacing: -.04em; text-wrap: balance; }
.legal .lead { margin-top: 1.25rem; max-width: 36rem; font-size: 1.125rem; color: var(--tx); }
.legal-body { display: grid; grid-template-columns: 13rem minmax(0, 46rem); gap: clamp(32px, 6vw, 96px); margin-top: clamp(48px, 6vw, 80px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--line); }
.legal-body aside { position: sticky; top: 104px; align-self: start; }
.legal-toc { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }
.legal-toc a { text-decoration: none; padding: .375rem .875rem; border-radius: 999px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); font-size: .875rem; font-weight: 500; color: var(--head); }
.legal-toc a:hover { box-shadow: inset 0 0 0 1.5px var(--color-primary); }
.legal-date { margin-top: 1.5rem; font-size: .8125rem; color: var(--tx3); }
.legal section + section { margin-top: clamp(56px, 7vw, 88px); }
.legal section { scroll-margin-top: 104px; }
.legal h2.disp { font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.05; }
.legal h3 { margin-top: 2.25rem; font-size: 1.0625rem; font-weight: 600; color: var(--head); }
.legal-text p, .legal-text li { margin-top: .75rem; line-height: 1.65; color: var(--tx); }
.legal h2 + p, .legal h3 + p, .legal h3 + ul { margin-top: .625rem; }
.legal ul { padding-left: 1.25rem; list-style: disc; }
.legal li::marker { color: var(--tx3); }
.legal p a, .legal li a, .legal dd a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.legal dl { display: grid; grid-template-columns: 11rem minmax(0, 1fr); margin-top: 1.25rem; border-top: 1px solid var(--line); }
.legal dt, .legal dd { padding: .75rem 0; border-bottom: 1px solid var(--line); }
.legal dt { font-size: .875rem; color: var(--tx3); }
.legal dd { margin: 0; color: var(--head); font-weight: 500; }
.legal dl + p { margin-top: 1.25rem; }
/* a detail filled in once the company is registered */
.legal .todo { display: inline-block; padding: 0 .5rem; border-radius: 6px; border: 1px dashed var(--line); font-size: .8125rem; font-weight: 400; color: var(--tx3); }
@media (max-width: 860px) {
  .legal-body { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .legal-body aside { position: static; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
  .legal-toc { flex-direction: row; flex-wrap: wrap; }
  .legal-date { margin-top: 0; }
}
@media (max-width: 560px) {
  .legal dl { grid-template-columns: minmax(0, 1fr); }
  .legal dt { padding-bottom: 0; border-bottom: 0; }
  .legal dd { padding-top: .125rem; }
}
@media (max-width: 760px) { .pair { grid-template-columns: 1fr; } }

/* ---------- one locker look everywhere: the wall's door, in three sizes ---------- */
.lk.on i { transform: none; }
.lk.free { box-shadow: inset 0 0 0 1.5px oklch(59.6% .145 163.2); }
.lk.me { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--tx); }
.lk.me span { font-weight: 700; }
.lk.out { opacity: .4; }
.lk.mini { border-radius: 2px; }
.lk.mini::before { left: 26%; right: 26%; top: 14%; height: 1px; box-shadow: 0 2px 0 var(--line), 0 4px 0 var(--line); }
.lk.mini::after { width: 1.5px; right: 16%; height: 18%; }
.lk.mini.on::before { background: rgb(255 255 255 / .35); box-shadow: 0 2px 0 rgb(255 255 255 / .35), 0 4px 0 rgb(255 255 255 / .35); z-index: 1; }
.lk.mini.on::after { background: rgb(255 255 255 / .6); z-index: 1; }
.lk.mini.free { box-shadow: inset 0 0 0 1px var(--line); }
.nlk { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.nlk .lk { --c: inherit; }
.prev .strip.lkgrid { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 3px; }
.prev .strip.lkgrid .lk { aspect-ratio: 3 / 5; }

/* the building's locker runs (Omarice top) */
.plan { display: flex; flex-direction: column; gap: 1.125rem; }
.plan-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.plan-top > b { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.01em; }
.plan-top span { font-size: .875rem; color: var(--tx2); }
.plan-top span b { color: var(--tx); }
.floor { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; align-items: start; padding-top: 1rem; border-top: 1px dashed var(--line); }
.floor .fl { font-size: .75rem; font-weight: 600; color: var(--tx3); padding-top: .125rem; }
.runs { display: flex; gap: 1rem; flex-wrap: wrap; }
.run { display: flex; flex-direction: column; gap: .5rem; flex: 1 1 auto; transition: opacity .4s; }
.run[data-cols="20"] { flex-basis: 100%; }
.run .mini { display: grid; gap: 2px; }
.run .mini .lk { aspect-ratio: 3 / 5; }
.run .rl { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--tx2); }
.run .rl i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.run .rl b { margin-left: auto; color: var(--tx); font-weight: 600; }
.plan:has(.is-look) .run:not(.is-look) { opacity: .45; }
.run.is-look .lk.free { box-shadow: inset 0 0 0 1.5px oklch(59.6% .145 163.2); background: color-mix(in oklch, oklch(59.6% .145 163.2) 14%, var(--card)); }

/* razrednik list: the locker chip */
.tp .lkc { padding: 3px 7px; border-radius: 6px; background: var(--c); color: #fff; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: 10px; }


/* stage watermark: the login page's card stack, tinted by the section */
.stage > .wm { position: absolute; right: -8%; bottom: -18%; height: 92%; width: auto; aspect-ratio: 1; pointer-events: none; }
.stage > .wm path { fill: var(--c); }
.stage > .wm path:nth-of-type(1) { fill-opacity: .05; } .stage > .wm path:nth-of-type(2) { fill-opacity: .075; } .stage > .wm path:nth-of-type(3) { fill-opacity: .1; }

/* network map: highlight by dimming the rest, the grid stays even */
.ipmap.is-hl .q.on { transform: none; }
#ip-hero { width: 100%; max-width: 540px; justify-self: end; }
.stage > :not(.bgcards):not(.wm) { position: relative; }
/* locker runs: every door the same size, whatever the run's length */
.run { flex: 0 0 auto; }
.run[data-cols="20"] { flex-basis: auto; }
.run .mini .lk { width: 18px; aspect-ratio: 3 / 5; }
.prev .strip.lkgrid .lk i { aspect-ratio: auto; border-radius: 0; background: var(--c); }
@media (max-width: 760px) { .run .mini .lk { width: 11px; } .floor { grid-template-columns: 1fr; gap: .5rem; } }

/* ---------- round 3 ---------- */
/* letnik shades of the app's locker wall (indigo 200 / 400 / 600 / 900) */
:root { --y1: oklch(87% .065 274); --y2: oklch(67.3% .182 276.9); --y3: oklch(51.1% .262 276.9); --y4: oklch(35.9% .144 278.7); }

/* hero: the date line keeps its distance from the caron of Š */
.hero h1 { margin-top: 2.25rem; }

/* section and chapter heads: the lead belongs to its heading, so it sits under it */
.sec-head, .chap-head { display: block; }
.sec-head .eyebrow { margin-bottom: 0; }
.sec-head h2, .chap-head h2 { margin-top: 1rem; max-width: 20ch; }
.sec-head h2 + p, .chap-head h2 + p { margin-top: 1.25rem; max-width: 40rem; }

/* Začetek: the razrednik phone and its caption, centred in their panel */
.teacher { align-items: center; justify-content: center; }
.teacher .cap { font-size: .875rem; color: var(--tx2); text-align: center; max-width: 17rem; }

/* Med letom: each panel says what it is before it shows it; links sit under their visual */
.duo { margin-top: clamp(64px, 7vw, 112px); grid-template-rows: auto auto auto; row-gap: 0; }
.duo-col { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
.duo-h { margin-bottom: 1.5rem; }
.duo-h h3 { font-family: var(--font-display); font-size: clamp(1.625rem, 2.2vw, 2.125rem); line-height: 1.1; letter-spacing: -.025em; color: var(--head); }
.duo-h p { margin-top: .625rem; color: var(--tx2); font-size: 1rem; line-height: 1.6; max-width: 34rem; }
.duo-col > .more-link { align-self: start; justify-self: start; }
/* Med letom: a network device without an address, as its card shows it in the app */
.nd-panel { display: grid; align-content: center; }
.nd-card { padding: 1.25rem 1.375rem; border-radius: 14px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
.nd-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nd-type { display: inline-flex; align-items: center; gap: .375rem; padding: .1875rem .625rem .1875rem .5rem; border-radius: 999px; background: color-mix(in oklch, var(--db-dm-assets) 12%, var(--card)); color: var(--tx2); font-size: .75rem; font-weight: 600; }
.nd-type .ico { width: 14px; height: 14px; }
.nd-inv { font: 500 .75rem/1 var(--app-font); font-variant-numeric: tabular-nums; color: var(--tx3); }
.nd-name { margin-top: .875rem; font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; color: var(--head); }
.nd-dl { display: grid; gap: .5rem; margin-top: 1rem; }
.nd-dl > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; font-size: .875rem; }
.nd-dl dt { color: var(--tx3); }
.nd-dl dd { margin: 0; color: var(--tx); font-weight: 500; }
.nd-none { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; margin-top: 1.25rem; padding: .875rem 1rem; border-radius: 12px; background: color-mix(in oklch, oklch(70% .16 70) 12%, var(--card)); box-shadow: inset 0 0 0 1px color-mix(in oklch, oklch(70% .16 70) 35%, transparent); }
.nd-none > .ico { width: 20px; height: 20px; color: oklch(60% .15 65); }
.nd-none b { display: block; font-size: .875rem; color: var(--tx); }
.nd-none small { display: block; margin-top: .125rem; font-size: .8125rem; color: var(--tx2); }
.nd-btn { padding: .4375rem .75rem; border-radius: 8px; background: var(--color-primary); color: #fff; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
@media (max-width: 600px) {
  .nd-dl > div { grid-template-columns: minmax(0, 1fr); gap: .125rem; }
  .nd-none { grid-template-columns: auto minmax(0, 1fr); }
  .nd-none .nd-btn { grid-column: 2; justify-self: start; }
}

/* Vsakdanje delo: four compact cards; each picture shows its result and plays once on hover */
.gen { --ok: oklch(59.6% .145 163.2); }
.gen kbd { display: inline-grid; place-items: center; min-width: 1.25rem; height: 1.25rem; padding: 0 .3125rem; border-radius: 5px; background: var(--color-neutral-100); box-shadow: inset 0 -1px 0 var(--color-neutral-300), 0 0 0 1px var(--color-neutral-200); font: 600 .625rem/1 var(--app-font); font-variant-numeric: tabular-nums; color: var(--tx2); }
.g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.8vw, 28px); }
.gc { display: flex; flex-direction: column; }
.gc .panel { position: relative; height: 17rem; padding: 14px; overflow: hidden; font-size: .75rem; }
.gc-t { margin-top: 1.25rem; }
.gc-t h3 { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.15; letter-spacing: -.02em; color: var(--head); }
.gc-t p { margin-top: .5rem; font-size: .875rem; line-height: 1.55; color: var(--tx2); }
.gc .panel::after { content: ""; position: absolute; right: 10px; top: 10px; width: 6px; height: 6px; border-radius: 99px; background: var(--color-primary); opacity: 0; transition: opacity .3s; }
.gc.is-play .panel::after { opacity: .5; }
.g-cb { flex: none; display: inline-grid; place-items: center; width: 14px; height: 14px; border-radius: 4px; box-shadow: inset 0 0 0 1.5px var(--color-neutral-300); background: var(--card); color: #fff; transition: background .2s, box-shadow .2s; }
.g-cb .ico { width: 10px; height: 10px; opacity: 0; transition: opacity .2s; }
.g-cb.on { background: var(--color-primary); box-shadow: none; }
.g-cb.on .ico { opacity: 1; }
.g-lab { font-size: .625rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--tx3); }

/* search */
.gs-in { display: flex; align-items: center; gap: .5rem; height: 2.5rem; margin: -14px -14px 0; padding: 0 14px; border-bottom: 1px solid var(--line); }
.gs-in > .ico { width: 16px; height: 16px; color: var(--tx3); flex: none; }
.gs-q { flex: 1; display: flex; align-items: center; min-width: 0; font-size: .875rem; color: var(--tx); }
.gs-q i { width: 1.5px; height: 1rem; margin-left: 1px; background: var(--color-primary); opacity: 0; }
.gc.is-play .gs-q i { opacity: 1; animation: gs-blink 1s steps(2) infinite; }
@keyframes gs-blink { 50% { opacity: 0; } }
.gs-res { position: relative; height: calc(100% - 2.5rem + 14px); }
.gs-set { position: absolute; inset: 0; padding-top: .5rem; opacity: 0; transition: opacity .25s; }
.gs-set.on { opacity: 1; }
.gs-g { padding: .5rem .375rem .25rem; }
.gs-r { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); align-items: center; gap: .625rem; padding: .375rem; border-radius: 9px; }
.gs-r.is-sel { background: color-mix(in oklch, var(--color-primary) 8%, var(--card)); }
.gs-ic { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 8px; background: color-mix(in oklch, var(--c) 13%, var(--card)); color: var(--c); }
.gs-ic .ico { width: 15px; height: 15px; }
.c-st { --c: var(--db-dm-students); } .c-rv { --c: var(--db-dm-reversals); } .c-as { --c: var(--db-dm-assets); }
.gs-nm { min-width: 0; }
.gs-nm b, .gs-nm small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-nm b { font-size: .8125rem; font-weight: 600; color: var(--tx); }
.gs-nm b small { display: inline; font-weight: 500; color: var(--tx3); }
.gs-nm > small { margin-top: .0625rem; font-size: .6875rem; color: var(--tx3); }
.gs-nm mark { background: none; color: var(--color-primary); }

/* views */
.lv-tb { display: flex; align-items: center; gap: .3125rem; }
.lv-chip { display: inline-flex; align-items: center; gap: .3125rem; height: 1.625rem; padding: 0 .5rem; border-radius: 7px; box-shadow: inset 0 0 0 1px var(--line); font-size: .6875rem; font-weight: 600; color: var(--tx2); white-space: nowrap; transition: background .3s, color .3s, box-shadow .3s; }
.lv-chip .ico { width: 12px; height: 12px; }
.lv-chip .sw { position: relative; width: 1.25rem; height: .75rem; border-radius: 99px; background: var(--color-neutral-300); transition: background .3s; }
.lv-chip .sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: .5rem; height: .5rem; border-radius: 99px; background: #fff; transition: transform .3s var(--ease-out, ease); }
.lv-chip.on { background: color-mix(in oklch, var(--color-primary) 9%, var(--card)); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--color-primary) 35%, transparent); color: var(--color-primary); }
.lv-chip.on .sw { background: var(--color-primary); }
.lv-chip.on .sw::after { transform: translateX(.5rem); }
.lv-chip.is-icon { margin-left: auto; width: 1.625rem; padding: 0; justify-content: center; }
.lv-tbl { height: calc(1.5rem + 5 * 1.75rem); margin-top: .5rem; overflow: hidden; }
.lv-tr { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .7fr) minmax(0, .7fr); align-items: center; gap: .375rem; height: 1.75rem; border-top: 1px solid var(--line); overflow: hidden; transition: height .4s var(--ease-out, ease), opacity .3s, border-color .3s; }
.lv-tr.is-h { height: 1.5rem; border-top: 0; }
.lv-tr.out { height: 0; opacity: 0; border-color: transparent; }
.lv-tr > :first-child { overflow: hidden; color: var(--tx); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.lv-tr.is-h > :first-child { color: var(--tx3); font-weight: 600; }
.lv-tr > :nth-child(2) { color: var(--tx2); }
.lv-tr > .lv-lk { font-family: var(--app-font); font-variant-numeric: tabular-nums; color: var(--tx2); transition: opacity .35s, transform .4s var(--ease-out, ease); }
.lv.no-col .lv-tr > .lv-lk { opacity: 0; transform: translateX(6px); }
.lv-ft { position: absolute; left: 14px; right: 14px; bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.lv-n { color: var(--tx3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lv-n b { color: var(--tx2); }
.lv-view { display: inline-flex; align-items: center; gap: .3125rem; min-width: 0; height: 1.75rem; padding: 0 .625rem; border-radius: 7px; background: var(--color-primary); color: #fff; font-size: .6875rem; font-weight: 600; white-space: nowrap; transition: background .35s, color .35s, box-shadow .35s; }
.lv-view .ico { flex: none; width: 12px; height: 12px; }
.lv-view > span { overflow: hidden; text-overflow: ellipsis; }
.lv.no-view .lv-view { background: none; box-shadow: inset 0 0 0 1px var(--line); color: var(--tx2); }

/* import */
.im-file { display: flex; align-items: center; gap: .5rem; }
.im-file > .ico { flex: none; width: 18px; height: 18px; color: oklch(48% .12 163); }
.im-file b { font-size: .75rem; color: var(--tx); }
.im-file small { margin-left: auto; color: var(--tx3); white-space: nowrap; }
.im-map { display: grid; gap: .3125rem; margin-top: .625rem; }
.im-r { display: grid; grid-template-columns: minmax(0, 1fr) 1rem minmax(0, 1.15fr); align-items: center; gap: .3125rem; }
.im-c { overflow: hidden; height: 1.625rem; padding: 0 .5rem; border-radius: 6px; background: var(--color-neutral-100); font: 500 .6875rem/1.625rem var(--app-font); font-variant-numeric: tabular-nums; color: var(--tx2); text-overflow: ellipsis; white-space: nowrap; }
.im-ln { position: relative; height: 2px; border-radius: 2px; background: var(--line); overflow: hidden; }
.im-ln::after { content: ""; position: absolute; inset: 0; background: var(--color-primary); transition: transform .3s var(--ease-out, ease); transform-origin: left; }
.im-f { overflow: hidden; height: 1.625rem; padding: 0 .5rem; border-radius: 6px; box-shadow: inset 0 0 0 1.5px color-mix(in oklch, var(--color-primary) 45%, transparent); background: color-mix(in oklch, var(--color-primary) 5%, var(--card)); font-size: .6875rem; font-weight: 600; line-height: 1.625rem; color: var(--tx); text-overflow: ellipsis; white-space: nowrap; transition: box-shadow .3s, color .3s, background .3s; }
.im-r.off .im-ln::after { transform: scaleX(0); }
.im-r.off .im-f { box-shadow: inset 0 0 0 1px var(--line); background: none; color: transparent; }
.im-r.is-skip .im-ln::after { background: var(--color-neutral-300); }
.im-r.is-skip .im-f { box-shadow: inset 0 0 0 1px var(--line); background: none; color: var(--tx3); font-weight: 500; }
.im-out { position: absolute; left: 14px; right: 14px; bottom: 14px; }
.im-bar { height: 4px; border-radius: 99px; background: var(--color-neutral-100); overflow: hidden; }
.im-bar i { display: block; height: 100%; border-radius: inherit; background: var(--color-primary); }
.im.run .im-bar i { animation: im-run 1s cubic-bezier(.4, 0, .2, 1) both; transform-origin: left; }
@keyframes im-run { from { transform: scaleX(0); } }
.im-st { display: grid; grid-template-columns: 1fr 1fr; gap: .375rem; margin-top: .5rem; }
.im-st > div { padding: .4375rem .625rem; border-radius: 8px; background: color-mix(in oklch, var(--ok) 10%, var(--card)); transition: opacity .3s; }
.im-st b { font-family: var(--font-display); font-size: 1.125rem; letter-spacing: -.02em; color: var(--head); font-variant-numeric: tabular-nums; }
.im-st small { margin-left: .25rem; color: var(--tx2); }
.im.wait .im-st > div { opacity: .35; }

/* bulk */
.bk-tr { display: grid; grid-template-columns: 14px minmax(0, 1.3fr) minmax(0, .9fr); align-items: center; gap: .625rem; height: 1.875rem; border-top: 1px solid var(--line); transition: background .3s; }
.bk-tr.is-h { height: 1.5rem; border-top: 0; }
.bk-tr.sel { background: color-mix(in oklch, var(--color-primary) 4%, transparent); }
.bk-tr .num { overflow: hidden; font-size: .75rem; font-weight: 500; color: var(--tx); white-space: nowrap; text-overflow: ellipsis; }
.bk-tr .num small { margin-left: .375rem; font: 500 .6875rem var(--font-sans, inherit); color: var(--tx3); }
.bk-loc { position: relative; overflow: hidden; height: 1.375rem; }
.bk-loc > span { position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; height: 1.375rem; padding: 0 .4375rem; border-radius: 6px; color: var(--tx2); font-variant-numeric: tabular-nums; white-space: nowrap; transition: transform .4s var(--ease-out, ease), opacity .3s; }
.bk-loc > span + span { background: color-mix(in oklch, var(--color-primary) 10%, var(--card)); color: var(--color-primary); font-weight: 600; }
.bk-tr:not(.chg) .bk-loc > span + span { transform: translateY(100%); opacity: 0; }
.bk-tr.chg .bk-loc > span:first-child { transform: translateY(-100%); opacity: 0; }
.bk-foot { position: absolute; left: 14px; right: 14px; bottom: 14px; height: 2.5rem; }
.bk-bar, .bk-toast { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 0 .3125rem 0 .625rem; border-radius: 10px; font-weight: 600; opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .35s var(--ease-out, ease); }
.bk-bar { background: color-mix(in oklch, var(--color-primary) 9%, var(--card)); color: var(--tx2); }
.bk-toast { background: var(--color-neutral-900, #18181b); color: #fff; }
.bk-toast > span { display: inline-flex; align-items: center; gap: .375rem; min-width: 0; white-space: nowrap; }
.bk-toast > span .ico { flex: none; width: 14px; height: 14px; color: oklch(78% .13 163); }
.bk-bar.on, .bk-toast.on { opacity: 1; transform: none; }
.bk-btn { display: inline-flex; align-items: center; gap: .3125rem; height: 1.875rem; padding: 0 .625rem; border-radius: 7px; background: var(--color-primary); color: #fff; white-space: nowrap; transition: transform .15s; }
.bk-btn .ico { width: 12px; height: 12px; }
.bk-btn.is-ghost { background: rgb(255 255 255 / .12); }
.bk-btn.press { transform: scale(.93); }

@media (max-width: 1100px) { .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: clamp(36px, 5vw, 56px); } }
@media (max-width: 600px) {
  .g4 { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
}
@media (prefers-reduced-motion: reduce) { .gen *, .gen *::after { transition: none !important; animation: none !important; } }


/* area pages: halves, not a third against two thirds, every time */
.feat { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
/* a wide section breaks the left/right rhythm: heading, then the stage across the page, then the points in a row */
.feat.wide { grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 3vw, 48px); padding-top: clamp(96px, 11vw, 176px); }
.feat.wide .wide-head { max-width: 46rem; }
.feat.wide .stage { min-height: 0; padding: clamp(28px, 4vw, 72px); }
.feat ul.wide-pts { margin: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); }
.feat.wide + .feat { padding-top: clamp(96px, 11vw, 176px); }

/* area hero, wide: the heading block, then the visual across the page */
.area-hero.is-wide .grid { grid-template-columns: minmax(0, 1fr); }
.area-hero.is-wide .grid > div { max-width: 52rem; }
.area-hero.is-wide .ipmap-wrap { margin-top: clamp(40px, 5vw, 72px); }
.area-hero.is-omarice .grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }

.lk.y1 { --c: var(--y1); } .lk.y2 { --c: var(--y2); } .lk.y3 { --c: var(--y3); } .lk.y4 { --c: var(--y4); }
.lk.y1 i { opacity: 1; }
.lk.on.y1 span { color: oklch(38% .12 277); }
.rank { display: grid; gap: .5rem; margin-top: .625rem; }
.rank > div { display: grid; grid-template-columns: 2.75rem 1fr 1.5rem; align-items: center; gap: .75rem; font-size: .875rem; color: var(--tx2); }
.rank b { color: var(--tx); font-weight: 600; }
.rank > div > span:last-child { text-align: right; color: var(--tx); }
.rank .bar { height: 6px; border-radius: 99px; background: color-mix(in oklch, var(--tx) 6%, transparent); overflow: hidden; }
.rank .bar i { display: block; height: 100%; border-radius: inherit; background: var(--y3); }

/* Množična dodelitev, wide: the location's doors beside the class list */
.prev.is-wide { width: 100%; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.25rem clamp(24px, 3vw, 48px); align-items: start; }
.prev.is-wide .ok { grid-column: 1 / -1; }
.prev.is-wide .strip.lkgrid { margin-top: .625rem; gap: 4px; }

/* Oprema hero: one asset's road through the app */
.journey { margin-top: clamp(48px, 6vw, 88px); }
.jr-id { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .875rem; margin-bottom: 1.75rem; font-size: .9375rem; color: var(--tx2); }
.jr-id .ico { width: 22px; height: 22px; color: var(--color-primary); }
.jr-id .mono { font-size: .8125rem; padding: .1875rem .5rem; border-radius: 6px; background: color-mix(in oklch, var(--tx) 6%, transparent); color: var(--tx); }
.jr-id b { color: var(--tx); font-weight: 600; }
.jr-track { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); }
.jr-line { position: absolute; left: 24px; right: 24px; top: 23px; height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; }
.jr-line i { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit;
  background: linear-gradient(90deg, var(--db-dm-assets), oklch(52% .14 163) 30%, oklch(62% .15 55) 55%, var(--db-dm-reversals) 80%); transition: width 1.9s var(--ease-out) .2s; }
.journey.is-on .jr-line i { width: 83%; }
.jr-now { position: absolute; left: calc(83% + 6px); top: 3px; transform: translateX(-50%); padding: 2px 8px; border-radius: 999px; background: var(--tx); color: var(--card); font-size: .6875rem; font-weight: 600; opacity: 0; transition: opacity .4s 2s; }
.journey.is-on .jr-now { opacity: 1; }
.jr-stop { position: relative; display: flex; flex-direction: column; gap: 1rem; }
.jr-dot { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--card); box-shadow: 0 0 0 1px var(--line); color: var(--tx3); transition: background-color .45s, color .45s, box-shadow .45s, transform .45s var(--ease-out); }
.jr-dot .ico { width: 22px; height: 22px; }
.jr-stop.on .jr-dot { background: var(--c); color: #fff; box-shadow: 0 12px 24px -12px var(--c); transform: translateY(-2px); }
.jr-card { flex: 1; display: flex; flex-direction: column; gap: .375rem; padding: 1.125rem 1.25rem 1.25rem; border-radius: 16px; background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 24px 60px -40px rgb(2 33 109 / .35); transition: box-shadow .3s, transform .3s var(--ease-out); }
.jr-card time { font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: .75rem; color: var(--tx3); }
.jr-card b { font-family: var(--font-display); font-size: 1.375rem; letter-spacing: -.015em; color: var(--head); }
.jr-card span { font-size: .875rem; line-height: 1.5; color: var(--tx2); }
.jr-stop.is-ahead .jr-card { background: transparent; box-shadow: none; outline: 1.5px dashed var(--line); outline-offset: -1.5px; }
.jr-stop.is-ahead .jr-dot { background: var(--color-neutral-200); box-shadow: none; color: var(--color-neutral-500); }
.dark .jr-stop.is-ahead .jr-dot { background: var(--color-neutral-700); color: var(--color-neutral-300); }

/* Omrežje hero: the whole /24 across the page */
.ipmap.w32 { grid-template-columns: repeat(32, minmax(0, 1fr)); }
.ip-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }


@media (max-width: 1100px) {
  .area-hero.is-omarice .grid, .prev.is-wide { grid-template-columns: minmax(0, 1fr); }
  .duo-col { grid-row: auto; grid-template-rows: none; }
  .duo { row-gap: clamp(40px, 6vw, 64px); }
  .jr-track { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .jr-stop { flex-direction: row; align-items: stretch; }
  .jr-line { left: 23px; right: auto; top: 24px; bottom: 24px; width: 3px; height: auto; }
  .jr-line i { inset: 0 0 auto 0; width: 100%; height: 0; transition-property: height; }
  .journey.is-on .jr-line i { width: 100%; height: 80%; }
  .jr-now { display: none; }
}
@media (max-width: 760px) {
  .feat ul.wide-pts { grid-template-columns: minmax(0, 1fr); }
  .ipmap.w32 { grid-template-columns: repeat(16, minmax(0, 1fr)); }
}
#ip-hero { max-width: none; }
@media (min-width: 1101px) { .journey.is-on .jr-line i { width: 70%; } .jr-now { left: calc(70% + 24px); } }
.kind-demo dt { align-self: stretch; display: flex; align-items: center; }
@media (max-width: 1100px) { .feat { grid-template-columns: minmax(0, 1fr); } }
/* the journey line is drawn at once */
.jr-line i { transition: none; } .jr-now { transition: none; }

/* ---------- chat bubbles: a question and its answer (Kontakt hero) ---------- */
.qchat { position: relative; display: flex; flex-direction: column; gap: .75rem; padding: clamp(20px, 3vw, 36px); border-radius: 24px; background: color-mix(in oklch, var(--color-primary) 5%, var(--card)); box-shadow: 0 0 0 1px var(--line); }
.qchat > div { max-width: 86%; display: flex; flex-direction: column; gap: .25rem; }
.qchat .who { font-size: .6875rem; font-weight: 600; color: var(--tx3); text-transform: uppercase; letter-spacing: .06em; }
.qchat .who svg { height: 13px; width: auto; }
.qchat p { padding: .75rem 1rem; border-radius: 16px; font-size: .9375rem; line-height: 1.45; }
.qchat .qm p { background: var(--card); color: var(--tx); box-shadow: 0 0 0 1px var(--line), 0 10px 24px -18px rgb(2 33 109 / .4); border-top-left-radius: 4px; }
.qchat .am { align-self: flex-end; align-items: flex-end; }
.qchat .am p { background: var(--color-primary); color: #fff; border-top-right-radius: 4px; }
.qchat .typing p { display: flex; gap: 4px; padding: .875rem 1rem; }
.qchat .typing i { width: 6px; height: 6px; border-radius: 99px; background: var(--tx3); }
@media (prefers-reduced-motion: no-preference) {
  .qchat > div { animation: chip-in .6s var(--ease-out) both; }
  .qchat > div:nth-child(2) { animation-delay: .5s; } .qchat > div:nth-child(3) { animation-delay: 1.1s; } .qchat > div:nth-child(4) { animation-delay: 1.6s; } .qchat > div:nth-child(5) { animation-delay: 2.2s; }
  .qchat .typing i { animation: dot 1.2s ease-in-out infinite; } .qchat .typing i:nth-child(2) { animation-delay: .15s; } .qchat .typing i:nth-child(3) { animation-delay: .3s; }
}
@keyframes dot { 50% { transform: translateY(-3px); opacity: .5; } }
.qchat > div { align-items: flex-start; }
.qchat > .am { align-items: flex-end; }

/* ---------- homepage polish ---------- */
/* the date line: its dot's halo starts where the content starts */
.today-line .dot { margin-left: 4px; }
/* the current page in the menu is clearly marked */
.top nav a { position: relative; transition: color .2s; }
.top nav a[aria-current] { color: var(--color-primary); font-weight: 600; }
.top nav a[aria-current]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -20px; height: 2px; border-radius: 2px 2px 0 0; background: var(--color-primary); }
.dark .top nav a[aria-current] { color: var(--color-primary-400, oklch(70% .16 262)); }
/* a soft shadow under the header once the page scrolls */
.top { transition: box-shadow .3s, border-color .3s; }
.top.is-scrolled { box-shadow: 0 10px 30px -18px rgb(2 33 109 / .28); }
.dark .top.is-scrolled { box-shadow: 0 10px 30px -14px rgb(0 0 0 / .7); }
/* hero variant: lockers behind all three cards */
/* the year card's caption starts where the card's content starts */
.year-cap { margin-top: .875rem; padding-left: clamp(20px, 2.6vw, 40px); font-size: .75rem; color: var(--tx3); }
/* transition wizard: the done row keeps its distance from the bar above */
.wiz-done { margin-top: .875rem; flex-wrap: wrap; row-gap: .5rem; min-height: 40px; }
/* Začetek: the phone without a card */
.teacher { padding: 0; }
.teacher .cap { margin-top: .25rem; }

.wiz-steps .grp { grid-column: 1 / -1; white-space: nowrap; }
.chap-band { margin-top: 0; }
/* Poletje stays on the brand navy; its badge carries the summer colour, as the other chapters' badges carry theirs */
.chap-band { --sun: oklch(84% .12 95); }
.chap-band .chap-tag .pill { background: color-mix(in oklch, var(--sun) 12%, transparent); box-shadow: 0 0 0 1px color-mix(in oklch, var(--sun) 45%, transparent); color: #fff; }
.chap-band .chap-tag .pill i { background: var(--sun); }
.chap-band .chap-tag .dates { color: color-mix(in oklch, var(--sun) 75%, #fff); }
.chap-band .chap-tag + h2 { margin-top: 1rem; }

/* --- Titles: one line height and letter spacing per tier, everywhere ---
   .92 for big titles and 1 for secondary ones is the tightest where no descender (g, j, p) touches the
   letter below at any width; checked on the rendered letters of every title from 360 to 1440 px */
.hero h1, .page-hero h1, .area-hero h1, .contact h1, .cmp-h1,
.sec-head h2, .chap-head h2, .close h2, .band h2, .feat h2 { line-height: .92; letter-spacing: -.04em; text-wrap: balance; }
.dk h3, .duo-h h3, .gc-t h3, .row h2, .sent h2 { line-height: 1; letter-spacing: -.02em; }
/* an em spacing is inherited as pixels, so a smaller line inside a title sets its own */
.hero h1 .l2 { letter-spacing: -.04em; }
/* phone: narrow lines break right after »Poglejmo« and the like, so big titles take the secondary height */
@media (max-width: 760px) {
  .hero h1, .page-hero h1, .area-hero h1, .contact h1, .cmp-h1,
  .sec-head h2, .chap-head h2, .close h2, .band h2, .feat h2 { line-height: 1; }
}
/* hero title, desktop: three lines, the blue one sized to end where »ima svoj ritem.« ends */
.hero h1 .l1 { display: block; }
.hero h1 .l2 { font-size: .703em; white-space: nowrap; line-height: 1.15; }
/* narrower: one size for the whole title, small enough that the blue line stays whole */
.hero-grid > :first-child { container-type: inline-size; }
@media (max-width: 1100px) {
  .hero h1 .l1 { display: inline; }
  .hero h1 .l2 { font-size: 1em; line-height: inherit; }
  .hero h1 { font-size: min(clamp(3.25rem, 6.4vw, 7.25rem), 11.4cqi); }
}
@media (max-width: 760px) { .hero h1 { font-size: min(clamp(2.75rem, 13vw, 4rem), 11.4cqi); } }

/* menu: labels never wrap; tighter on mid widths, hidden where it no longer fits */
.top nav a { white-space: nowrap; }
@media (max-width: 1100px) { .top .wrap { gap: 1.5rem; } .top nav { gap: 1.25rem; } }
@media (max-width: 960px) { .top nav { display: none; } }

/* --- Menu button for narrow screens: the same nav, shown as a panel under the header --- */
.menu-btn { display: none; position: relative; flex: none; width: 40px; height: 40px; border: 0; border-radius: 12px; background: var(--card); box-shadow: 0 0 0 1px var(--line); color: var(--tx); cursor: pointer; }
.menu-btn i { position: absolute; left: 11px; right: 11px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s var(--ease-out), opacity .2s; }
.menu-btn i:nth-child(1) { top: 13px; } .menu-btn i:nth-child(2) { top: 19px; } .menu-btn i:nth-child(3) { top: 25px; }
.top.is-open .menu-btn i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.top.is-open .menu-btn i:nth-child(2) { opacity: 0; }
.top.is-open .menu-btn i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 960px) {
  .menu-btn { display: block; }
  .top .btn { margin-left: auto; }
  .top.is-open { box-shadow: 0 24px 50px -24px rgb(2 33 109 / .35); border-bottom-color: var(--line); background: var(--page); }
  .top.is-open nav { display: flex; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; gap: 0; padding: .5rem var(--gut) 1.25rem; background: var(--page); border-bottom: 1px solid var(--line); box-shadow: 0 24px 50px -24px rgb(2 33 109 / .35); }
  .top.is-open nav a { padding: .875rem 0; font-size: 1.0625rem; border-bottom: 1px solid var(--line); }
  .top.is-open nav a:last-child { border-bottom: 0; }
  .top.is-open nav a[aria-current]::after { left: -12px; right: auto; top: 50%; bottom: auto; width: 3px; height: 1.25rem; transform: translateY(-50%); border-radius: 2px; }
}
@media (max-width: 480px) { .top .wrap { gap: .75rem; } .top .btn { padding: 0 .875rem; } }

/* ---- Omarice page: hero locker list, Dodeljevanje chapter, Konec leta band, Dijaki points ---- */
/* colours for locations and classes in the pictures (no inline styles on the live site) */
.hue-blue { --c: oklch(56% .12 260); } .hue-green { --c: oklch(58% .13 150); } .hue-teal { --c: oklch(55% .1 195); }
.hue-violet { --c: oklch(56% .13 320); } .hue-orange { --c: oklch(62% .15 55); }
.ke-h { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .375rem 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.ke-h b { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.02em; color: var(--head); }
.ke-h > span { font-size: .8125rem; color: var(--tx3); }
.ke-cb { flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; box-shadow: inset 0 0 0 1.5px var(--color-neutral-300); background: var(--card); }
.ke-cb.on { background: var(--color-primary); box-shadow: none; color: #fff; }
.ke-cb .ico { width: 12px; height: 12px; }
.ke-list { display: grid; }
.ke-cls { border-bottom: 1px solid var(--line); }
.ke-row { display: flex; align-items: center; gap: .75rem; padding: .75rem 0; font-size: .9375rem; color: var(--tx); }
.ke-row b { font-weight: 600; }
.ke-n { margin-left: auto; font-size: .8125rem; color: var(--tx3); }
.ke-sub { margin: -.25rem 0 .5rem 1.875rem; padding-left: .875rem; border-left: 2px solid var(--line); }
.ke-sub .ke-row { padding: .375rem 0; font-size: .875rem; }
.ke-sub .ke-row.is-off { color: var(--tx3); }
.ke-lk { margin-left: auto; font-variant-numeric: tabular-nums; font-size: .8125rem; color: var(--tx3); }
.ke-more { padding: .25rem 0 .25rem 1.875rem; font-size: .8125rem; color: var(--tx3); }
.ke-foot { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; padding-top: 1.25rem; }
.ke-date .fl { display: block; margin-bottom: .375rem; font-size: .75rem; font-weight: 600; color: var(--tx2); }
.ke-date .inp { display: inline-flex; align-items: center; gap: .5rem; height: 2.375rem; padding: 0 .875rem; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--color-neutral-300); font-size: .875rem; color: var(--tx); }
.ke-date .ico { width: 16px; height: 16px; color: var(--tx3); }
.ke-btn { display: inline-flex; align-items: center; gap: .375rem; height: 2.375rem; padding: 0 1rem; border-radius: 10px; background: var(--color-primary); color: #fff; font-size: .875rem; font-weight: 600; white-space: nowrap; }
.ke-btn .ico { width: 14px; height: 14px; }
.ke-rel { width: 100%; max-width: 520px; justify-self: end; }
/* shared section head: label + title left, lead right */
.sx-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 4rem; align-items: end; }
.sx-head h2 { margin-top: 1rem; font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1; letter-spacing: -.035em; }
.sx-head > p { font-size: 1.125rem; line-height: 1.6; color: var(--tx2); max-width: 36rem; }
.sx-k { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; line-height: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tx3); }
.sx-k i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); }
.band .sx-k { color: #b9cbf5; }
.sx-end { --c: oklch(72% .14 355); }
/* 2 · Dodeljevanje: tinted chapter with one wide picture */
.c-asg { --m: oklch(56% .11 200); --tn: oklch(95% .03 200); --in: oklch(42% .09 200); --c: var(--m); }
.sx-asg { margin-top: clamp(80px, 9vw, 144px); }
.sx-asg .sx-fig { margin-top: clamp(36px, 4vw, 56px); }
/* 4 · Omarica: split, picture first */
.sx-card { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.sx-card .sx-fig { order: -1; display: flex; justify-content: center; }
/* 5 · Dijaki: text only, four points on the page */
.sx-stu { padding: clamp(96px, 11vw, 176px) 0 0; }
.pts4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: clamp(36px, 4vw, 56px); }
.sy + .pts4 { margin-top: clamp(56px, 6vw, 96px); }
.sy + .pts4 article { padding-top: 0; border-top: 0; }
.pts4 article { padding-top: 1.25rem; border-top: 1px solid var(--line); }
.pts4 .ico { width: 22px; height: 22px; color: var(--c); }
.pts4 h3 { margin-top: .75rem; font-family: var(--font-display); font-size: 1.25rem; line-height: 1.625rem; letter-spacing: -.015em; color: var(--head); }
.pts4 p { margin-top: .5rem; color: var(--tx2); font-size: 1rem; line-height: 1.6; }
@media (max-width: 1100px) { .pts4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; } .sx-head, .sx-card { grid-template-columns: minmax(0, 1fr); } .ke-rel { justify-self: start; } }
@media (max-width: 600px) { .pts4 { grid-template-columns: minmax(0, 1fr); } .sx-card .sx-fig { order: 0; } }
.band .sx-k + h2 { margin-top: 1rem; }
.sx-asg .panel.prev { max-width: none; }
.sx-card .panel.lcard { width: min(100%, 460px); }

/* round 2: hero picture is the locker list, location only as a colour */
.lkl { width: 100%; max-width: 620px; justify-self: end; padding: 1.25rem 1.375rem; }
.lkl-h { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.lkl-h > b { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.02em; color: var(--head); }
.lkl-h span { font-size: .8125rem; color: var(--tx2); } .lkl-h span b { color: var(--tx); }
.lkl-cs { display: flex; flex-wrap: wrap; gap: .375rem; margin: 1rem 0 .5rem; }
.lkl-c { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: 999px; font-size: .75rem; font-weight: 500; color: var(--tx2); box-shadow: inset 0 0 0 1px var(--line); }
.lkl-c i { width: 8px; height: 8px; border-radius: 3px; background: var(--c); }
.lkl-c b { font-weight: 600; color: var(--tx); font-variant-numeric: tabular-nums; }
.lkl-c.on { background: var(--color-primary); color: #fff; box-shadow: none; } .lkl-c.on b { color: #fff; }
.lkl-r { display: grid; grid-template-columns: 4rem minmax(0, 1fr) minmax(0, 1.2fr) 7.5rem; align-items: center; gap: .75rem; padding: .625rem 0; border-top: 1px solid var(--line); font-size: .875rem; color: var(--tx2); }
.lkl-r.is-h { border-top: 0; padding: .5rem 0 .375rem; font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--tx3); }
.lkl-n { justify-self: start; padding: .125rem .5rem; border-radius: 6px; background: var(--c); color: #fff; font-weight: 600; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.lkl-who b { margin-right: .375rem; font-weight: 600; color: var(--tx); }
.lkl-who.is-free { color: oklch(52% .13 163); font-weight: 500; }
.lkl-r .st-pill { justify-self: start; }
@media (max-width: 600px) { .lkl { padding: 1rem; } .lkl-r { grid-template-columns: 3.5rem minmax(0, 1fr) auto; } .lkl-loc { display: none; } .lkl-r.is-h span:nth-child(2) { display: none; } }
.lkl-cs { flex-wrap: nowrap; }
@media (max-width: 600px) { .lkl-cs { overflow: hidden; mask-image: linear-gradient(to right, #000 82%, transparent); } .lkl-c { flex: none; } }
.sx-card { --c: var(--color-primary); } .sx-stu { --c: oklch(62% .15 55); }
.lcard .nlk { margin-top: .625rem; } .lcard .near { margin-top: .75rem; } .lcard .lhist { margin-top: .5rem; }
/* Omarice motion: hero rows come in; a class lights its lockers; the card's neighbours; the release plays */
.lkl-r:not(.is-h) { transition: opacity .45s var(--ease-out), transform .45s var(--ease-out); }
.lkl.is-pre .lkl-r:not(.is-h) { opacity: 0; transform: translateY(8px); transition: none; }
.prev .strip .lk, .prev .cls > [data-cls] { transition: opacity .25s; }
.prev .cls > [data-cls] { cursor: pointer; }
.prev.is-focus .strip .lk.on:not(.is-hl) { opacity: .18; }
.prev.is-focus .cls > [data-cls]:not(.is-hl) { opacity: .45; }
.lcard { transition: opacity .14s; } .lcard.is-swap { opacity: .35; }
/* every locker the card opens keeps the same height: two lines for who, buttons on one line */
.lcard .who { min-height: 4.75rem; } @media (max-width: 600px) { .lcard .who { min-height: 6rem; } } .lcard .who > span:first-child { min-width: 0; }
.lcard .who .acts { flex: none; } .lcard .who .acts span { white-space: nowrap; }
.lcard .nlk { position: relative; }
.lcard .nlk [role="button"] { cursor: pointer; }
.lcard .nlk [role="button"]:hover i, .lcard .nlk [role="button"]:focus-visible i { opacity: 1; filter: brightness(1.08); }
.lcard .nlk [role="button"]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: 4px; }
.lcard .nlk .nb-tip { position: absolute; bottom: calc(100% + 6px); z-index: 2; padding: .3125rem .625rem; border-radius: 8px; background: var(--tx); color: var(--card); font-family: var(--app-font); font-size: .8125rem; font-weight: 500; line-height: 1.25rem; white-space: nowrap; box-shadow: 0 8px 24px -10px rgb(0 0 0 / .4); opacity: 0; transform: translateY(3px); transition: opacity .15s, transform .15s; pointer-events: none; }
.lcard .nlk .nb-tip.on { opacity: 1; transform: none; }
.ke-rel { position: relative; }
.ke-list, .ke-foot { transition: opacity .3s; }
.ke-foot { position: relative; }
.ke-btn { transition: transform .15s, background-color .2s; }
.ke-btn.press { transform: scale(.95); }
.ke-btn.is-ghost { background: var(--card); color: var(--tx); box-shadow: inset 0 0 0 1px var(--line); }
.ke-bar { position: absolute; left: 0; right: 0; top: .375rem; height: 3px; border-radius: 99px; overflow: hidden; background: transparent; }
.ke-bar i { display: block; width: 0; height: 100%; background: var(--color-primary); }
.ke-rel.is-run .ke-bar { background: var(--line); }
.ke-rel.is-run .ke-bar i { width: 100%; transition: width 1.2s var(--ease-out); }
.ke-rel.is-done .ke-list { opacity: .35; }
.ke-rel.is-done .ke-foot { opacity: 0; }
.ke-done { position: absolute; left: clamp(20px, 2.6vw, 36px); right: clamp(20px, 2.6vw, 36px); bottom: clamp(20px, 2.6vw, 36px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .625rem .625rem .625rem 1rem; border-radius: 12px; background: color-mix(in oklch, oklch(59.6% .145 163.2) 12%, var(--card)); font-size: .875rem; font-weight: 500; color: var(--tx); opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s; pointer-events: none; }
.ke-done .ke-msg-w { display: inline-flex; align-items: center; gap: .5rem; } .ke-done .ke-msg-w .ico { width: 18px; height: 18px; color: oklch(59.6% .145 163.2); }
.ke-rel.is-done .ke-done { opacity: 1; transform: none; }
/* Dijaki: one student through the school years */
.sy { margin-top: clamp(40px, 4.5vw, 64px); padding: clamp(24px, 3vw, 40px); }
.sy-who { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .75rem; font-size: .9375rem; color: var(--tx2); }
.sy-who b { font-family: var(--font-display); font-size: 1.375rem; letter-spacing: -.015em; color: var(--head); }
.sy-line { position: relative; list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem; }
.sy-line::before, .sy-line::after { content: ""; position: absolute; left: 7px; right: 0; top: 6px; height: 2px; border-radius: 2px; background: var(--line); }
.sy-line::after { right: 20%; background: var(--c); transform-origin: left; transition: transform 3.2s cubic-bezier(.45, 0, .25, 1) .2s; }
.sy-st { position: relative; padding-top: 1.75rem; transition: opacity .4s var(--ease-out), transform .4s var(--ease-out); }
.sy-st::before { content: ""; position: absolute; left: 0; top: 0; width: 14px; height: 14px; border-radius: 99px; background: var(--card); box-shadow: inset 0 0 0 3px var(--c); }
.sy-st.is-now::before { background: var(--c); box-shadow: 0 0 0 4px color-mix(in oklch, var(--c) 22%, transparent); }
.sy-st.is-end::before { box-shadow: inset 0 0 0 2px var(--color-neutral-400); }
.sy-st time { display: block; font-size: .8125rem; font-weight: 600; color: var(--tx3); font-variant-numeric: tabular-nums; }
.sy-row { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .5rem; margin-top: .5rem; font-size: .875rem; color: var(--tx2); }
.sy-row b { font-family: var(--font-display); font-size: 1.125rem; color: var(--head); }
.sy-lk { padding: .0625rem .4375rem; border-radius: 6px; background: var(--c); color: #fff; font-weight: 600; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.sy-st p { margin-top: .375rem; font-size: .9375rem; line-height: 1.5; color: var(--tx); }
.sy-st.is-end p { color: var(--tx2); }
@media (hover: hover) { .sy-line:hover .sy-st:not(:hover) { opacity: .4; } }
@keyframes sy-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: no-preference) {
  .js .sy:not(.in) .sy-line::after { transform: scaleX(0); }
  .js .sy:not(.in) .sy-st { opacity: 0; }
  .sy.in .sy-st { animation: sy-in .6s var(--ease-out) backwards; animation-delay: .2s; }
  .sy.in .sy-st:nth-child(2) { animation-delay: 1s; } .sy.in .sy-st:nth-child(3) { animation-delay: 1.8s; }
  .sy.in .sy-st:nth-child(4) { animation-delay: 2.6s; } .sy.in .sy-st:nth-child(5) { animation-delay: 3.4s; }
}
@media (max-width: 760px) {
  .sy-line { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .sy-line::before, .sy-line::after { left: 6px; right: auto; top: 6px; bottom: 6px; width: 2px; height: auto; }
  .sy-line::after { bottom: 20%; transform-origin: top; }
  .js .sy:not(.in) .sy-line::after { transform: scaleY(0); }
  .sy-st { padding: 0 0 0 1.75rem; }
}
/* Omarice: a picture under each Dodeljevanje point (suggestions, Razveljavitve, the class list), usage on the locker card */
/* 2 · the class list, in the same frame as the other two pictures */
.chap .points .pt-fig .pf-l { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr) 3.25rem 3.5rem 3.5rem; align-items: center; gap: .375rem; padding: .3125rem 0; border-bottom: 1px solid var(--line); font-size: .75rem; color: var(--tx); }
.chap .points .pt-fig .pf-l.is-h { padding-top: .5rem; font-size: .625rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--tx3); }
.pf-l.is-h span:nth-child(n+4) { text-align: center; }
.pf-n { color: var(--tx3); font-variant-numeric: tabular-nums; }
.pf-nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-o { color: var(--tx2); font-variant-numeric: tabular-nums; }
.pf-l .bx { justify-self: center; display: inline-grid; place-items: center; width: 13px; height: 13px; border-radius: 3px; box-shadow: inset 0 0 0 1.5px var(--color-neutral-400); }
.pf-l .bx:has(.ico) { background: var(--color-primary); box-shadow: none; } .pf-l .bx .ico { width: 10px; height: 10px; color: #fff; }
.pf-l .blank { display: inline-block; width: 28px; height: 10px; border-bottom: 1px solid var(--color-neutral-400); }
.pf-pr { display: inline-flex; align-items: center; gap: .25rem; } .pf-pr .ico { width: 12px; height: 12px; }
/* 3 · usage on the card */
.lus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: .5rem; }
.lus span { display: grid; align-content: space-between; gap: .125rem; padding: .5rem .625rem; border-radius: 10px; background: color-mix(in oklch, var(--tx) 3.5%, var(--card)); }
.lus small { font-size: .6875rem; line-height: 1rem; color: var(--tx3); }
.lus b { font-family: var(--font-display); font-size: 1.0625rem; color: var(--head); font-variant-numeric: tabular-nums; }
.lh-tools { display: flex; align-items: center; justify-content: space-between; }
.lh-tools .tools { display: flex; gap: .25rem; }
.lh-tools .tools .ico { width: 26px; height: 26px; padding: 5px; border-radius: 7px; color: var(--tx2); box-shadow: inset 0 0 0 1px var(--line); }

/* the three points carry a picture each, bottoms in line */
#dodeljevanje .points article { display: flex; flex-direction: column; }
#dodeljevanje .points article > p { margin-bottom: 1.25rem; }
.pt-fig { margin-top: auto; height: 210px; padding: 14px 16px; overflow: hidden; font-size: .8125rem; -webkit-mask-image: linear-gradient(#000 78%, transparent); mask-image: linear-gradient(#000 78%, transparent); }
.pf-h { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding-bottom: .625rem; border-bottom: 1px solid var(--line); }
.pf-h b { font-family: var(--font-display); font-size: .9375rem; color: var(--head); }
.pf-h span { font-size: .75rem; color: var(--tx3); }
.chap .points .pt-fig .pf-g { margin-top: .625rem; font-size: .6875rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--tx3); }
.pf-r { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .625rem; padding: .375rem 0; }
.pf-lk { padding: .0625rem .4375rem; border-radius: 6px; background: oklch(58% .13 150); color: #fff; font-weight: 600; font-size: .75rem; font-variant-numeric: tabular-nums; }
.pf-why { color: var(--tx2); font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-b { padding: .1875rem .5rem; border-radius: 7px; font-size: .6875rem; font-weight: 600; color: var(--tx); box-shadow: inset 0 0 0 1px var(--line); background: var(--card); white-space: nowrap; }
.pf-b.on { color: oklch(48% .12 163); box-shadow: none; background: color-mix(in oklch, oklch(59.6% .145 163.2) 12%, var(--card)); }
.pf-undo { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .5rem; padding: .5rem .625rem; border-radius: 10px; background: var(--tx); color: var(--card); font-size: .75rem; }
.pf-undo b { display: inline-flex; align-items: center; gap: .25rem; font-weight: 600; white-space: nowrap; }
.pf-undo .ico { width: 13px; height: 13px; }
.pf-u { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .375rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.pf-ut b { display: block; font-weight: 600; font-size: .8125rem; color: var(--tx); }
.pf-ut small { display: block; font-size: .6875rem; color: var(--tx3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-done { grid-column: 2 / -1; font-size: .6875rem; color: var(--tx3); }

/* ---------- Oprema ---------- */
/* toc and section hues */
.toc .c-ast { --c: var(--db-dm-assets); } .toc .c-rev { --c: var(--db-dm-reversals); } .toc .c-rep { --c: oklch(62% .15 55); }
.toc .c-inv { --c: oklch(52% .14 163); } .toc .c-ovr { --c: var(--color-primary); }
.c-ast { --m: var(--db-dm-assets); --tn: oklch(95% .03 305); --in: oklch(42% .1 305); --c: var(--m); }
.dark .c-ast { --tn: oklch(29% .045 305); --in: oklch(93% .05 305); }
.dark .ac-pill { color: oklch(82% .07 280); }
.dark .c-asg { --tn: oklch(29% .045 200); --in: oklch(93% .05 200); }
.sx-inv { --c: oklch(76% .14 163); }

/* asset card */
.ac { padding: clamp(20px, 2.4vw, 32px); }
.ac-h { display: flex; align-items: center; gap: .875rem; padding-bottom: 1.125rem; border-bottom: 1px solid var(--line); }
.ac-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: color-mix(in oklch, var(--m) 12%, var(--card)); color: var(--m); }
.ac-ic .ico { width: 22px; height: 22px; }
.ac-t { display: grid; } .ac-t small { font-size: .75rem; color: var(--tx3); }
.ac-t b { font-family: var(--font-display); font-size: 1.375rem; letter-spacing: -.015em; color: var(--head); }
.ac-pill { margin-left: auto; padding: .25rem .625rem; border-radius: 99px; font-size: .75rem; font-weight: 600; color: var(--db-dm-reversals); background: color-mix(in oklch, var(--db-dm-reversals) 12%, var(--card)); }
.ac-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 44px); margin-top: 1.25rem; }
.ac-lab { font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--tx3); }
.ac-dl { margin-top: .5rem; display: grid; }
.ac-dl div { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .75rem; padding: .4375rem 0; border-bottom: 1px solid var(--line); font-size: .875rem; }
.ac-dl dt { color: var(--tx3); } .ac-dl dd { color: var(--tx); margin: 0; }
.ac-age { display: grid; grid-template-columns: repeat(8, 1fr); gap: .375rem; align-items: end; height: 120px; margin-top: .75rem; }
.ac-age span { display: grid; grid-template-rows: 1fr auto; height: 100%; gap: .25rem; text-align: center; }
.ac-age i { align-self: end; border-radius: 4px 4px 1px 1px; background: color-mix(in oklch, var(--m) 22%, var(--card)); }
.ac-age .is-me i { background: var(--m); } .ac-age small { font-size: .6875rem; color: var(--tx3); } .ac-age .is-me small { color: var(--tx); font-weight: 600; }
.ac-note { margin-top: .625rem; font-size: .8125rem; color: var(--tx2); }
.ac-note + .ac-note { margin-top: .125rem; color: var(--tx3); }

/* small pictures */
.pf-fn { font-weight: 600; color: var(--tx); font-size: .8125rem; }
.ls { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: .75rem; }
.ls i { aspect-ratio: 52.5 / 29.7; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--line); background: var(--card); }
.ls i.is-used { background: repeating-linear-gradient(135deg, var(--line) 0 2px, transparent 2px 6px); box-shadow: none; }
.ls i.is-start { box-shadow: inset 0 0 0 2px var(--m); background: color-mix(in oklch, var(--m) 10%, var(--card)); }
.ls-note { margin-top: .5rem; font-size: .75rem; color: var(--tx2); } .ls-note b { color: var(--m); }
.sc2-a { display: flex; align-items: center; gap: .625rem; margin-top: .5rem; padding: .5rem .75rem; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); font-size: .8125rem; font-weight: 600; color: var(--tx); }
.sc2-a .ico { width: 15px; height: 15px; color: var(--tx3); }
.sc2-a.on { background: var(--color-primary); color: #fff; box-shadow: none; } .sc2-a.on .ico { color: #fff; }

/* Izposoje: reverz with the return card over its corner */
.rv-fig { position: relative; padding: 0 0 56px; }
.rv-fig .doc-a4 { box-shadow: 0 1px 2px rgb(0 0 0 / .06), 0 24px 50px -28px rgb(0 0 0 / .35); }
.rt { position: absolute; right: 0; bottom: 0; width: 250px; padding: 14px 16px; font-size: .8125rem; }
.rt-lab { margin-top: .625rem; font-size: .6875rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--tx3); }
.rt-o { display: flex; align-items: center; gap: .5rem; padding: .3125rem 0; color: var(--tx2); }
.rt-o i { width: 14px; height: 14px; border-radius: 99px; box-shadow: inset 0 0 0 1.5px var(--color-neutral-400); }
.rt-o.on { color: var(--tx); font-weight: 600; } .rt-o.on i { box-shadow: inset 0 0 0 4px var(--color-primary); }
.rt-next { display: flex; align-items: center; gap: .375rem; margin-top: .625rem; padding: .4375rem .75rem; border-radius: 9px; background: oklch(62% .15 55); color: #fff; font-weight: 600; font-size: .75rem; width: max-content; }
.rt-next .ico { width: 13px; height: 13px; }

/* Inventura in odpis: phone + rooms + write-off steps on the band */
.inv-fig { display: flex; gap: 24px; align-items: center; justify-content: center; }
.inv-fig > .phone { flex: none; margin: 0; }
.inv-col { display: grid; gap: 16px; width: min(100%, 340px); }
.od { padding: 14px 16px; }
.od-st { display: grid; grid-template-columns: 26px 1fr; gap: .625rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid var(--line); font-size: .8125rem; }
.od-st:last-child { border-bottom: 0; }
.od-st .n { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 99px; background: color-mix(in oklch, var(--db-crit) 12%, var(--card)); color: var(--db-crit); font-weight: 600; font-size: .75rem; }
.od-st b { display: block; font-weight: 600; color: var(--tx); } .od-st small { display: block; color: var(--tx3); font-size: .75rem; }

/* Pregled */
.pg-fig { display: grid; gap: 20px; max-width: 480px; justify-self: end; width: 100%; }
.pg-al { padding: 18px 20px; } .pg-hi { padding: 18px 22px; } .pg-hi .hist { margin-top: .5rem; }

@media (max-width: 1100px) {
  .ac-g { grid-template-columns: 1fr 1fr; } .ac-g > div:last-child { grid-column: 1 / -1; }
  .inv-fig { flex-direction: column; }
}
@media (max-width: 640px) {
  .ac-g { grid-template-columns: 1fr; } .ac-dl div { grid-template-columns: 8.75rem minmax(0, 1fr); }
  .rv-fig { padding: 0; display: grid; gap: 16px; } .rt { position: static; width: auto; }
  .pg-fig { justify-self: stretch; }
}

.c-ast .points article { display: flex; flex-direction: column; }
.c-ast .points article > p { margin-bottom: 1rem; }
.ls-w { display: flex; gap: 1rem; margin-top: .75rem; }
.ls { flex: none; width: 112px; grid-template-columns: repeat(4, 1fr); gap: 3px; margin: 0; padding: 6px; border-radius: 4px; box-shadow: 0 0 0 1px var(--line); }
.ls-side { display: grid; align-content: start; gap: .25rem; } .ls-side .ls-note { margin: 0; }
.rv-fig .doc-a4 { transform: none; }
.inv-rooms { padding: 14px 16px; }
.rm-r { display: grid; grid-template-columns: 1fr auto; gap: .25rem .75rem; padding: .5rem 0; font-size: .8125rem; color: var(--tx); }
.rm-c { color: var(--tx2); font-variant-numeric: tabular-nums; }
.rm-b { grid-column: 1 / -1; height: 5px; border-radius: 9px; background: var(--color-neutral-200); overflow: hidden; } .rm-b i { display: block; height: 100%; background: oklch(52% .14 163); }

/* hues per section: toc, journey stops, section labels */
.c-rev { --c: var(--db-dm-reversals); } .c-rep { --c: oklch(62% .15 55); } .c-inv { --c: oklch(52% .14 163); }
.c-wo { --c: var(--db-crit); } .c-ovr { --c: var(--color-primary); }
.jr-stop.c-ast { --c: var(--db-dm-assets); }
.feat .sx-k + h2 { margin-top: 1rem; }
.ac-age i { height: 0; transition: height .9s var(--ease-out); }
.rm-b i { width: 0; transition: width .6s var(--ease-out); }

/* Oprema motion: type chips, labels, scan, return, write-off, alerts */
.ac-types { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.ac-ty { display: inline-flex; align-items: center; height: 2.25rem; padding: 0 1rem; border: 0; border-radius: 999px; background: var(--card); box-shadow: 0 0 0 1px var(--line); font: inherit; font-size: .875rem; font-weight: 600; color: var(--tx2); cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.ac-ty:hover { color: var(--tx); box-shadow: 0 0 0 1px var(--m); }
.ac-ty.on { background: var(--m); color: #fff; box-shadow: none; }
.ac-ty:focus-visible { outline: 2px solid var(--m); outline-offset: 2px; }
.ac-g, .ac-t, .ac-ic, .ac-pill { transition: opacity .16s; }
.ac.is-swap .ac-g, .ac.is-swap .ac-t, .ac.is-swap .ac-ic, .ac.is-swap .ac-pill { opacity: 0; }
.ac-dl dt, .ac-dl dd { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-t { min-width: 0; } .ac-t b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-pill { flex: none; }
.ac-pill.is-ok { color: oklch(48% .12 163); background: color-mix(in oklch, oklch(59.6% .145 163.2) 12%, var(--card)); }
.ac-pill.is-rep { color: oklch(52% .14 55); background: color-mix(in oklch, oklch(62% .15 55) 14%, var(--card)); }
.dark .ac-pill.is-ok { color: oklch(80% .12 163); } .dark .ac-pill.is-rep { color: oklch(82% .12 60); }
.ls i { transition: background-color .3s, box-shadow .3s; }
.ls i.is-print { background: linear-gradient(to bottom, transparent 30%, color-mix(in oklch, var(--m) 30%, transparent) 30% 45%, transparent 45% 60%, color-mix(in oklch, var(--m) 18%, transparent) 60% 72%, transparent 72%), color-mix(in oklch, var(--m) 8%, var(--card)); }
.ls i.is-start.is-print { box-shadow: inset 0 0 0 1.5px var(--m); }
.sc2-a { transition: background-color .25s, color .25s, box-shadow .25s; } .sc2-a .ico { transition: color .25s; }
.press { transform: scale(.95); transition: transform .12s; }
.rt-o { transition: color .2s; } .rt-o i { transition: box-shadow .2s; }
.rt-next { transition: opacity .3s var(--ease-out), transform .3s var(--ease-out); }
.rt.is-pre .rt-next { opacity: 0; transform: translateY(4px); }
.rt-done { display: none; align-items: center; gap: .375rem; margin-top: .625rem; font-size: .75rem; font-weight: 600; color: oklch(48% .12 163); }
.rt-done .ico { width: 14px; height: 14px; } .dark .rt-done { color: oklch(80% .12 163); }
.rt.is-done .rt-next { display: none; } .rt.is-done .rt-done { display: flex; animation: sy-in .4s var(--ease-out) both; }
@keyframes card-new { from { opacity: 0; transform: translateY(-8px) scale(.97); } }
.od-st .n .ico { display: none; width: 13px; height: 13px; }
.od-st .n { transition: background-color .3s, color .3s; }
.od-st.is-done .n { background: oklch(52% .14 163); color: #fff; } .od-st.is-done .n i { display: none; } .od-st.is-done .n .ico { display: block; animation: sy-in .3s var(--ease-out) both; }
.od-st .n i { font-style: normal; }
.pg-fig .db-ar { transition: opacity .5s var(--ease-out), transform .5s var(--ease-out); transition-delay: var(--d, 0ms); }
.pg-fig.is-pre .db-ar { opacity: 0; transform: translateX(16px); }
.pg-fig .hist .is-new { display: grid; overflow: hidden; max-height: 4rem; transition: max-height .6s var(--ease-out) 1.2s, opacity .5s 1.4s; }
.pg-fig.is-pre .hist .is-new { max-height: 0; opacity: 0; padding-block: 0; }

/* Popravila: the app's repair board (blocks/board.css) — plain columns, cards tinted by their state */
.rb { --honey: oklch(.82 .14 78); --honey-ink: oklch(.32 .07 62); --green-600: oklch(62.7% .194 149.2); --green-700: oklch(52.7% .154 150.1);
  width: 100%; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.rb [data-tone] { --tone-ink: #fff; }
.rb [data-tone="reported"] { --tone: color-mix(in oklch, var(--color-primary) 74%, white); }
.rb [data-tone="house"] { --tone: var(--color-primary); }
.rb [data-tone="service"] { --tone: color-mix(in oklch, var(--color-primary) 68%, black); }
.rb [data-tone="waiting"] { --tone: var(--honey); --tone-ink: var(--honey-ink); }
.rb [data-tone="complete"] { --tone: var(--green-600); }
.rcol { min-width: 0; display: flex; flex-direction: column; }
.rcol-head { display: flex; justify-content: center; min-height: 2.25rem; padding: .25rem 0 .5rem; }
.rcol-title { display: inline-flex; align-items: baseline; gap: .375rem; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-neutral-800); white-space: nowrap; }
.dark .rcol-title { color: var(--color-neutral-100); }
.rcol-count { font-weight: 500; letter-spacing: 0; color: var(--color-neutral-400); font-variant-numeric: tabular-nums; }
.rcol-cards { display: flex; flex-direction: column; gap: .875rem; padding: .625rem .25rem 1rem; }
.bc { position: relative; display: flex; flex-direction: column; gap: .375rem; padding: 0 .875rem .625rem; border-radius: .375rem;
  background: color-mix(in oklch, var(--tone) 5%, #fff); box-shadow: 0 1px 3px rgb(0 0 0 / .08), 0 0 0 1px color-mix(in oklch, var(--tone) 18%, transparent); text-align: left; }
.dark .bc { background: color-mix(in oklch, var(--tone) 9%, var(--color-neutral-900)); box-shadow: 0 0 0 1px color-mix(in oklch, var(--tone) 30%, transparent); }
.bc-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-width: 0; margin: 0 0 .25rem -.875rem; }
.bc-tag { display: inline-flex; border-radius: .375rem 0 .375rem 0; background: var(--tone); color: var(--tone-ink); font-size: .75rem; font-weight: 600; line-height: 1.5rem; }
.bc-tag { padding: 0 .625rem; white-space: nowrap; font-variant-numeric: tabular-nums slashed-zero; } .bc-tag b { font-weight: 800; }
.bc-name { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-display); font-size: 1.0625rem; font-weight: var(--font-weight-display); line-height: 1.3;
  color: color-mix(in oklch, var(--tone) 30%, var(--color-neutral-900)); }
.dark .bc-name { color: color-mix(in oklch, var(--tone) 25%, #fff); }
.bc-fault { margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .8125rem; line-height: 1.25rem; color: var(--color-neutral-600); }
.dark .bc-fault { color: var(--color-neutral-300); }
.bc-meta { display: flex; align-items: center; min-width: 0; margin-top: .125rem; padding-top: .4375rem; border-top: 1px solid color-mix(in oklch, var(--tone) 14%, transparent);
  font-size: .75rem; color: color-mix(in oklch, var(--tone) 55%, var(--color-neutral-700)); }
.bc-meta > span { display: inline-flex; align-items: center; gap: .25rem; min-width: 0; }
.bc-meta > span + span { margin-left: .5rem; padding-left: .5rem; border-left: 1px solid color-mix(in oklch, var(--tone) 16%, transparent); }
.bc-meta .tr { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc .ico { width: 14px; height: 14px; flex: none; }
.bc-warranty { flex: none; color: var(--green-700); }
.bc-age { flex: none; display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; font-size: .75rem; font-weight: 500; font-variant-numeric: tabular-nums;
  color: color-mix(in oklch, var(--tone) 55%, var(--color-neutral-700)); }
.bc-age.is-waiting { padding: .125rem .375rem; border-radius: .375rem; background: color-mix(in oklch, var(--honey) 25%, transparent); color: var(--honey-ink); }
.bc-age.is-waiting .ico { color: var(--honey); }
@media (max-width: 760px) { .rb { grid-template-columns: minmax(0, 1fr); } }
.rb .bc { transition: transform .6s var(--ease-out), background-color .4s, box-shadow .4s; }
.rb .bc .bc-tag { transition: background-color .4s, color .4s; }
.rb .bc.moving { box-shadow: 0 0 0 2px var(--tone), 0 16px 30px -14px rgb(0 0 0 / .4); }
/* two cards at most per column: every card the same height, every column room for two, so the board never grows */
.rb .bc-fault { min-height: 2.5rem; }
.rb .bc-name, .rb .bc-meta { flex: none; }
.rb { --bc-h: 9.1875rem; }
.rcol-cards { min-height: calc(2 * var(--bc-h) + .875rem + 1.625rem); }
.rcol[data-max="1"] .rcol-cards { min-height: calc(var(--bc-h) + 1.625rem); }
@media (min-width: 761px) { .rcol[data-max="1"] .rcol-cards { min-height: calc(2 * var(--bc-h) + .875rem + 1.625rem); } }
.dark .bc-meta { color: color-mix(in oklch, var(--tone) 35%, var(--color-neutral-300)); border-top-color: color-mix(in oklch, var(--tone) 25%, transparent); }
.dark .bc-age { color: color-mix(in oklch, var(--tone) 35%, var(--color-neutral-300)); } .dark .bc-age.is-waiting { color: var(--honey); }
.dark .bc-warranty { color: oklch(79.2% .209 151.7); }

/* ---------- Omrežje: splits that alternate, one full-width chapter (Naslovi in naprave) breaks them ---------- */
.toc .c-nw, .c-nw { --c: var(--color-primary); } .toc .c-ad, .c-ad { --c: oklch(55% .12 215); } .c-dev { --c: var(--db-dm-assets); }
.toc .c-rsv, .c-rsv { --c: oklch(70% .16 70); } .toc .c-al, .c-al { --c: var(--db-crit); }
.c-nw { --m: var(--color-primary); }
.sx-rsv { --c: oklch(80% .14 75); }
.ip-legend .k-u { background: var(--color-primary); } .ip-legend .k-f { background: color-mix(in oklch, var(--color-primary) 14%, var(--card)); }
.ip-legend .k-r { background: repeating-linear-gradient(-45deg, oklch(78% .14 75) 0 2px, transparent 2px 4px); }
.ip-legend .k-x { background: var(--tx); } .ip-legend .k-n { box-shadow: inset 0 0 0 1px var(--line); }
.om-pic { display: grid; } .om-pic > .panel, .om-pic > .rsv { width: auto; max-width: none; }
.copy.is-sm { padding: .25rem .5rem; font-size: .75rem; }
.nf-in { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: 40px; padding: 0 .75rem; border-radius: 8px; background: var(--card);
  box-shadow: inset 0 0 0 1px var(--line); font-size: .875rem; color: var(--tx); }
.nf-in .ico { width: 14px; height: 14px; color: var(--tx3); }
.nf-in, .ahist b, .dv-t b, .nb-t small, .nb-v, .np-ns, .nset-s dd, .np-l b, .np-pc { font-family: var(--app-font); font-variant-numeric: tabular-nums; }

/* network card: settings, usage, unregistered ranges */
.np { padding: clamp(20px, 2.4vw, 28px); }
.np-h { display: flex; align-items: center; gap: .875rem; padding-bottom: 1.125rem; border-bottom: 1px solid var(--line); }
.np-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: color-mix(in oklch, var(--m) 12%, var(--card)); color: var(--m); }
.np-ic .ico { width: 22px; height: 22px; }
.np-t { display: grid; } .np-t small { font-size: .75rem; color: var(--tx3); } .np-t b { font-family: var(--font-display); font-size: 1.375rem; letter-spacing: -.015em; color: var(--head); }
.np-ns { margin-left: auto; font-size: .9375rem; color: var(--tx2); }
.np-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.25rem; margin-top: 1.25rem; }
.np-g > div:first-child { padding-right: clamp(16px, 2.4vw, 32px); }
.np-g > div:nth-child(2) { padding-left: clamp(16px, 2.4vw, 32px); border-left: 1px solid var(--line); }
.np-g > div:nth-child(3) { grid-column: 1 / -1; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.np-lab { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 28px; margin: 0; font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--tx3); }
.np-lab .copy { text-transform: none; letter-spacing: 0; }
.nset-s { display: grid; grid-template-columns: auto 1fr; gap: .4375rem 1rem; margin: .75rem 0 0; font-size: .875rem; }
.nset-s dt { color: var(--tx3); } .nset-s dd { margin: 0; color: var(--tx); }
.np-pc { font-size: 1.5rem; font-weight: 500; letter-spacing: -.01em; color: var(--tx); text-transform: none; }
.np-bar { display: flex; gap: 2px; height: 10px; margin-top: 1rem; border-radius: 9px; overflow: hidden; }
.np-bar i { display: block; } .np-bar .u { width: 55.5%; background: var(--color-primary); }
.np-bar .r { width: 4.7%; background: repeating-linear-gradient(-45deg, oklch(78% .14 75) 0 2px, color-mix(in oklch, oklch(78% .14 75) 30%, var(--card)) 2px 4px); }
.np-bar .f { flex: 1; background: color-mix(in oklch, var(--color-primary) 14%, var(--card)); }
.np-leg { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 1rem; margin-top: 1rem; font-size: .8125rem; color: var(--tx2); }
.np-l { display: inline-flex; align-items: center; gap: .4375rem; } .np-l b { font-weight: 500; color: var(--tx); }
.np-l i { width: 10px; height: 10px; border-radius: 3px; flex: none; } .np-l .u { background: var(--color-primary); } .np-l .f { background: color-mix(in oklch, var(--color-primary) 14%, var(--card)); }
.np-l .r { background: repeating-linear-gradient(-45deg, oklch(78% .14 75) 0 2px, transparent 2px 4px); } .np-l .n { box-shadow: inset 0 0 0 1px var(--line); }
.unreg.is-sm { padding-top: .5rem; border-top: 0; gap: .625rem; }
.unreg.is-sm div > span:first-child { display: grid; } .unreg.is-sm small { color: var(--tx3); }

/* Naslovi in naprave: tinted chapter, two pictures side by side with their captions */
.om-full { --m: oklch(55% .12 215); --tn: oklch(95.5% .025 215); --in: oklch(38% .08 215); --c: var(--m); margin-top: clamp(96px, 11vw, 176px); }
.dark .om-full { --tn: oklch(29% .04 215); --in: oklch(93% .05 215); }
.om-duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 clamp(24px, 4vw, 64px); margin-top: clamp(36px, 4vw, 56px); }
.om-cf { display: grid; } .om-cf > .panel { width: auto; }
.om-cap { margin-top: 1.75rem; }
.om-cap h3 { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.2; letter-spacing: -.015em; color: var(--head); }
.om-cap > p { margin-top: .5rem; font-size: 1rem; line-height: 1.6; color: var(--tx2); max-width: 34rem; }
.om-cap ul { list-style: none; margin: 1.125rem 0 0; padding: 0; display: grid; gap: .75rem; }
.om-cap li { display: grid; grid-template-columns: 22px 1fr; gap: .75rem; font-size: .9375rem; line-height: 1.5; color: var(--tx2); }
.om-cap li .ico { width: 18px; height: 18px; margin-top: 2px; color: var(--c); } .om-cap li b { color: var(--tx); font-weight: 600; }
.ahist { display: grid; gap: .25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.ahist .mini-h { margin-bottom: .25rem; }
.ahist div { display: flex; justify-content: space-between; gap: .75rem; font-size: .8125rem; color: var(--tx3); }
.ahist div > span:first-child { display: inline-flex; align-items: center; gap: .5rem; color: var(--tx); }
.ahist b { font-weight: 500; } .ahist .ico { width: 15px; height: 15px; color: var(--tx3); }

/* Rezervacije: the band's search reads dark on its white field */
.sx-rsv .om-pic .rsv { width: min(100%, 520px); justify-self: end; } .sx-rsv .rsv .srch { color: var(--tx); }

/* Pregled: the network list, the two over the limit marked in it */
.om-nets { display: grid; gap: 1.25rem; align-content: start; padding: 24px 28px; }
.nb-r { display: grid; gap: .375rem; }
.nb-t { display: flex; justify-content: space-between; gap: .75rem; font-size: .875rem; color: var(--tx); } .nb-t b { font-weight: 600; } .nb-t small { color: var(--tx3); }
.nb-t small i { font-style: normal; }
.nb-v { color: var(--tx2); white-space: nowrap; }
.nb-b { position: relative; height: 8px; border-radius: 9px; background: var(--color-neutral-100); overflow: hidden; }
.dark .nb-b { background: var(--color-neutral-800); }
.nb-b i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 9px; transition: width .9s var(--ease-out); }
.nb-b .r { background: color-mix(in oklch, var(--color-primary) 22%, var(--card)); } .nb-b .u { background: var(--color-primary); transition-delay: .15s; }
.nb-r.is-warn .nb-b .u { background: oklch(70% .16 70); } .nb-r.is-warn .nb-v { color: oklch(52% .12 65); font-weight: 600; }
.nb-r.is-crit .nb-b .u { background: var(--db-crit); } .nb-r.is-crit .nb-v { color: var(--db-crit); font-weight: 600; }
.dark .nb-r.is-warn .nb-v { color: oklch(80% .12 75); }
.nb-tag { display: inline-flex; align-items: center; gap: .25rem; margin-left: .5rem; padding: .0625rem .4375rem; border-radius: 99px; font-size: .6875rem; font-weight: 600;
  background: color-mix(in oklch, oklch(70% .16 70) 18%, var(--card)); color: oklch(48% .11 62); vertical-align: 1px; }
.nb-tag .ico { width: 12px; height: 12px; }
.is-crit .nb-tag { background: color-mix(in oklch, var(--db-crit) 12%, var(--card)); color: var(--db-crit); }
.dark .nb-tag { color: oklch(85% .1 75); }
.nb-key { display: flex; gap: 1rem; margin: .25rem 0 0; font-size: .75rem; color: var(--tx3); }
.nb-key span { display: inline-flex; align-items: center; gap: .375rem; } .nb-key i { width: 10px; height: 6px; border-radius: 9px; }
.nb-key .u { background: var(--color-primary); } .nb-key .r { background: color-mix(in oklch, var(--color-primary) 22%, var(--card)); }

@media (max-width: 900px) {
  .om-duo { grid-template-columns: minmax(0, 1fr); }
  .om-duo > :nth-child(1) { order: 1; } .om-duo > :nth-child(3) { order: 2; } .om-duo > :nth-child(2) { order: 3; margin-top: 3.5rem; } .om-duo > :nth-child(4) { order: 4; }
  .sx-rsv .om-pic .rsv { justify-self: stretch; width: auto; }
}
@media (max-width: 640px) {
  .np-g { grid-template-columns: minmax(0, 1fr); }
  .np-g > div:first-child { padding-right: 0; }
  .np-g > div:nth-child(2) { padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
/* splits on Omrežje: the picture starts a little below the section label, between it and the title */
.om-split { align-items: start; } .om-split > .om-pic { margin-top: 1.25rem; }
@media (max-width: 1100px) { .om-split > .om-pic { margin-top: 0; } }
/* Pregled: the same room after the band as Oprema, the list and the dashboard as one picture */
#pregled { padding-top: clamp(96px, 11vw, 176px); align-items: center; } #pregled > .om-pic { margin-top: 0; gap: 20px; } #pregled .om-al { padding: 20px 22px; }

/* Naslovi in naprave · the printer's card: »Brez IP naslova« → the picker → the address (one slot, no jump) */
.dv { padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; }
.dv-d { margin-top: 1.125rem; }
.dv-lab { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.dv-slot { display: grid; margin-top: .5rem; min-height: 12.5rem; }
.dv-s { grid-area: 1 / 1; align-self: start; transition: opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.dv-none, .dv-set { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .875rem; align-items: center; padding: .75rem .875rem; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); }
.dv-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--color-neutral-100); color: var(--tx3); }
.dv-ic.is-on { background: color-mix(in oklch, var(--m) 12%, var(--card)); color: var(--m); }
.dark .dv-ic { background: var(--color-neutral-800); } .dark .dv-ic.is-on { background: color-mix(in oklch, var(--m) 20%, var(--card)); }
.dv-ic .ico { width: 16px; height: 16px; }
.dv-t { display: grid; min-width: 0; font-size: .8125rem; } .dv-t b { font-weight: 500; color: var(--tx); font-size: .9375rem; } .dv-t small { color: var(--tx3); }
.dv-none .dv-t b { color: var(--tx2); }
.dv-t i { margin-left: .375rem; padding: .0625rem .375rem; border-radius: 6px; font-style: normal; font-size: .6875rem; color: var(--tx2); box-shadow: inset 0 0 0 1px var(--line); vertical-align: 1px; }
.copy.is-ico { padding: .375rem; } .copy.is-ico .ico { margin: 0; }
.dv-pk { display: grid; gap: .5rem; }
.dv-list { display: grid; gap: .375rem; padding: .625rem; border-radius: 10px; background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 16px 32px -20px rgb(0 0 0 / .35); }
.dv-list p { margin: 0; padding: .125rem .375rem; font-size: .6875rem; font-weight: 600; letter-spacing: .02em; color: var(--tx3); }
.dv-list div { display: flex; flex-wrap: wrap; gap: .25rem; }
.dv-o { padding: .3125rem .625rem; border-radius: 7px; font-family: var(--app-font); font-variant-numeric: tabular-nums; font-size: .8125rem; color: var(--tx); transition: background-color .2s, color .2s; }
.dv-o.is-pick { background: var(--m); color: #fff; }
.dv:not(.is-pick):not(.is-set) .dv-pk, .dv:not(.is-set) .dv-set { opacity: 0; transform: translateY(6px); pointer-events: none; }
.dv.is-pick .dv-none, .dv.is-set .dv-none, .dv.is-set .dv-pk { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.dv.is-set .dv-set { opacity: 1; transform: none; }
/* the address card answers: .38 is taken now, the nearest free moves on */
.nbr span i { transition: background-color .4s, box-shadow .4s, opacity .4s var(--ease-out), transform .4s var(--ease-out); transition-delay: var(--d, 0ms); }
.nbr.is-pre span i { opacity: 0; transform: scale(.6); }
.near b { transition: color .3s; } .near b.is-new { color: oklch(52% .14 163); }
/* Rezervacije: search, results and the action bar, three pieces with one gap (the generic .rows margin doesn't apply here) */
.rsv .rows { margin-top: 0; }
/* the band's title fits in two lines (»DHCP obseg ostane / nedotaknjen.«): halves instead of the band's narrower text column */
.sx-rsv .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .sx-rsv .wrap { grid-template-columns: minmax(0, 1fr); } }
/* only the title uses the wider column; the lead and the points keep the band's usual measure */
.sx-rsv .lead, .sx-rsv .band-list { max-width: 31rem; }

/* ---------- Varnost: hero on the school photo, four full-width chapters ---------- */
.toc .c-ins { --c: var(--color-primary); } .toc .c-acc { --c: oklch(55% .12 215); } .toc .c-sign { --c: oklch(70% .16 70); } .toc .c-bak { --c: oklch(59.6% .145 163.2); }
.vx-c1 { --m: var(--color-primary); --tn: oklch(95% .025 262); --in: oklch(40% .12 262); }
.vx-c2 { --m: oklch(55% .12 215); --tn: oklch(95.5% .025 215); --in: oklch(38% .08 215); }
.vx-c4 { --m: oklch(59.6% .145 163.2); --tn: oklch(96% .03 163); --in: oklch(38% .08 163); }
.dark .vx-c1 { --tn: oklch(29% .045 262); --in: oklch(93% .05 262); } .dark .vx-c2 { --tn: oklch(29% .04 215); --in: oklch(93% .05 215); } .dark .vx-c4 { --tn: oklch(28% .04 163); --in: oklch(92% .05 163); }
.vx-c1 { background: var(--page); } .vx-c1 + .vx-c2, .chap + .vx-band, .vx-band + .chap { margin-top: 0; }
.vx-stage { margin-top: clamp(8px, 1vw, 16px); }
.chap.vx .points { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* a full-width chapter opens like Omrežje's: the kicker and title, the lead beside them */
.vx-c1, .vx-c2, .vx-c4 { --c: var(--m); }
.chap.vx .sx-head + * { margin-top: clamp(36px, 4vw, 56px); }

/* hero: the homepage turned around, the school photo framed and the logo's three cards on it in frosted white glass;
   the cards keep the logo's geometry (a 17-unit box, 1 unit = 100/17 cqw) and its slide-in and lean */
.vx-photo { position: relative; display: grid; place-items: center; min-height: 460px; border-radius: 28px; overflow: hidden;
  background: var(--ink) url(../images/omarice.webp?v=69700ed9) center / cover no-repeat; }
.vx-logo { width: min(58%, 320px); aspect-ratio: 1; container-type: inline-size; }
.vx-lean { position: relative; display: block; width: 100%; height: 100%; transform: scale(.904884) skewX(-6deg); }
.vx-lean i { position: absolute; border-radius: 11.76cqw 1.76cqw 1.76cqw 11.76cqw; backdrop-filter: blur(16px) saturate(1.3); box-shadow: 0 24px 48px -24px rgb(0 0 0 / .45); }
.vx-lean i:nth-child(1) { left: 2.94cqw; width: 17.65cqw; top: 17.65cqw; height: 64.71cqw; background: rgb(255 255 255 / .3); }
.vx-lean i:nth-child(2) { left: 26.47cqw; width: 17.65cqw; top: 8.82cqw; height: 82.35cqw; background: rgb(255 255 255 / .45); }
.vx-lean i:nth-child(3) { left: 50cqw; width: 47.06cqw; top: 2.94cqw; height: 94.12cqw; border-radius: 11.76cqw; background: rgb(255 255 255 / .62); }
@media (prefers-reduced-motion: no-preference) {
  .vx-lean i { animation: mark-slide 900ms cubic-bezier(.2, .8, .2, 1) both; }
  .vx-lean i:nth-child(1) { animation-delay: 100ms; } .vx-lean i:nth-child(2) { animation-delay: 220ms; } .vx-lean i:nth-child(3) { animation-delay: 340ms; }
  .vx-lean { animation: logo-lean 600ms var(--ease-out) 1150ms both; }
}

/* 1 · Namestitev: title up top with an equal icon pair at the right edge, facts below */
.vx-opts2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.vx-o3 { display: grid; grid-template-rows: auto 1fr; padding: 0; overflow: hidden; }
.vx-top { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(22px, 2.6vw, 30px) clamp(22px, 2.6vw, 32px);
  background: linear-gradient(160deg, color-mix(in oklch, var(--m) 13%, var(--card)), color-mix(in oklch, var(--m) 4%, var(--card))); border-bottom: 1px solid var(--line); }
.vx-top b { display: block; font-family: var(--font-display); font-size: 1.625rem; letter-spacing: -.015em; color: var(--head); }
.vx-top small { display: block; margin-top: .25rem; font-size: .9375rem; color: var(--tx2); }
.vx-pair { display: flex; align-items: center; gap: 10px; flex: none; }
.vx-tile { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 16px; background: var(--card); color: var(--m); box-shadow: 0 0 0 1px var(--line), 0 12px 24px -14px rgb(2 33 109 / .4); }
.vx-tile .ico { width: 28px; height: 28px; }
.vx-rack { display: grid; align-content: center; gap: 4px; width: 60px; height: 60px; padding: 7px; border-radius: 10px; background: var(--color-neutral-800); box-shadow: 0 16px 30px -16px rgb(0 0 0 / .5); }
.vx-rack i { display: flex; align-items: center; gap: 4px; height: 12px; padding: 0 5px; border-radius: 4px; background: var(--color-neutral-700); }
.vx-rack i::before, .vx-rack i::after { content: ""; width: 5px; height: 5px; border-radius: 99px; background: oklch(72% .17 150); }
.vx-rack i::after { width: 16px; height: 3px; margin-left: auto; border-radius: 2px; background: var(--color-neutral-500); }
.vx-who { margin: 0; padding: 1rem clamp(22px, 2.6vw, 32px) clamp(22px, 2.6vw, 28px); display: grid; align-content: start; }
.vx-who > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; padding: .875rem 0; border-top: 1px solid var(--line); }
.vx-who > div:first-child { border-top: 0; }
.vx-who dt { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; font-weight: 600; color: var(--tx); }
.vx-who dt .ico { width: 16px; height: 16px; color: var(--m); }
.vx-who dd { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--tx2); } .vx-who dd b { color: var(--tx); font-weight: 600; }

/* 2 · Dostop: role → what the student card shows → the log; cards in a row share their height */
.vx-three { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .9fr) minmax(0, 1.05fr); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
.vx-three > .panel, .vx-two > .panel { display: flex; flex-direction: column; padding: 20px 22px; }
.vx-pr { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .75rem; align-items: center; padding: .625rem 0; border-bottom: 1px solid var(--line); font-size: .8125rem; }
.vx-pr:last-child { border-bottom: 0; padding-bottom: 0; }
.vx-pr > b { font-weight: 600; color: var(--tx); }
.vx-ch { display: flex; flex-wrap: wrap; gap: .375rem; }
.vx-ch span { display: inline-flex; align-items: center; gap: .3125rem; padding: .1875rem .5rem; border-radius: 99px; font-size: .75rem; font-weight: 500;
  background: color-mix(in oklch, var(--m) 12%, var(--card)); color: var(--in); }
.vx-ch span .ico { width: 12px; height: 12px; }
.vx-ch span.is-off { background: transparent; color: var(--tx3); box-shadow: inset 0 0 0 1px var(--line); text-decoration: line-through; text-decoration-color: color-mix(in oklch, var(--tx3) 60%, transparent); }
.vx-sh { display: grid; padding-bottom: .75rem; border-bottom: 1px solid var(--line); } .vx-sh b { font-family: var(--font-display); font-size: 1.125rem; color: var(--head); } .vx-sh small { font-size: .75rem; color: var(--tx3); }
.vx-sc dl { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1rem; margin: .875rem 0 0; font-size: .8125rem; }
.vx-sc dt { color: var(--tx3); } .vx-sc dd { margin: 0; color: var(--tx); }
.vx-sc dd.em { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--app-font); font-variant-numeric: tabular-nums; }
.vx-sc dd.em .ico { width: 15px; height: 15px; color: var(--tx3); }
.vx-sn { display: flex; gap: .5rem; margin: auto 0 0; padding-top: .75rem; border-top: 1px dashed var(--line); font-size: .75rem; line-height: 1.4; color: var(--tx3); }
.vx-sn .ico { width: 14px; height: 14px; flex: none; margin-top: 1px; }
.vx-lr { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: .75rem; align-items: start; padding: .625rem 0; font-size: .8125rem; line-height: 1.4; color: var(--tx2); }
.vx-lr + .vx-lr { border-top: 1px solid var(--line); }
.vx-lr b { color: var(--tx); font-weight: 600; } .vx-lr time { font-size: .75rem; color: var(--tx3); white-space: nowrap; } .vx-lr small { display: block; color: var(--tx3); }
.vx-av { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 99px; font-size: .6875rem; font-weight: 600; background: color-mix(in oklch, var(--color-primary) 12%, var(--card)); color: var(--color-primary); }
.vx-av.is-us { background: var(--color-primary); color: #fff; }
.vx-lr.is-us { margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: 10px; background: color-mix(in oklch, var(--color-primary) 7%, var(--card)); }
.vx-lr.is-us + .vx-lr { border-top-color: transparent; }
/* the support badge, as the app will show it */
.vx-tag { display: inline-block; margin-left: .25rem; padding: 0 .4375rem; border-radius: 99px; font-size: .6875rem; font-weight: 600; background: color-mix(in oklch, var(--color-primary) 14%, var(--card)); color: var(--color-primary); }

/* 3 · Prijava: the band, three equal cards with a small drawing each */
.vx-band { --c: oklch(80% .14 75); } .vx-band .wrap { display: block; }
.vx-bh { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 4rem; align-items: end; }
.vx-bh .lead { margin: 0; max-width: 34rem; }
.vx-tri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); margin-top: clamp(40px, 5vw, 64px); }
.vx-t { display: flex; flex-direction: column; padding: clamp(22px, 2.4vw, 30px); border-radius: 20px; background: rgb(255 255 255 / .06); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .1); }
.vx-t h3 { margin-top: 1.5rem; font-family: var(--font-display); font-size: 1.375rem; line-height: 1.75rem; letter-spacing: -.015em; color: #fff; }
.vx-t p { margin-top: .5rem; font-size: 1rem; line-height: 1.6; color: #b9cbf5; }
.vx-g { position: relative; display: flex; align-items: center; justify-content: center; gap: 14px; height: 150px; border-radius: 14px; background: rgb(255 255 255 / .05); }
.g-fp { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 99px; background: color-mix(in oklch, var(--color-primary) 30%, transparent); color: #fff; }
.g-fp .ico { width: 54px; height: 54px; }
.g-ok { position: absolute; left: calc(50% + 26px); top: calc(50% + 20px); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 99px; background: oklch(62% .15 160); color: #fff; box-shadow: 0 0 0 4px var(--ink); }
.g-ok .ico { width: 16px; height: 16px; }
.g-ring { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 99px; background: conic-gradient(var(--c) 0 75%, rgb(255 255 255 / .12) 75% 100%); }
.g-lock { display: grid; place-items: center; width: 78px; height: 78px; border-radius: 99px; background: var(--ink); color: #fff; } .g-lock .ico { width: 32px; height: 32px; }
.vx-g:has(.g-tries) { flex-direction: column; gap: 16px; }
.g-tries { display: flex; gap: 8px; } .g-tries i { width: 22px; height: 22px; border-radius: 99px; background: oklch(64% .19 25); box-shadow: inset 0 0 0 4px var(--ink); outline: 2px solid oklch(64% .19 25); }
.g-hold { display: inline-flex; align-items: center; gap: .4375rem; padding: .375rem .875rem; border-radius: 99px; background: rgb(255 255 255 / .12); color: #fff; font-size: .875rem; font-weight: 600; }
.g-hold .ico { width: 15px; height: 15px; }

/* 4 · Kopije: a week of hours, your copies, the restore */
.vx-wk { padding: clamp(20px, 2.4vw, 28px); }
.vx-wk .pf-h span { font-size: .8125rem; color: var(--tx3); }
.vx-days { display: grid; gap: 6px; margin-top: 1.125rem; }
.vx-day { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; align-items: center; font-family: var(--app-font); font-size: .75rem; color: var(--tx3); }
.vx-day.is-today { color: var(--tx); font-weight: 600; }
.vx-hrs { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 3px; }
.vx-hrs i { height: 18px; border-radius: 4px; background: var(--color-neutral-100); }
.dark .vx-hrs i { background: var(--color-neutral-800); }
.vx-hrs i.on, .vx-hrs i.now { background: oklch(59.6% .145 163.2); }
.vx-hrs i.now { box-shadow: 0 0 0 3px color-mix(in oklch, oklch(59.6% .145 163.2) 28%, transparent); }
.vx-ax { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; margin-top: .375rem; font-family: var(--app-font); font-size: .6875rem; color: var(--tx3); }
.vx-ax > span:last-child { display: flex; justify-content: space-between; }
.vx-hf { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.125rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .8125rem; color: var(--tx2); }
.vx-hf span { display: inline-flex; align-items: center; gap: .5rem; } .vx-hf .ico { width: 16px; height: 16px; color: oklch(59.6% .145 163.2); } .vx-hf b { color: var(--tx); font-weight: 600; }
.vx-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(16px, 2vw, 28px); margin-top: clamp(16px, 2vw, 28px); align-items: stretch; }
.vx-bk .pf-h .bt { display: inline-flex; align-items: center; gap: .375rem; padding: .3125rem .625rem; border-radius: 7px; background: var(--color-primary); color: #fff; font-size: .75rem; font-weight: 600; }
.vx-bk .pf-h .bt .ico { width: 13px; height: 13px; }
.vx-br { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .6875rem 0; border-top: 1px solid var(--line); font-size: .8125rem; }
.vx-br:first-of-type { border-top: 0; }
.vx-br > span:first-child { display: grid; } .vx-br b { font-family: var(--app-font); font-weight: 500; color: var(--tx); font-variant-numeric: tabular-nums; } .vx-br small { color: var(--tx3); }
.vx-br small .pv { color: oklch(52% .12 65); font-weight: 500; } .dark .vx-br small .pv { color: oklch(80% .12 75); }
.vx-rs { display: inline-flex; align-items: center; gap: .3125rem; padding: .25rem .5625rem; border-radius: 7px; box-shadow: inset 0 0 0 1px var(--line); font-size: .75rem; font-weight: 600; color: var(--tx); }
.vx-rs.is-on { box-shadow: inset 0 0 0 1.5px var(--color-primary); color: var(--color-primary); }
.vx-rs .ico { width: 13px; height: 13px; }
.vx-rm .rm-h { display: flex; align-items: center; gap: .625rem; font-family: var(--font-display); font-size: 1.0625rem; color: var(--head); }
.vx-rm .rm-h .ico { width: 18px; height: 18px; color: var(--tx3); }
.vx-rm .q { margin: .75rem 0 0; font-size: .875rem; color: var(--tx2); } .vx-rm .q b { color: var(--tx); }
.vx-rm .cols { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .875rem; }
.vx-rm .cols > div { padding: .75rem .875rem; border-radius: 10px; background: var(--color-neutral-50); font-size: .75rem; line-height: 1.45; color: var(--tx2); }
.dark .vx-rm .cols > div { background: var(--color-neutral-900); }
.vx-rm .cols b { display: block; margin-bottom: .25rem; font-size: .75rem; color: var(--tx); }
.vx-rm .cf { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .625rem; margin-top: .875rem; }
.vx-rm .cf .in { height: 36px; display: flex; align-items: center; padding: 0 .75rem; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--line); font-family: ui-monospace, monospace; font-size: .8125rem; color: var(--tx); }
.vx-rm .cf .go { height: 36px; display: grid; place-items: center; padding: 0 .875rem; border-radius: 8px; background: var(--db-crit); color: #fff; font-size: .8125rem; font-weight: 600; }
/* the week fills in hour by hour when it comes into view, then the current hour keeps pulsing */
@media (prefers-reduced-motion: no-preference) {
  .vx-wk.is-pre .vx-hrs i.on, .vx-wk.is-pre .vx-hrs i.now { background: var(--color-neutral-100); box-shadow: none; }
  .dark .vx-wk.is-pre .vx-hrs i.on, .dark .vx-wk.is-pre .vx-hrs i.now { background: var(--color-neutral-800); }
  .vx-wk .vx-hrs i { transition: background-color .25s var(--ease-out) var(--d, 0ms), box-shadow .25s var(--ease-out) var(--d, 0ms); }
  .vx-wk.is-in .vx-hrs i.now { animation: vx-now 1.8s ease-in-out var(--d, 0ms) infinite; }
}
@keyframes vx-now { 50% { box-shadow: 0 0 0 6px color-mix(in oklch, oklch(59.6% .145 163.2) 10%, transparent); } }

@media (max-width: 1100px) {
  .vx-photo { min-height: 0; aspect-ratio: 4 / 3; margin-top: 2rem; }
  .chap.vx .points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vx-three { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .vx-three > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) { .vx-opts2, .vx-bh, .vx-two, .vx-tri { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .chap.vx .points, .vx-three { grid-template-columns: minmax(0, 1fr); }
  .vx-top { flex-direction: column-reverse; align-items: flex-start; }
  .vx-who > div { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .vx-day, .vx-ax { grid-template-columns: 4rem minmax(0, 1fr); gap: .5rem; } .vx-day > span:first-child { white-space: nowrap; }
  .vx-rm .cols { grid-template-columns: minmax(0, 1fr); }
}

/* ===================================================================
   Kontakt — a conversation hero, the form in a band, the questions in rows
   =================================================================== */
/* the hero title follows the home page: a dark line, then a smaller blue one (same letter spacing per tier) */
.kx-hero .grid { align-items: center; }
@media (min-width: 1101px) { .kx-hero .grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); } }
.kx-hero h1 .l1 { display: block; }
.kx-hero h1 .l2 { display: block; margin-top: .125em; font-size: .703em; line-height: 1.15; letter-spacing: -.04em; text-wrap: balance; color: var(--color-primary); }
.kx-hero .lead { max-width: 34rem; }
.kx-ways { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.kx-ways a { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .875rem; border-radius: 999px; font-size: .875rem; font-weight: 500; text-decoration: none; color: var(--tx2); background: var(--card); box-shadow: 0 0 0 1px var(--line); transition: box-shadow .2s, color .2s; }
.kx-ways a .ico { width: 16px; height: 16px; color: var(--color-primary); }
.kx-ways a:hover { color: var(--tx); box-shadow: 0 0 0 1px var(--color-primary); }

/* hero picture: the FAQ's questions drift up in three columns on the brand blue; one lights up with its answer */
.kh { position: relative; }
.kh-wall { position: relative; overflow: hidden; height: 520px; border-radius: 28px;
  background: radial-gradient(90% 70% at 85% 10%, oklch(70% .17 262 / .55), transparent 65%), linear-gradient(165deg, var(--color-primary), color-mix(in oklch, var(--color-primary) 45%, var(--ink))); }
.kh-wall > .wm { position: absolute; right: -70px; top: -50px; height: 420px; width: auto; aspect-ratio: 1; pointer-events: none; }
.kh-wall > .wm path { fill: #fff; } .kh-wall > .wm path:nth-of-type(1) { fill-opacity: .05; } .kh-wall > .wm path:nth-of-type(2) { fill-opacity: .075; } .kh-wall > .wm path:nth-of-type(3) { fill-opacity: .1; }
.kw-cols { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 0 14px;
  -webkit-mask-image: linear-gradient(transparent, #000 14%, #000 58%, transparent 84%); mask-image: linear-gradient(transparent, #000 14%, #000 58%, transparent 84%); }
.kw-col { overflow: hidden; }
.kw-track { display: flex; flex-direction: column; gap: 10px; padding-top: 10px; animation: kw-y 46s linear infinite; }
/* three clearly different speeds, so the wall reads as depth, not one sliding sheet */
.kw-col:nth-child(2) .kw-track { animation-duration: 82s; animation-delay: -30s; }
.kw-col:nth-child(3) .kw-track { animation-duration: 60s; animation-delay: -45s; }
.kh-wall:hover .kw-track { animation-play-state: paused; }
@keyframes kw-y { to { transform: translateY(calc(-50% - 5px)); } }
@keyframes kw-x { to { transform: translateX(calc(-50% - 4px)); } }
.kw-q { display: block; padding: .625rem .75rem; border-radius: 14px; background: rgb(255 255 255 / .1); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .18);
  font-size: .8125rem; font-weight: 500; line-height: 1.35; color: rgb(255 255 255 / .86); text-decoration: none; transition: background-color .35s, color .35s, box-shadow .35s, transform .35s var(--ease-out); }
.kw-q:hover { color: #fff; background: rgb(255 255 255 / .18); }
.kw-q.on { background: #fff; color: var(--color-primary); box-shadow: 0 16px 36px -14px rgb(0 10 40 / .55); transform: scale(1.03); }
.kw-card { position: absolute; left: 18px; right: 18px; bottom: 18px; display: grid; gap: .375rem; padding: 1.125rem 1.25rem 1rem; border-radius: 20px; background: var(--card);
  box-shadow: 0 30px 60px -24px rgb(0 10 40 / .6); }
.kw-k { display: inline-flex; align-items: center; gap: .375rem; font-size: .6875rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary); }
.kw-k .ico { width: 14px; height: 14px; }
.kw-cq { font-family: var(--font-display); font-size: 1.0625rem; line-height: 1.3; letter-spacing: -.01em; color: var(--head); }
.kw-ca { font-size: .875rem; line-height: 1.5; color: var(--tx2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kw-go { justify-self: start; display: inline-flex; align-items: center; gap: .375rem; margin-top: .125rem; font-size: .8125rem; font-weight: 600; color: var(--color-primary); text-decoration: none; }
.kw-go .ico { width: 14px; height: 14px; }
.kw-cq, .kw-ca { transition: opacity .25s; } .kw-card.is-swap .kw-cq, .kw-card.is-swap .kw-ca { opacity: 0; }

@media (max-width: 1100px) { .kh { margin-top: 2.5rem; } }
/* phone: the wall turns into three rows drifting sideways (slower, the rows are long), the answer card under them */
@media (max-width: 760px) {
  .kh-wall { height: auto; padding: 18px 0 0; }
  .kw-cols { position: static; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
  .kw-track { flex-direction: row; width: max-content; gap: 8px; padding: 0; animation-name: kw-x; animation-duration: 120s; }
  .kw-col:nth-child(2) .kw-track { animation-duration: 200s; } .kw-col:nth-child(3) .kw-track { animation-duration: 155s; }
  .kw-q { white-space: nowrap; }
  .kw-q.on { transform: none; }
  .kw-card { position: relative; left: auto; right: auto; bottom: auto; margin: 18px 12px 12px; }
}
@media (prefers-reduced-motion: reduce) { .kw-track { animation: none; } }

/* the form in a tinted band, the start steps beside it */
/* a topic link lands right under the sticky header (73px), so only the band shows: html's 88px scroll padding minus 16 */
.kb-band { scroll-margin-top: -16px; margin-top: clamp(64px, 8vw, 120px); padding: clamp(56px, 7vw, 104px) 0; background: linear-gradient(to bottom, oklch(95% .025 262), var(--page) 95%); }
.kb-band .contact { padding-top: 0; }
.kb-band .contact h2 { margin-top: 1rem; font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1; letter-spacing: -.035em; }
.kb-band .alt { margin-top: 2rem; }

/* the questions: one accent (brand blue); a group shows its own colour only in its icon */
.kx-faq { margin-top: clamp(80px, 9vw, 136px); scroll-margin-top: 80px; --c: var(--color-primary); }
.kx-faq .sx-head { margin-bottom: clamp(24px, 3vw, 40px); }
.kb-nav { position: sticky; top: 72px; z-index: 5; }
.kx-faq .kb-nav::before { left: calc(50% - 50vw + var(--sb, 0px) / 2); right: calc(50% - 50vw + var(--sb, 0px) / 2); }
.kb-nav > div { position: relative; display: flex; flex-wrap: wrap; gap: .5rem; padding: 10px 0; }
.kb-nav a { display: inline-flex; align-items: center; gap: .5rem; padding: .4375rem .875rem; border-radius: 999px; font-size: .875rem; font-weight: 500; white-space: nowrap; text-decoration: none; color: var(--tx2); background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 8px 18px -12px rgb(2 33 109 / .4); transition: box-shadow .25s, color .25s; }
.kb-nav a .ico { width: 15px; height: 15px; color: var(--tx3); }
.kb-nav a:hover { color: var(--tx); box-shadow: 0 0 0 1px var(--color-primary), 0 8px 18px -12px rgb(2 33 109 / .4); }
.kb-nav a.is-on { color: var(--tx); box-shadow: 0 0 0 1.5px var(--color-primary), 0 8px 18px -12px rgb(2 33 109 / .4); }
.kb-nav a.is-on .ico { color: var(--tx); }
.kb-row { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); padding: clamp(48px, 5vw, 72px) 0; border-top: 1px solid var(--line); scroll-margin-top: 140px; }
.kb-row:first-of-type { border-top: 0; }
.kb-lab { align-self: start; position: sticky; top: 150px; }
.kb-lab .gi { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; color: var(--g); background: var(--card); box-shadow: 0 0 0 1px var(--line); }
.kb-lab .gi .ico { width: 22px; height: 22px; }
.kb-lab h3 { margin-top: 1rem; font-family: var(--font-display); font-size: 1.5rem; line-height: 1; letter-spacing: -.02em; color: var(--head); }
.kb-lab p { margin-top: .5rem; font-size: .875rem; line-height: 1.5; color: var(--tx3); }
.kb-lab a { display: inline-block; margin-top: .875rem; font-size: .875rem; font-weight: 600; color: var(--color-primary); text-decoration: none; }
.kb-qs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 4vw, 56px); align-items: start; }
.kb-qs > div { min-width: 0; }
.kq { border-bottom: 1px solid var(--line); }
.kq summary { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr) 20px; gap: 1rem; align-items: start; padding: 1.125rem 0; cursor: pointer; font-size: 1rem; line-height: 1.45; font-weight: 600; color: var(--tx); transition: color .15s; }
.kq summary::-webkit-details-marker { display: none; }
.kq summary:hover { color: var(--color-primary); }
/* the toggle: a small grey caret that only turns */
.kq .tg { display: grid; place-items: center; width: 20px; height: 20px; margin-top: 2px; color: var(--tx3); transition: transform .3s var(--ease-out), color .2s; }
.kq .tg .ico { width: 16px; height: 16px; }
.kq summary:hover .tg { color: var(--tx); }
.kq[open] .tg { transform: rotate(180deg); color: var(--tx); }
.kq .ans { padding: .25rem 2rem 1.375rem 0; font-size: .9375rem; line-height: 1.65; color: var(--tx2); }
.kq .ans p + p { margin-top: .625rem; }
.kq .ans a { color: var(--color-primary); font-weight: 500; }
.kq[open] .ans { animation: fp-in .3s var(--ease-out) both; }

@media (max-width: 1100px) {
  .kb-row { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .kb-lab { position: static; display: grid; grid-template-columns: 44px 1fr; column-gap: .875rem; align-items: center; }
  .kb-lab h3 { margin-top: 0; } .kb-lab p, .kb-lab a { grid-column: 2; margin-top: .25rem; }
  .kb-chat { margin-top: 2.5rem; min-height: 360px; }
}
@media (max-width: 760px) {
  .kb-qs { grid-template-columns: minmax(0, 1fr); }
  .kb-nav > div { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; margin: 0 calc(var(--gut) * -1); padding: 10px var(--gut); scrollbar-width: none; }
  .kb-nav a { flex: none; }
}

/* ---- in-page navigation: a bar of the page's sections, pinned under the header from the hero to the closing box ---- */
/* it takes no room in the page and slides in once the hero's own chips (.toc) have scrolled away;
   no bar behind it: the chips float under the header like Kontakt's */
.pg-nav { position: sticky; top: 72px; z-index: 40; height: 0; }
.pg-bar { position: absolute; left: 0; right: 0; top: 0; opacity: 0; transform: translateY(-6px); visibility: hidden; transition: opacity .2s, transform .25s var(--ease-out), visibility 0s .25s; }
.pg-nav.is-shown .pg-bar { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
/* behind the chips only a blur that fades out downwards: what scrolls under them softens, with no edge or colour that would read as a second header */
.pg-bar::before, .spine::before, .kb-nav::before { content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: -18px; pointer-events: none;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
.pg-bar .wrap { position: relative; display: flex; align-items: center; gap: .5rem; padding-top: 10px; padding-bottom: 10px; }
.pg-bar a { flex: none; display: inline-flex; align-items: center; gap: .5rem; padding: .4375rem .875rem; border-radius: 999px; font-size: .875rem; font-weight: 500; white-space: nowrap; text-decoration: none;
  color: var(--tx2); background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 8px 18px -12px rgb(2 33 109 / .4); transition: box-shadow .25s, color .25s; }
/* the dot is the section kicker's own colour (site.js copies it) */
.pg-bar a i { width: 8px; height: 8px; border-radius: 2.5px; background: var(--c, var(--tx3)); opacity: .55; transition: opacity .25s; }
.pg-bar a:hover { color: var(--tx); box-shadow: 0 0 0 1px var(--color-primary), 0 8px 18px -12px rgb(2 33 109 / .4); }
.pg-bar a.is-on { color: var(--tx); box-shadow: 0 0 0 1.5px var(--color-primary), 0 8px 18px -12px rgb(2 33 109 / .4); }
.pg-bar a.is-on i { opacity: 1; }
/* a section lands just under the chips: header 72 + chips 53 = 125, html scroll padding 88 */
.pg-run [id] { scroll-margin-top: 37px; }
/* the first section lands right under the header: the chips only pin there, so they float over its top padding */
.pg-run > .pg-nav + [id], .pg-run > .pg-nav + * > [id]:first-child { scroll-margin-top: -16px; }
@media (max-width: 760px) {
  .pg-bar .wrap { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .pg-bar a { font-size: .8125rem; padding: .375rem .75rem; }
  .pg-bar .wrap::-webkit-scrollbar { display: none; }
  .pg-run [id] { scroll-margin-top: 33px; }
}



/* layout tweaks that used to be style attributes (the CSP blocks those) */
.kx-faq-gap { margin-top: clamp(72px, 8vw, 120px); }
#topic-field { margin: -1rem 0 1.25rem; }
.sent-ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.cmp-eyebrow { margin-top: clamp(40px, 6vw, 88px); }
.wiz-stat { margin-top: .75rem; color: var(--color-neutral-600); }

/* ======== Phones: type and spacing for every page, then Domov's own phone layout ======== */
@media (max-width: 600px) {
  /* headings 30 px, leads and text 16 px, sections 56 px apart */
  :is(.sec-head, .chap-head, .band) h2.disp { font-size: 1.875rem; line-height: 1.05; }
  :is(.sec-head, .chap-head) p:not(.chap-tag, .eyebrow), .band .lead, .hero .lead { font-size: 1rem; line-height: 1.55; }
  .close h2.disp { font-size: 1.5rem; }
  .chap-tag { gap: .5rem; font-size: .75rem; }
  .chap-tag .pill { gap: .375rem; padding: .1875rem .625rem .1875rem .5rem; }
  .chap-tag .pill i { width: 6px; height: 6px; }
  .sec { padding-top: 3.5rem; }
  .chap { padding: 3rem 0; }
  .band { margin-top: 3.5rem; }
  .band .wrap { gap: 2rem; padding-top: 3rem; padding-bottom: 3rem; }
  .band-list { margin-top: 1.5rem; gap: .875rem; }
  .band-list li { font-size: .9375rem; }
  .close { margin-top: 3rem; padding: 1.5rem 1.25rem; }
  .close p { font-size: .9375rem; line-height: 1.5; }
  .close .btn { height: 46px; padding: 0 1.25rem; border-radius: 10px; font-size: .9375rem; }
  .close .btn .ico { width: 18px; height: 18px; }
  .close .wm { height: 200px; right: -50px; top: -40px; }
  /* footer: the logo, then one link per row */
  footer .wrap { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  footer nav { flex-direction: column; gap: 0; }
  footer nav a { padding: .5rem 0; font-size: .9375rem; }
}

/* Domov on a phone: one example per idea, about ten screens */
@media (max-width: 600px) {
  [data-page="index"] .panel { padding: 1rem; }
  [data-page="index"] .dk { min-height: 0; padding: 1.125rem 1.125rem 1rem; }
  [data-page="index"] :is(.dk, [data-page="index"] .duo-h) h3 { font-size: 1.375rem; line-height: 1.1; }
  [data-page="index"] .duo-h p { font-size: .9375rem; line-height: 1.5; }

  /* dashboard: the phase tabs and the headline card; the lists and notes stay on larger screens */
  [data-page="index"] #focus > .db-col ~ .db-col, [data-page="index"] #focus .db-hist, [data-page="index"] #focus .db-hax, [data-page="index"] #focus .db-lab, [data-page="index"] .phase-do { display: none; }
  [data-page="index"] #focus { min-height: 0; }
  /* Med letom keeps its age chart: the other phases have their bar, this one would be a bare number */
  [data-page="index"] #focus.ph-mid > .db-col:first-child :is(.db-hist, .db-hax) { display: flex; }
  [data-page="index"] #focus.ph-mid > .db-col:first-child .db-lab { display: block; }
  /* a previewed phase: the tag and »Nazaj na danes« on one line, the phase and its dates under them */
  [data-page="index"] .db-preview > .flex-1 { order: 3; flex: 1 0 100%; }
  [data-page="index"] .db-preview-link { margin-left: auto; }
  /* phase tabs: all four fit the width, the past ones too, names on up to two lines; the card under them gives the dates */
  [data-page="index"] .year-card .db-rb { overflow: visible; }
  [data-page="index"] .year-card .db-rb-ax, [data-page="index"] .year-card .db-rb-tr { min-width: 0; }
  [data-page="index"] .db-seg.is-past, [data-page="index"] .db-seg.is-later { display: flex; }
  [data-page="index"] .db-seg { padding: .5rem .375rem; text-align: center; }
  [data-page="index"] .db-seg .db-sn, [data-page="index"] .db-seg.is-now .db-sn { font-family: inherit; font-size: .75rem; line-height: 1.15; white-space: normal; }
  [data-page="index"] .db-seg :is(.db-sd, .db-next), [data-page="index"] .db-pin { display: none; }
  [data-page="index"] .db-seg.is-now { padding: .625rem .375rem; }
  /* Poletje's step track: numbers only, the box under them names the current step */
  [data-page="index"] .db-tlabel { display: none; }
  [data-page="index"] .db-track { gap: 1.25rem; }
  [data-page="index"] .seg.kind-seg button { min-height: 28px; padding: 0 .625rem; font-size: .75rem; }

  /* year track: four equal tabs with whole names; the lit tab says where we are, so the month marker goes */
  [data-page="index"] .spine-tr { height: 44px; }
  [data-page="index"] .spine-tr a { flex: 1 1 0 !important; justify-content: center; padding: 0 .125rem; font-size: .6875rem; letter-spacing: -.01em; white-space: nowrap; }
  [data-page="index"] .spine-pole { display: none; }

  /* locker wall: eight to a row (site.js builds 40 lockers on phones), numbers readable */
  [data-page="index"] .wall { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; }
  [data-page="index"] .lk span { font-size: 10px; bottom: 4px; }

  /* four-card groups and chapter points swipe sideways, the next card peeking */
  [data-page="index"] .deck, [data-page="index"] .gen .g4, [data-page="index"] .chap .points { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(var(--gut) * -1); scroll-padding-inline: var(--gut); }
  [data-page="index"] .deck, [data-page="index"] .gen .g4 { padding: 12px var(--gut) 16px; }
  [data-page="index"] .deck::-webkit-scrollbar, [data-page="index"] .gen .g4::-webkit-scrollbar, [data-page="index"] .chap .points::-webkit-scrollbar { display: none; }
  [data-page="index"] .deck > .dk, [data-page="index"] .gen .g4 > .gc { flex: none; width: 84%; scroll-snap-align: start; }
  [data-page="index"] .chap .points { margin-top: 2rem; padding: 0 var(--gut) 8px; }
  [data-page="index"] .chap .points article { flex: none; width: 78%; scroll-snap-align: start; padding: 1.125rem 1.125rem 1.25rem; border-radius: 16px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
  [data-page="index"] .chap .points .pt-ico { margin-bottom: .5rem; }
  [data-page="index"] .chap .points h3 { font-size: 1.125rem; line-height: 1.35; }
  [data-page="index"] .chap .points p { margin-top: .25rem; font-size: .9375rem; line-height: 1.5; }

  /* Začetek: no phone inside the phone, »Razredniki« says it */
  [data-page="index"] #zacetek-leta .teacher { display: none; }
  /* Med letom: the three most urgent alerts, the title on one line; the printer is shown in full on Omrežje */
  [data-page="index"] .db .db-ar:nth-of-type(n+5), [data-page="index"] .db .db-minor, [data-page="index"] .db .db-meta { display: none; }
  [data-page="index"] .db-count[data-phone] { font-size: 0; }
  [data-page="index"] .db-count[data-phone]::after { content: attr(data-phone); font-size: 1.5rem; }
  [data-page="index"] #med-letom .duo { grid-template-columns: minmax(0, 1fr); }
  [data-page="index"] #med-letom .duo-col + .duo-col { display: none; }
  /* Konec leta: four items, one of them still out */
  [data-page="index"] .hm-t:nth-child(n+5) { display: none; }
  /* Poletje: only the panel where the move runs and can be undone */
  [data-page="index"] .wiz-steps, [data-page="index"] .wiz-stages { display: none; }
}

/* Omarice on a phone: the point groups swipe, shorter examples */
@media (max-width: 600px) {
  /* Dodeljevanje: the three ways to assign swipe sideways, each with its example */
  [data-page="omarice"] .chap .points { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin: 2rem calc(var(--gut) * -1) 0; padding: 0 var(--gut) 8px; scroll-padding-inline: var(--gut); }
  [data-page="omarice"] .chap .points::-webkit-scrollbar { display: none; }
  [data-page="omarice"] .chap .points article { flex: none; width: 84%; scroll-snap-align: start; padding: 1.125rem 1.125rem 1.25rem; border-radius: 16px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
  [data-page="omarice"] .chap .points .pt-ico { margin-bottom: .5rem; }
  [data-page="omarice"] .chap .points h3 { font-size: 1.125rem; line-height: 1.35; }
  [data-page="omarice"] .chap .points p { margin-top: .25rem; font-size: .9375rem; line-height: 1.5; }

  [data-page="omarice"] .chap .points .pf-undo { flex-wrap: wrap; row-gap: .25rem; }
  [data-page="omarice"] .chap .points .pf-undo > * { white-space: nowrap; }
  [data-page="omarice"] .chap .points article:first-child .pt-fig { height: auto; -webkit-mask-image: none; mask-image: none; }

  /* Dijaki: the four moments of a school career as one swipe row */
  [data-page="omarice"] .pts4 { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin: 2.5rem calc(var(--gut) * -1) 0; padding: 0 var(--gut) 8px; scroll-padding-inline: var(--gut); }
  [data-page="omarice"] .pts4::-webkit-scrollbar { display: none; }
  [data-page="omarice"] .pts4 article { flex: none; width: 72%; scroll-snap-align: start; padding: 1.125rem; border-radius: 16px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
  [data-page="omarice"] .pts4 h3 { margin-top: .5rem; font-size: 1.125rem; line-height: 1.35; }
  [data-page="omarice"] .pts4 p { margin-top: .25rem; font-size: .9375rem; line-height: 1.5; }

  /* hero: five lockers in the list, still one broken and two free */
  [data-page="omarice"] .lkl-r:nth-child(n+9) { display: none; }

  /* locker card: who, the neighbours and the history; »Uporaba« stays on larger screens */
  [data-page="omarice"] #lcard > div:nth-child(4) { display: none; }
}


/* ======== Oprema on a phone ======== */
@media (max-width: 600px) {
  /* the asset card: four rows in each list */
  [data-page="oprema"] .ac-dl > div:last-child { display: none; }
  /* hero timeline: smaller stops, the date and title closer */
  [data-page="oprema"] .jr-track { gap: 10px; }
  [data-page="oprema"] .jr-stop { gap: .75rem; }
  [data-page="oprema"] .jr-dot { width: 36px; height: 36px; border-radius: 11px; }
  [data-page="oprema"] .jr-dot .ico { width: 18px; height: 18px; }
  [data-page="oprema"] .jr-line { left: 17px; top: 18px; bottom: 18px; }
  [data-page="oprema"] .jr-card { gap: .125rem; padding: .75rem 1rem .875rem; border-radius: 14px; }
  [data-page="oprema"] .jr-card b { font-size: 1.0625rem; line-height: 1.3; }
  [data-page="oprema"] .jr-card span { font-size: .8125rem; line-height: 1.45; }

  /* asset card: the data and the type's own fields; the age chart stays on larger screens */
  [data-page="oprema"] .ac-g > div:last-child { display: none; }

  /* points (Oprema, every Varnost chapter): swipe sideways, each card with its example */
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin: 2rem calc(var(--gut) * -1) 0; padding: 0 var(--gut) 8px; scroll-padding-inline: var(--gut); }
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points::-webkit-scrollbar { display: none; }
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points article { flex: none; width: 84%; scroll-snap-align: start; padding: 1.125rem 1.125rem 1.25rem; border-radius: 16px; background: var(--card); box-shadow: 0 0 0 1px var(--line); }
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points .pt-ico { margin-bottom: .5rem; }
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points h3 { font-size: 1.125rem; line-height: 1.35; }
  :is([data-page="oprema"], [data-page="varnost"]) .chap .points p { margin-top: .25rem; font-size: .9375rem; line-height: 1.5; }

  [data-page="oprema"] #popravila .stage { display: block; min-height: 0; padding: 1rem; }

  /* repair board → tracker: every status with its count, then one repair and the steps it has gone through */
  [data-page="oprema"] .rb { display: block; }
  [data-page="oprema"] .rcol { display: none; }
  [data-page="oprema"] .rtk { display: block; }
}

/* the repair tracker only exists on phones */
.rtk { display: none; }
.rtk-sum { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin-bottom: 1rem; }
.rtk-sum span { display: flex; flex-direction: column; align-items: center; gap: .125rem; padding: .5rem .125rem .4375rem; border-radius: 10px; text-align: center;
  background: color-mix(in oklch, var(--tone) 10%, var(--card)); box-shadow: inset 0 3px 0 var(--tone); font-size: .625rem; font-weight: 600; line-height: 1.2; color: var(--color-neutral-600); }
.rtk-sum b { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.5rem; font-variant-numeric: tabular-nums; color: var(--color-neutral-900); transition: color .3s; }
.rtk-sum b.bump { color: var(--tone); }
.dark .rtk-sum span { color: var(--color-neutral-300); } .dark .rtk-sum b { color: #fff; }
.rtk .bc { transition: background-color .4s, box-shadow .4s; }
.rtk .bc .bc-tag { transition: background-color .4s, color .4s; }
.rtk-steps { list-style: none; margin: 1rem 0 0; padding: 0 .25rem; display: grid; gap: .875rem; }
.rtk-steps li { position: relative; display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .75rem; align-items: start; color: var(--color-neutral-400); }
.rtk-steps li i { width: 1rem; height: 1rem; margin-top: .125rem; border-radius: 99px; box-shadow: inset 0 0 0 2px var(--color-neutral-300); background: var(--card); transition: background-color .4s, box-shadow .4s; }
.rtk-steps li + li::before { content: ""; position: absolute; left: calc(.5rem - 1px); bottom: calc(100% - .125rem); height: .875rem; width: 2px; background: var(--color-neutral-200); transition: background-color .4s; }
.rtk-steps b { display: block; font-size: .875rem; font-weight: 600; line-height: 1.25rem; }
.rtk-steps small { display: block; font-size: .75rem; line-height: 1.1rem; }
.rtk-steps li.on { color: var(--color-neutral-800); }
.rtk-steps li.on small { color: var(--color-neutral-500); }
.rtk-steps li.on i { background: var(--tone); box-shadow: 0 0 0 4px color-mix(in oklch, var(--tone) 22%, transparent); }
.rtk-steps li.on + li.on::before { background: var(--tone); }
.dark .rtk-steps li.on { color: var(--color-neutral-100); }


/* ======== Omrežje on a phone ======== */
@media (max-width: 600px) {
  /* hero: the work groups in one row that swipes sideways */
  [data-page="omrezje"] .wg-chips { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; margin: 0 -1.25rem; padding: 0 1.25rem 2px; }
  [data-page="omrezje"] .wg-chips::-webkit-scrollbar { display: none; }
  [data-page="omrezje"] .wg-chips button { flex: none; }

  /* address for a device: the button under the text, the picker shows one network */
  [data-page="omrezje"] .dv-none { grid-template-columns: auto minmax(0, 1fr); row-gap: .625rem; }
  [data-page="omrezje"] .dv-none .copy { grid-column: 1 / -1; justify-content: center; }
  [data-page="omrezje"] .dv-list p:nth-of-type(2), [data-page="omrezje"] .dv-list div:nth-of-type(2) { display: none; }
  [data-page="omrezje"] .dv-slot { min-height: 0; }

  /* reservation bar: the count on its own line, both actions under it */
  [data-page="omrezje"] .rsv .bar { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .75rem; }
  [data-page="omrezje"] .rsv .bar > span:first-child { grid-column: 1 / -1; padding: 0 .25rem; font-weight: 600; }
  [data-page="omrezje"] .rsv .bar .b, [data-page="omrezje"] .rsv .bar .b2 { margin: 0; padding: .5rem; border-radius: 8px; text-align: center; }
  [data-page="omrezje"] .rsv .bar .b2 { opacity: 1; box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--card) 35%, transparent); }

  /* networks: name and mark on one line, the range under it */
  [data-page="omrezje"] .om-nets { padding: 20px; gap: 1rem; }
  [data-page="omrezje"] .nb-t { align-items: start; }
  [data-page="omrezje"] .nb-t > span:first-child { display: flex; flex-wrap: wrap; align-items: center; column-gap: .375rem; min-width: 0; }
  [data-page="omrezje"] .nb-t small { order: 3; flex-basis: 100%; font-size: .75rem; }
  [data-page="omrezje"] .nb-t small i { display: none; }
  [data-page="omrezje"] .nb-tag { margin-left: 0; }
  [data-page="omrezje"] .nb-v { white-space: nowrap; }

  /* alerts: the same size as the rest of the panel */
  [data-page="omrezje"] .om-al .db-at { font-size: .9375rem; line-height: 1.4; }
}


/* ======== Varnost on a phone ======== */
@media (max-width: 600px) {
  /* hosting options: title and picture side by side, each row a label and its answer */
  [data-page="varnost"] .vx-top { flex-direction: row; align-items: center; gap: 1rem; padding: 1.125rem 1.25rem; }
  [data-page="varnost"] .vx-top b { font-size: 1.25rem; line-height: 1.3; }
  [data-page="varnost"] .vx-top small { font-size: .8125rem; line-height: 1.45; }
  [data-page="varnost"] .vx-pair { gap: 6px; }
  [data-page="varnost"] .vx-tile, [data-page="varnost"] .vx-rack { width: 40px; height: 40px; border-radius: 11px; }
  [data-page="varnost"] .vx-tile .ico { width: 20px; height: 20px; }
  [data-page="varnost"] .vx-rack { gap: 3px; padding: 5px; border-radius: 8px; }
  [data-page="varnost"] .vx-rack i { height: 8px; padding: 0 3px; gap: 3px; }
  [data-page="varnost"] .vx-rack i::before { width: 3px; height: 3px; } [data-page="varnost"] .vx-rack i::after { width: 10px; height: 2px; }
  [data-page="varnost"] .vx-who { padding: .25rem 1.25rem 1rem; }
  [data-page="varnost"] .vx-who > div { grid-template-columns: 6.75rem minmax(0, 1fr); gap: .75rem; padding: .625rem 0; }
  [data-page="varnost"] .vx-who dt { align-items: flex-start; line-height: 1.35rem; }
  [data-page="varnost"] .vx-who dt .ico { margin-top: .1875rem; }
  [data-page="varnost"] .vx-who dd { font-size: .8125rem; line-height: 1.35rem; }
  [data-page="varnost"] .vx-who dd b { white-space: nowrap; }

  /* Prijava: a smaller picture above each card's text */
  [data-page="varnost"] .vx-tri { gap: 12px; margin-top: 2rem; }
  [data-page="varnost"] .vx-t { padding: 1rem 1rem 1.125rem; border-radius: 16px; }
  [data-page="varnost"] .vx-g { height: 96px; gap: 10px; }
  [data-page="varnost"] .g-fp, [data-page="varnost"] .g-ring { width: 64px; height: 64px; }
  [data-page="varnost"] .g-fp .ico { width: 36px; height: 36px; }
  [data-page="varnost"] .vx-g:has(.g-tries) { gap: 10px; }
  [data-page="varnost"] .g-tries i { width: 16px; height: 16px; box-shadow: inset 0 0 0 3px var(--ink); }
  [data-page="varnost"] .g-lock { width: 50px; height: 50px; } [data-page="varnost"] .g-lock .ico { width: 22px; height: 22px; }
  [data-page="varnost"] .g-ok { left: calc(50% + 16px); top: calc(50% + 12px); width: 22px; height: 22px; } [data-page="varnost"] .g-ok .ico { width: 12px; height: 12px; }
  [data-page="varnost"] .vx-t h3 { margin-top: 1rem; font-size: 1.125rem; line-height: 1.4; }
  [data-page="varnost"] .vx-t p { font-size: .9375rem; line-height: 1.5; }
}


/* ======== Kontakt on a phone ======== */
@media (max-width: 600px) {
  /* topics: smaller tiles, the icon still above the name */
  [data-page="kontakt"] .topics { gap: .5rem; margin-bottom: 2rem; }
  [data-page="kontakt"] .topic { gap: .375rem; padding: .75rem .875rem; border-radius: 12px; }
  [data-page="kontakt"] .topic .ico { width: 18px; height: 18px; }
  [data-page="kontakt"] .topic b { font-size: .875rem; }

  /* questions: tighter groups and rows, the answer as before */
  [data-page="kontakt"] .kb-row { gap: 1rem; padding: 2rem 0; }
  [data-page="kontakt"] .kb-lab { grid-template-columns: 36px 1fr; column-gap: .75rem; }
  [data-page="kontakt"] .kb-lab .gi { width: 36px; height: 36px; border-radius: 11px; }
  [data-page="kontakt"] .kb-lab .gi .ico { width: 18px; height: 18px; }
  [data-page="kontakt"] .kb-lab h3 { font-size: 1.25rem; line-height: 1.2; }
  [data-page="kontakt"] .kb-lab p { font-size: .8125rem; margin-top: .125rem; }
  [data-page="kontakt"] .kq summary { gap: .75rem; padding: .75rem 0; font-size: .9375rem; line-height: 1.4; }
  [data-page="kontakt"] .kq .ans { padding: 0 1.5rem 1rem 0; font-size: .875rem; line-height: 1.6; }
}


/* ======== Pravne informacije on a phone ======== */
@media (max-width: 600px) {
  /* legal notice: each label beside its value, as on larger screens */
  [data-page="pravne-informacije"] .legal dl { grid-template-columns: 8.25rem minmax(0, 1fr); }
  [data-page="pravne-informacije"] .legal dt, [data-page="pravne-informacije"] .legal dd { padding: .625rem 0; border-bottom: 1px solid var(--line); }
  [data-page="pravne-informacije"] .legal dt { padding-right: .75rem; font-size: .8125rem; line-height: 1.5rem; }
  [data-page="pravne-informacije"] .legal dd { font-size: .9375rem; line-height: 1.5rem; }

  /* reading size: headings and text the size of the other pages on a phone */
  [data-page="pravne-informacije"] .legal h1.disp { font-size: 2rem; line-height: 1; }
  [data-page="pravne-informacije"] .legal .lead { margin-top: 1rem; font-size: 1rem; }
  [data-page="pravne-informacije"] .legal-body { gap: 2rem; margin-top: 2rem; padding-top: 1.5rem; }
  [data-page="pravne-informacije"] .legal h2.disp { font-size: 1.5rem; }
  [data-page="pravne-informacije"] .legal section + section { margin-top: 3rem; }
  [data-page="pravne-informacije"] .legal h3 { margin-top: 1.75rem; font-size: 1rem; }
  [data-page="pravne-informacije"] .legal-text p, [data-page="pravne-informacije"] .legal-text li { font-size: 1rem; line-height: 1.6; }
}


/* ======== Phones: the hero picture on the first screen ======== */
@media (max-width: 600px) {
  /* Domov: no buttons under the lead; the closing box keeps »Dogovorite se za predstavitev« */
  [data-page="index"] .hero .ctas { display: none; }
  /* section chips: the bar under the header takes over once you scroll; on Kontakt the form's topic tiles do */
  .area-hero :is(.toc, .kx-ways) { display: none; }
}
