@layer reset, tokens, base, layout, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, h3, p, figure, blockquote { margin: 0; }
  button, input, select, textarea { font: inherit; color: inherit; }
  button { cursor: pointer; background: none; border: 0; }
  img, svg { display: block; }
}

@layer tokens {
  :root {
    --font-ui: "Bricolage Grotesque", system-ui, "Segoe UI", sans-serif;
    --font-read: "Literata", Georgia, serif;
    --font-hand: "Caveat", "Segoe Print", cursive;

    /* Bilježnica: papir na kockice, plava tinta nalivpera, žuti marker */
    --paper: oklch(97.6% 0.012 95);
    --paper-2: oklch(95% 0.016 92);
    --grid: oklch(62% 0.05 250 / 0.07);
    --ink: oklch(25% 0.04 262);
    --ink-2: oklch(40% 0.035 262);
    --ink-3: oklch(56% 0.025 262);
    --pen: oklch(38% 0.11 255);
    --pen-soft: oklch(38% 0.11 255 / 0.1);
    --marker: oklch(91% 0.17 102);
    --marker-soft: oklch(93% 0.15 102 / 0.55);
    --margin-red: oklch(62% 0.17 22);

    --glass: oklch(100% 0 0 / 0.6);
    --glass-strong: oklch(100% 0 0 / 0.8);
    --glass-edge: oklch(100% 0 0 / 0.85);
    --line: oklch(40% 0.04 262 / 0.1);
    --shadow: 0 1px 0 oklch(40% 0.05 262 / 0.05), 0 10px 28px -12px oklch(35% 0.08 262 / 0.22),
              0 34px 70px -34px oklch(35% 0.08 262 / 0.28);
    --hl: inset 0 1px 0 oklch(100% 0 0 / 0.9);

    --blob1: oklch(82% 0.11 250 / 0.6);
    --blob2: oklch(91% 0.15 100 / 0.55);

    --r-lg: 20px; --r-md: 14px; --r-sm: 10px;
    --side: 296px;
    --measure: 66ch;
    --step-0: clamp(0.96rem, 0.93rem + 0.15vw, 1.03rem);
    --step-1: clamp(1.08rem, 1.02rem + 0.3vw, 1.22rem);
    --step-3: clamp(1.7rem, 1.4rem + 1.3vw, 2.45rem);
  }
  :root[data-theme="dark"] {
    /* Noćno učenje: tamna tinta, marker ostaje */
    --paper: oklch(20% 0.025 262);
    --paper-2: oklch(17% 0.022 262);
    --grid: oklch(80% 0.04 250 / 0.045);
    --ink: oklch(94% 0.012 95);
    --ink-2: oklch(80% 0.02 250);
    --ink-3: oklch(65% 0.025 250);
    --pen: oklch(76% 0.12 255);
    --pen-soft: oklch(76% 0.12 255 / 0.14);
    --marker: oklch(88% 0.16 102);
    --marker-soft: oklch(88% 0.16 102 / 0.22);
    --glass: oklch(28% 0.03 262 / 0.55);
    --glass-strong: oklch(30% 0.03 262 / 0.82);
    --glass-edge: oklch(100% 0 0 / 0.1);
    --line: oklch(100% 0 0 / 0.08);
    --shadow: 0 12px 30px -12px oklch(0% 0 0 / 0.55), 0 40px 80px -30px oklch(0% 0 0 / 0.6);
    --hl: inset 0 1px 0 oklch(100% 0 0 / 0.07);
    --blob1: oklch(40% 0.1 262 / 0.45);
    --blob2: oklch(45% 0.09 102 / 0.18);
  }
}

@layer base {
  html { background: var(--paper); color: var(--ink); -webkit-text-size-adjust: 100%; }
  body { font-family: var(--font-ui); font-size: var(--step-0); line-height: 1.55; min-block-size: 100dvh;
    -webkit-font-smoothing: antialiased; font-optical-sizing: auto; }
  a { color: inherit; text-decoration: none; }
  :focus-visible { outline: 2px solid var(--pen); outline-offset: 2px; border-radius: 6px; }
  /* Pogodak pretrage izgleda kao potez markera */
  mark { color: inherit; background: linear-gradient(104deg, transparent 0.4%, var(--marker) 2.5%, var(--marker-soft) 57%, var(--marker) 93%, transparent 99%);
    border-radius: 0.6em 0.25em; padding: 0 0.18em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  kbd { font: 600 11px/1 var(--font-ui); color: var(--ink-3); padding: 4px 6px; border-radius: 6px; border: 1px solid var(--line); background: var(--glass-strong); }
  ::selection { background: var(--marker); color: oklch(25% 0.04 262); }
}

@layer layout {
  .backdrop { position: fixed; inset: 0; overflow: hidden; z-index: -1; background-color: var(--paper);
}
  .orb { position: absolute; border-radius: 50%; filter: blur(90px); }
  .o1 { inline-size: 44vmax; block-size: 44vmax; background: var(--blob1); inset-block-start: -20vmax; inset-inline-end: -12vmax; }
  .o2 { inline-size: 34vmax; block-size: 34vmax; background: var(--blob2); inset-block-end: -14vmax; inset-inline-start: 10vmax; }
  .o3 { inline-size: 26vmax; block-size: 26vmax; background: var(--tab-glow, oklch(80% 0.1 330 / .3)); inset-block-start: 35%; inset-inline-start: 30%; }

  .shell { display: grid; grid-template-columns: var(--side) 1fr; min-block-size: 100dvh; padding: 12px; gap: 14px; }
  .sidebar { position: sticky; inset-block-start: 12px; block-size: calc(100dvh - 24px); display: flex; flex-direction: column;
    border-radius: var(--r-lg); padding: 16px 10px 10px; overflow: hidden; }
  .main { min-inline-size: 0; outline: none; }
  .topbar { position: sticky; inset-block-start: 0; z-index: 5; display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 16px; min-block-size: 52px; }
  .view { max-inline-size: 840px; margin-inline: auto; padding: 8px 20px 96px; }

  @media (max-width: 860px) {
    .shell { grid-template-columns: 1fr; padding: 0; gap: 0; }
    .sidebar { position: fixed; inset: 8px auto 8px 8px; inline-size: min(88vw, 320px); block-size: auto; z-index: 30;
      transform: translateX(calc(-100% - 16px)); transition: transform .32s cubic-bezier(.2,.8,.2,1); }
    .sidebar.open { transform: none; }
    .view { padding-inline: 16px; }
    .topbar { padding-inline: 8px; background: color-mix(in oklch, var(--paper) 78%, transparent);
      backdrop-filter: blur(14px) saturate(150%); -webkit-backdrop-filter: blur(14px) saturate(150%); }
  }
}

@layer components {
  /* Liquid glass: prozirna ploha, jako zamućenje sa zasićenjem, sjajni rub koji lomi svjetlo odozgo lijevo */
  .glass { isolation: isolate; background: linear-gradient(160deg, var(--glass-strong), var(--glass) 55%);
    border: 1px solid transparent; background-clip: padding-box;
    backdrop-filter: blur(26px) saturate(190%) brightness(1.04); -webkit-backdrop-filter: blur(26px) saturate(190%) brightness(1.04);
    box-shadow: var(--shadow), var(--hl), inset 0 -10px 30px -18px oklch(100% 0 0 / .35); }
  .glass::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 1;
    background: linear-gradient(135deg, oklch(100% 0 0 / .95), oklch(100% 0 0 / .15) 35%, oklch(100% 0 0 / .05) 60%, oklch(100% 0 0 / .6));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
  :root[data-theme="dark"] .glass::before { background: linear-gradient(135deg, oklch(100% 0 0 / .35), oklch(100% 0 0 / .04) 40%, oklch(100% 0 0 / .02) 60%, oklch(100% 0 0 / .18)); }
  dialog.glass { position: fixed; }

  /* Znak: rukom podvučen markerom */
  .side-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 8px 14px; }
  .brand { position: relative; font: 700 1.45rem/1 var(--font-ui); letter-spacing: -0.035em; color: var(--ink); }
  .brand .word { position: relative; isolation: isolate; }
  .brand .word::after { content: ""; position: absolute; inset-inline: -3px -5px; inset-block-end: 1px; block-size: 0.42em; z-index: -1;
    background: var(--marker); border-radius: 0.5em 0.2em 0.6em 0.25em; transform: rotate(-1.5deg); }
  .brand { isolation: isolate; }
  .brand small { font: 400 1.05rem/1 var(--font-hand); color: var(--pen); margin-inline-start: 6px; letter-spacing: 0; }

  .search-trigger { display: flex; align-items: center; gap: 10px; inline-size: 100%; padding: 10px 11px; margin-block-end: 8px;
    border-radius: 12px; color: var(--ink-3); background: var(--glass-strong); border: 1px solid var(--line); box-shadow: var(--hl); }
  .search-trigger:hover { color: var(--ink); border-color: color-mix(in oklch, var(--pen) 35%, transparent); }
  .search-trigger span { flex: 1; text-align: start; }

  .subjects { flex: 1; overflow-y: auto; padding-inline: 2px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
  .group-label { font: 400 1.15rem/1 var(--font-hand); color: var(--pen); padding: 16px 10px 6px; }
  /* Predmet kao razdjelnik u registratoru: obojeni jezičac lijevo */
  .subj { position: relative; display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 12px; border-radius: 10px; color: var(--ink-2); }
  .subj::before { content: ""; inline-size: 8px; block-size: 8px; border-radius: 3px; background: var(--tab, var(--pen)); flex: none; transform: rotate(45deg); opacity: .85; }
  .subj:hover { background: var(--pen-soft); color: var(--ink); }
  .subj[aria-current="page"] { background: var(--glass-strong); color: var(--ink); box-shadow: var(--hl), 0 1px 4px oklch(35% 0.08 262 / .1); }
  .subj[aria-current="page"]::after { content: ""; position: absolute; inset-inline-start: -2px; inset-block: 9px; inline-size: 4px; border-radius: 4px; background: var(--tab); }
  .subj .nm { flex: 1; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .subj .ct { font-size: 12px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
  .side-foot { font-size: 12.5px; color: var(--ink-3); padding: 10px 10px 2px; border-block-start: 1px dashed var(--line); }

  .icon-btn { display: grid; place-items: center; inline-size: 36px; block-size: 36px; border-radius: 10px; color: var(--ink-2); }
  .icon-btn:hover { background: var(--pen-soft); color: var(--ink); }
  .crumbs { flex: 1; min-inline-size: 0; color: var(--ink-3); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .crumbs a:hover { color: var(--pen); }

  .page-title { font: 700 var(--step-3)/1.08 var(--font-ui); letter-spacing: -0.035em; margin-block: 18px 8px; text-wrap: balance; }
  .page-title .hl { background: linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 92%, transparent 92%); padding-inline: 0.06em; }
  .page-sub { color: var(--ink-2); margin-block-end: 24px; max-inline-size: var(--measure); font-size: 1.05rem; }
  .hand { font: 400 1.3rem/1.1 var(--font-hand); color: var(--pen); }

  .subject-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    padding-inline-start: 18px; border-inline-start: 6px solid var(--tab); border-radius: 3px; margin-block-start: 10px; }
  .subject-head .page-title { margin-block: 6px 4px; }
  .subject-head .hand { margin-block-end: 2px; }

  .tabs { position: sticky; inset-block-start: 52px; z-index: 4; display: flex; gap: 2px; padding: 4px; border-radius: 14px;
    margin-block: 16px 18px; overflow-x: auto; scrollbar-width: none; }
  .tab { padding: 7px 13px; border-radius: 10px; color: var(--ink-2); white-space: nowrap; font-size: 14.5px; font-weight: 500; }
  .tab:hover { color: var(--ink); }
  .tab[aria-selected="true"] { background: var(--ink); color: var(--paper); }
  .tab .n { opacity: .6; font-size: 12px; margin-inline-start: 5px; font-variant-numeric: tabular-nums; }

  .filters { display: flex; flex-wrap: wrap; gap: 6px; margin-block-end: 14px; align-items: center; }
  .chip { padding: 5px 12px; border-radius: 999px; font-size: 13.5px; color: var(--ink-2); border: 1px solid var(--line); background: var(--glass); }
  .chip:hover { border-color: color-mix(in oklch, var(--pen) 40%, transparent); }
  .chip[aria-pressed="true"] { color: oklch(25% 0.04 262); background: var(--marker); border-color: transparent; }

  .feed { display: flex; flex-direction: column; gap: 12px; }
  /* Zapis kao listić: bijeli papir, lagano podignut, rub u boji predmeta */
  .post { position: relative; display: block; padding: 18px 22px 18px 24px; border-radius: 16px;
    background: linear-gradient(165deg, var(--glass-strong), var(--glass)); border: 1px solid var(--glass-edge);
    backdrop-filter: blur(18px) saturate(180%); -webkit-backdrop-filter: blur(18px) saturate(180%);
    box-shadow: inset 0 1px 0 oklch(100% 0 0 / .8), 0 6px 18px -12px oklch(35% 0.08 262 / .25);
    transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s; }
  .post::before { content: ""; position: absolute; inset-inline-start: 0; inset-block: 16px; inline-size: 3px; border-radius: 3px; background: var(--tab, var(--pen)); opacity: .9; }
  a.post:hover { transform: translateY(-1px) rotate(-0.15deg); box-shadow: 0 1px 0 var(--line), 0 14px 30px -14px oklch(35% 0.08 262 / .35); }
  .post-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; font-size: 13px; color: var(--ink-3); margin-block-end: 6px; }
  .post-meta .who { color: var(--ink-2); font-weight: 600; }
  .post-meta .dupe { font: 400 1.05rem/1 var(--font-hand); color: var(--margin-red); }
  .post-title { font: 650 var(--step-1)/1.3 var(--font-ui); letter-spacing: -0.015em; margin-block-end: 6px; }
  a.post:hover .post-title { color: var(--pen); }
  .post-body { font-family: var(--font-read); font-size: 1.02rem; line-height: 1.68; color: var(--ink); white-space: pre-line;
    max-inline-size: var(--measure); overflow-wrap: anywhere; }
  .post-body.clip { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
  .post-foot { display: flex; gap: 14px; margin-block-start: 10px; font-size: 13px; color: var(--ink-3); }
  article.post { background: var(--glass-strong); }

  .file-link { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 12px; padding: 8px 14px; border-radius: 10px; font-size: 14px;
    font-weight: 500; color: var(--pen); background: var(--pen-soft); max-inline-size: 100%; }
  .file-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .file-link:hover { background: color-mix(in oklch, var(--pen) 18%, transparent); }

  .thread { margin-block-start: 28px; }
  .thread h2 { font: 400 1.5rem/1 var(--font-hand); color: var(--pen); margin-block-end: 6px; }
  .comment { padding: 12px 0 12px 16px; border-inline-start: 2px dashed var(--line); margin-block: 10px; }
  .composer { position: relative; margin-block-start: 24px; border-radius: 16px; padding: 12px 12px 12px 16px; display: flex; gap: 10px; align-items: flex-end; }
  .composer textarea { flex: 1; resize: none; border: 0; background: transparent; color: var(--ink); min-block-size: 24px; outline: none; }
  .composer .send { inline-size: 34px; block-size: 34px; border-radius: 10px; background: var(--pen); color: white; display: grid; place-items: center; opacity: .45; }
  .note { font-size: 13px; color: var(--ink-3); margin-block-start: 8px; }

  .ex-list { display: grid; gap: 10px; }
  .ex { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 14px 18px; border-radius: 14px; background: var(--glass); border: 1px solid var(--glass-edge); }
  .ex:hover { border-color: color-mix(in oklch, var(--pen) 35%, transparent); }
  .ex .nm { font: 650 1.06rem/1.3 var(--font-ui); letter-spacing: -0.01em; }
  .ex .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-block-start: 6px; }
  .ex .tag { font-size: 12.5px; padding: 2px 9px; border-radius: 999px; background: var(--pen-soft); color: var(--pen); }
  .ex .meta { font-size: 12.5px; color: var(--ink-3); margin-block-start: 4px; }
  .ex .n { font-size: 13.5px; color: var(--ink-2); text-align: end; }

  .q { display: grid; grid-template-columns: 1fr auto; gap: 4px 18px; padding: 13px 4px; border-block-end: 1px dashed var(--line); }
  .q .t { font-family: var(--font-read); font-size: 1.05rem; }
  .q .who { grid-column: 1 / -1; font-size: 12.5px; color: var(--ink-3); }
  .q .who a { color: var(--pen); }
  /* Učestalost kao crtice za brojanje: skupine po pet */
  .tally { display: inline-flex; gap: 6px; align-items: center; color: var(--ink-2); white-space: nowrap; }
  .tally svg { block-size: 18px; inline-size: auto; }
  .tally .more { font: 400 1.05rem/1 var(--font-hand); color: var(--pen); }

  /* Kviz kao kartica za učenje: crvena crta, plave crte */
  .quiz { position: relative; border-radius: 6px 6px 14px 14px; padding: clamp(22px, 4vw, 38px) clamp(22px, 4vw, 40px);
    margin-block: 8px 18px; background-color: oklch(99% 0.01 95);
    border-block-start: 4px solid var(--tab, var(--pen));
    box-shadow: 0 2px 0 oklch(40% 0.04 262 / .06), 0 20px 50px -22px oklch(35% 0.08 262 / .4); color: oklch(25% 0.04 262);
    }
  :root[data-theme="dark"] .quiz { background-color: oklch(93% 0.015 95); }
  .quiz .progress { font: 400 1.25rem/1 var(--font-hand); color: var(--margin-red); block-size: 40px; }
  .quiz .question { font: 600 clamp(1.3rem, 1.1rem + 1vw, 1.8rem)/32px var(--font-read); padding-block-start: 10px; min-block-size: 96px; text-wrap: pretty; }
  .quiz .src { font-size: 13px; color: oklch(45% 0.03 262); margin-block: 14px 22px; line-height: 32px; }
  .quiz .src a { color: var(--pen); text-decoration: underline; text-underline-offset: 3px; }
  .quiz .actions { display: flex; flex-wrap: wrap; gap: 8px; }
  .quiz .btn { background: oklch(100% 0 0); color: oklch(25% 0.04 262); }
  .quiz .btn.primary { background: oklch(46% 0.16 262); color: white; }
  .quiz.flip { animation: flip .45s cubic-bezier(.2,.8,.2,1); }

  .btn { padding: 10px 16px; border-radius: 12px; font-weight: 600; font-size: 14.5px; border: 1px solid var(--line); background: var(--glass-strong); box-shadow: var(--hl); color: var(--ink); }
  .btn:hover { border-color: color-mix(in oklch, var(--pen) 40%, transparent); }
  .btn.primary { background: var(--pen); color: oklch(99% 0 0); border-color: transparent; box-shadow: 0 8px 20px -10px var(--pen); }
  .btn[aria-pressed="true"] { background: var(--marker); color: oklch(25% 0.04 262); border-color: transparent; }
  select.btn { appearance: none; padding-inline-end: 32px; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position: calc(100% - 17px) 55%, calc(100% - 12px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }

  .home-hello { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
  .home-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 12px; margin-block-start: 6px; }
  .home-card { position: relative; border-radius: 14px; padding: 16px 18px 16px 20px; overflow: hidden;
    transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; }
  .home-card::after { content: ""; position: absolute; inset-block-start: 12px; inset-inline-start: 0; block-size: 22px; inline-size: 4px; border-radius: 0 4px 4px 0; background: var(--tab); }
  .home-card:hover { transform: translateY(-3px) rotate(-0.4deg); }
  .home-card .nm { font: 650 1.05rem/1.25 var(--font-ui); letter-spacing: -0.01em; margin-block-end: 8px; }
  .home-card .meta { font-size: 13px; color: var(--ink-3); }
  .section-hand { font: 400 1.45rem/1 var(--font-hand); color: var(--pen); margin: 30px 2px 10px; }

  .palette { inline-size: min(680px, calc(100vw - 24px)); max-block-size: min(70dvh, 620px); margin: 12vh auto auto; padding: 0;
    border-radius: 18px; color: var(--ink); overflow: hidden; }
  .palette::backdrop { background: oklch(22% 0.04 262 / 0.28); backdrop-filter: blur(3px); }
  .palette[open] { animation: pop .22s cubic-bezier(.2,.8,.2,1); }
  .palette-form { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-block-end: 1px dashed var(--line); color: var(--ink-3); }
  .palette-form input { flex: 1; border: 0; outline: 0; background: transparent; font-size: 1.08rem; color: var(--ink); }
  .palette-results { overflow-y: auto; max-block-size: calc(min(70dvh, 620px) - 60px); padding: 6px; }
  .hit { display: block; padding: 10px 12px; border-radius: 12px; }
  .hit:hover, .hit[aria-selected="true"] { background: var(--pen-soft); }
  .hit .h { display: flex; gap: 8px; font-size: 12.5px; color: var(--ink-3); margin-block-end: 3px; }
  .hit .h .dot { inline-size: 8px; block-size: 8px; border-radius: 3px; transform: rotate(45deg); background: var(--tab); align-self: center; }
  .hit .s { font-family: var(--font-read); font-size: 0.98rem; color: var(--ink-2); }
  .empty { padding: 34px 12px; text-align: center; color: var(--ink-3); }
  .empty .hand { display: block; font-size: 1.6rem; margin-block-end: 6px; }

  .skeleton { block-size: 104px; border-radius: 16px; margin-block: 12px; background:
      linear-gradient(90deg, var(--glass) 25%, var(--glass-strong) 50%, var(--glass) 75%); background-size: 200% 100%; animation: shimmer 1.4s infinite; }
  .more { display: block; margin: 18px auto 0; }

  @keyframes pop { from { opacity: 0; transform: translateY(6px) scale(.985); } }
  @keyframes shimmer { to { background-position: -200% 0; } }
  @keyframes rise { from { opacity: 0; transform: translateY(6px); } }
  @keyframes flip { from { opacity: 0; transform: rotate(-2deg) translateY(10px) scale(.98); } }
  .view > * { animation: rise .35s cubic-bezier(.2,.8,.2,1) both; }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
}

@layer utilities {
  @media (min-width: 861px) { .only-mobile { display: none; } }
  .muted { color: var(--ink-3); }
}

@layer components {
  :root[data-theme="dark"] .brand .word::after { background: oklch(88% 0.16 102 / 0.32); }
}

@layer components {
  /* ELSA: službeni logo (bijeli) na ELSA plavoj pločici, uz naziv */
  .brand { display: flex; align-items: center; gap: 10px; font-size: 1.22rem; }
  .elsa-badge { display: grid; place-items: center; inline-size: 54px; block-size: 34px; border-radius: 9px; background: #003865;
    box-shadow: inset 0 1px 0 oklch(100% 0 0 / .25), 0 4px 12px -4px #00386599; flex: none; }
  .elsa-badge img { inline-size: 40px; block-size: auto; }
}

@layer components {
  .an-hero { border-radius: 18px; padding: 20px 22px; margin-block-end: 14px; }
  .an-lead { font: 600 1.15rem/1.4 var(--font-ui); letter-spacing: -0.01em; }
  .godine { display: flex; align-items: flex-end; gap: 6px; block-size: 110px; margin-block-start: 16px; }
  .godine .g { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; block-size: 100%; gap: 4px; }
  .godine i { display: block; inline-size: 100%; max-inline-size: 26px; border-radius: 6px 6px 2px 2px; background: linear-gradient(var(--tab), color-mix(in oklch, var(--tab) 55%, transparent)); min-block-size: 3px; }
  .godine span { font-size: 11px; color: var(--ink-3); }
  .an-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin-block-end: 14px; }
  .an-card { border-radius: 18px; padding: 16px 20px; margin-block-end: 14px; }
  .an-card h3, .ex-saz h4 { margin: 2px 0 8px; font-weight: 400; font-size: 1.35rem; }
  .izjave { list-style: none; margin: 0 0 10px; padding: 0; }
  .izjave li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 0; border-block-end: 1px dashed var(--line); }
  .izjave li:last-child { border-block-end: 0; }
  .izjave li span { font-family: var(--font-read); }
  .izjave li em { font-style: normal; font-family: var(--font-ui); font-size: 12px; color: var(--ink-3); margin-inline-start: 6px; }
  .izjave li a { color: var(--pen); font-size: 13px; }
  .isp-red { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
  .isp { display: flex; flex-direction: column; padding: 10px 12px; border-radius: 12px; background: var(--pen-soft); }
  .isp b { font-weight: 600; } .isp span { font-size: 12.5px; color: var(--ink-3); }
  .ex-saz { border-radius: 16px; padding: 4px 18px 12px; }
  .ex-saz summary { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; cursor: pointer; list-style: none; }
  .ex-saz summary::-webkit-details-marker { display: none; }
  .ex-saz summary .nm { font: 650 1.08rem/1.3 var(--font-ui); }
  .ex-saz summary .meta { font-size: 13px; color: var(--ink-3); }
  .ex-akcije { margin-block-start: 10px; }
  .ispit-postav .filters { margin-block: 10px; }
  .pis-q { margin-block: 14px 22px; }
  .pis-q textarea { inline-size: 100%; border: 1px solid oklch(70% 0.06 245 / .5); border-radius: 10px; padding: 10px; background: oklch(100% 0 0 / .7); color: oklch(25% 0.04 262); font: inherit; resize: vertical; }
}

@layer components {
  .tally .tn { display: none; font: 700 13px/1 var(--font-ui); color: var(--pen); background: var(--pen-soft); padding: 4px 8px; border-radius: 999px; }
  .brand-top { display: none; }
  @media (max-width: 860px) {
    .brand-top { display: flex; font-size: 1.02rem; gap: 8px; flex: 1; min-inline-size: 0; }
    .brand-top .elsa-badge { inline-size: 44px; block-size: 28px; }
    .brand-top .elsa-badge img { inline-size: 34px; }
    .topbar .crumbs { display: none; }
    .tally .crtice { display: none; }
    .tally .tn { display: inline-block; }
    .view { padding: 4px 12px 80px; }
    .page-title { font-size: 1.5rem; margin-block: 8px 2px; }
    .subject-head { padding-inline-start: 12px; border-inline-start-width: 4px; margin-block-start: 4px; gap: 8px; }
    .subject-head .hand { font-size: 1.05rem; }
    #follow { padding: 7px 12px; font-size: 13px; }
    .tabs { inset-block-start: 52px; margin-block: 10px 12px; padding: 3px; }
    .tab { padding: 6px 10px; font-size: 13.5px; }
    .an-hero, .an-card { padding: 12px 14px; border-radius: 14px; margin-block-end: 10px; }
    .an-lead { font-size: 0.98rem; }
    .godine { block-size: 72px; margin-block-start: 10px; gap: 4px; }
    .an-grid { gap: 10px; margin-block-end: 10px; }
    .an-card h3, .ex-saz h4 { font-size: 1.15rem; margin-block: 0 4px; }
    .izjave li { padding: 6px 0; gap: 10px; }
    .izjave li span { font-size: 0.95rem; line-height: 1.4; }
    .ex-saz { padding: 2px 12px 10px; }
    .ex-saz summary .nm { font-size: 1rem; }
    .isp-red { grid-template-columns: 1fr 1fr; }
    .quiz { padding: 16px; }
    .quiz .question { font-size: 1.2rem; line-height: 1.4; min-block-size: 0; }
    .quiz .src { line-height: 1.5; }
    .btn { padding: 9px 13px; font-size: 14px; }
    .post { padding: 14px 14px 14px 16px; }
    .home-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .home-card { padding: 12px 12px 12px 14px; }
    .home-card .nm { font-size: 0.95rem; }
  }
}

@layer components {
  /* Znak "elsa pred kabinetom": ELSA-in znak u njihovoj plavoj, uz natpis u serifnom pismu kao u ELSA-inom znaku */
  .brand .word::after { display: none; }
  .lockup { display: inline-flex; align-items: center; gap: 7px; color: #003865; line-height: 1; }
  .lockup img { block-size: 30px; inline-size: auto; align-self: center; }
  .lockup .lk-bijeli { display: none; }
  .lk-tekst { font: italic 900 1.42rem/1 "Playfair Display", "Bodoni 72", Didot, Georgia, serif; letter-spacing: -0.01em; white-space: nowrap; transform: translateY(0.16em); }
  :root[data-theme="dark"] .lockup { color: #fff; }
  :root[data-theme="dark"] .lockup .lk-plavi { display: none; }
  :root[data-theme="dark"] .lockup .lk-bijeli { display: block; }
  @media (max-width: 860px) {
    .brand-top .lockup img { block-size: 24px; }
    .brand-top .lk-tekst { font-size: 1.15rem; }
  }
}

@layer utilities {
  /* Bez žutog markera: isticanje i odabir u ELSA plavoj */
  .page-title .hl { background: none; padding: 0; color: var(--pen); }
  mark { background: none; color: var(--pen); font-weight: 650; padding: 0; }
  ::selection { background: oklch(80% 0.06 250); color: oklch(20% 0.04 262); }
  .chip[aria-pressed="true"], .btn[aria-pressed="true"] { background: var(--pen); color: oklch(99% 0 0); border-color: transparent; }
  .brand .word::after { display: none; }
  :root { --blob2: oklch(90% 0.06 230 / 0.45); }
  :root[data-theme="dark"] { --blob2: oklch(40% 0.07 230 / 0.25); }
  :root[data-theme="dark"] .chip[aria-pressed="true"], :root[data-theme="dark"] .btn[aria-pressed="true"] { color: oklch(18% 0.03 262); }
}

@layer utilities {
  /* ELSA izgled: hladna bijela, ELSA plava (#003865) kao nosiva boja, bez rukopisa iz bilježnice */
  :root {
    --elsa: #003865;
    --elsa-2: oklch(52% 0.13 245);
    --elsa-sky: oklch(88% 0.05 235);
    --paper: oklch(98.4% 0.004 245);
    --paper-2: oklch(96.2% 0.008 245);
    --ink: oklch(24% 0.06 255);
    --ink-2: oklch(38% 0.045 255);
    --ink-3: oklch(54% 0.03 255);
    --pen: var(--elsa);
    --pen-soft: oklch(36% 0.1 255 / 0.08);
    --margin-red: var(--elsa-2);
    --blob1: oklch(70% 0.12 250 / 0.42);
    --blob2: oklch(88% 0.06 220 / 0.5);
    --line: oklch(36% 0.08 255 / 0.11);
    --font-hand: var(--font-ui);
  }
  :root[data-theme="dark"] {
    --paper: oklch(19% 0.04 255);
    --paper-2: oklch(16% 0.035 255);
    --ink: oklch(96% 0.008 245);
    --ink-2: oklch(84% 0.02 245);
    --ink-3: oklch(68% 0.03 245);
    --pen: oklch(80% 0.09 240);
    --pen-soft: oklch(80% 0.09 240 / 0.13);
    --margin-red: oklch(80% 0.09 240);
    --blob1: oklch(38% 0.12 255 / 0.55);
    --blob2: oklch(42% 0.08 225 / 0.25);
  }
  .o3 { background: oklch(78% 0.08 230 / .22); }

  /* Naslovi koji su bili rukopis: mirni, polumasni, u ELSA plavoj */
  .hand, .group-label, .section-hand, .thread h2, .an-card h3, .ex-saz h4, .tally .more, .post-meta .dupe, .quiz .progress {
    font-family: var(--font-ui); font-weight: 650; letter-spacing: -0.01em; color: var(--pen); }
  .group-label { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); padding: 18px 10px 6px; }
  .section-hand { font-size: 1.15rem; margin: 34px 2px 12px; padding-block-end: 8px; border-block-end: 2px solid var(--elsa); inline-size: fit-content; }
  .subject-head .hand, .home-hello .hand { font-size: 0.98rem; font-weight: 600; color: var(--ink-3); }
  .an-card h3, .ex-saz h4 { font-size: 1.05rem; }
  .thread h2 { font-size: 1.1rem; }
  .quiz .progress { font-size: 0.95rem; color: var(--elsa-2); block-size: 34px; }
  .tally .more, .post-meta .dupe { font-size: 0.85rem; }
  .empty .hand { font-size: 1.15rem; }

  /* Odabrana kartica i gumbi: puna ELSA plava */
  .tab[aria-selected="true"] { background: var(--elsa); color: #fff; }
  :root[data-theme="dark"] .tab[aria-selected="true"] { background: oklch(80% 0.09 240); color: oklch(18% 0.04 255); }
  .btn.primary, .quiz .btn.primary { background: var(--elsa); color: #fff; box-shadow: 0 8px 20px -10px #003865aa; }
  :root[data-theme="dark"] .btn.primary { background: oklch(80% 0.09 240); color: oklch(18% 0.04 255); }
  .quiz { background-color: #fff; border-block-start-color: var(--elsa); color: var(--ink); }
  :root[data-theme="dark"] .quiz { background-color: oklch(96% 0.008 245); color: oklch(24% 0.06 255); }
  .quiz .src a { color: var(--elsa); }

  /* Kartice predmeta: tanka ELSA traka odozgo umjesto obojenog jezičca */
  .home-card::after { inset-block-start: 0; inset-inline: 0; block-size: 3px; inline-size: auto; border-radius: 0; background: var(--tab); }
  .home-card:hover { transform: translateY(-2px); }
  a.post:hover { transform: translateY(-1px); }
  .subj::before { transform: none; border-radius: 50%; inline-size: 7px; block-size: 7px; }
  .hit .h .dot { transform: none; border-radius: 50%; }
  .side-foot { border-block-start-style: solid; }
  .palette-form { border-block-end-style: solid; }
}
