/* ============================================================
   PORT dizajnerske predaje design_handoff_ranjivosti (2026-07-18)
   u produkciju. Izmene u odnosu na prototip:
   · data-day zivi na <body> (layout.php body_attrs), ne na <html>
     — data-theme ostaje na html+body (site konvencija, bez FOUC-a)
   · PREVIEW RIBBON sekcija uklonjena (alat za reviziju predaje)
   · fontovi: lokalni fonts.css iz layout-a (prototip je vukao CDN)
   Ostalo 1:1. header.css je iskljucen za body.page-kev (kao page-vesti).
   ============================================================ */

/* ============================================================
   CRVENA PILULA — /ranjivosti/ · KEV KONZOLA · v2.1 „one pane of glass"
   Refinement pass — pravila discipline:
   · TIP SKALA (desktop): 10 / 10.5 / 11.5 / 12.5 / 14 / 16.5 / 26 / 42
   · TEŽINA: 600 samo za reč statusa, brojku dana, 58% i naziv u kartici;
     mono podaci su 500; sve ostalo 400
   · BOJA: crvena = signal (ransomver, 5+ god, aktivan tab); EPSS pojas
     boji SAMO procenat; hrom je monohrom
   · HROM: jedan okvir po ploči; unutra samo hairline separatori;
     bez punjenih glava ploča, bez ukrasnih uglova, bez grid teksture
   ============================================================ */

:root{
  --al-bg:#0f0f0d; --al-rail:#0a0a09;
  --al-plate:#141412; --al-plate2:#191917; --al-field:#0a0a09;
  --al-line:#242422; --al-line2:#343430;
  --al-hi:#ece9e3; --al-md:#c8c5be; --al-lo:#a0a09e; --al-mute:#8a8780; --al-faint:#5a5754;
  /* --al-mute-text = pod za TEKST (4,5:1). --al-faint ostaje UKRASNI ton
     (tačke, obrisi, popuna merača) i više ne nosi slova. */
  --al-mute-text:#8a8780;
  --al-brand:#c0392b; --al-brand-hi:#d44a3a;
  /* crvena kao TEKST: --al-brand/-hi nose i podloge i ivice, pa se ne diraju.
     Tamna uzima --brand-on-dark (#ee4130, S130); svetla ostaje na #b0301f. */
  --al-brand-text:var(--brand-on-dark); --al-brand-soft:rgba(192,57,43,.14);
  --al-risk-hi:#d0604e; --al-risk-med:#c79248; --al-risk-low:#7fa168;
  --al-accent:#ffd9a8;
  /* Boje rizika nose i trake, tacke i podloge — osnovni tokeni se ne diraju.
     U tamnoj temi one i kao tekst prolaze, pa -text pokazuje na njih same;
     u svetloj su presvetle za slova, pa tamo idu nize. */
  --al-risk-hi-text:var(--al-risk-hi); --al-risk-med-text:var(--al-risk-med);
  --al-risk-low-text:var(--al-risk-low); --al-accent-text:var(--al-accent);
  --al-track:#1d1d1b;
  --hdr-h:56px; /* = header.css --hdr-h (deljeni site heder, ne dizajnerov slim) */
  /* rail-w 252→290 (S85, Denis): šira kolona → picker čipovi se slažu u manje
     redova, rail ne dodiruje dno na FHD */
  --ftr-h:38px; --rail-w:290px; --gap:14px; --pad:18px;
  --font-sans:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'Courier New',monospace;
}
body[data-day="mirno"]{ --day:#7fa168; --day-soft:rgba(127,161,104,.09); --day-line:rgba(127,161,104,.38); }
body[data-day="posla"]{ --day:#c79248; --day-soft:rgba(199,146,72,.08); --day-line:rgba(199,146,72,.38); --day-hi:#ffd9a8; }
body[data-day="gori"]{ --day:#d44a3a; --day-soft:rgba(192,57,43,.09); --day-line:rgba(192,57,43,.45); }
body{ --day-hi:var(--day); }

html[data-theme="light"]{ color-scheme:light; }
html[data-theme="light"]{
  --al-bg:#f2f0e9; --al-rail:#ece9e0;
  --al-plate:#ffffff; --al-plate2:#f6f4ee; --al-field:#ffffff;
  --al-line:#e7e3d8; --al-line2:#cec9bb;
  --al-hi:#1a1917; --al-md:#403d37; --al-lo:#5b574f; --al-mute:#7b776e; --al-faint:#a8a49b;
  --al-mute-text:#666663;
  --al-brand:#b0301f; --al-brand-hi:#c0392b; --al-brand-text:#b0301f; --al-brand-soft:rgba(176,48,31,.10);
  --al-risk-hi:#b04a38; --al-risk-med:#a4762e; --al-risk-low:#5f7f4c;
  --al-accent:#9a5a15;
  --al-risk-hi-text:#aa4736; --al-risk-med-text:#845f25;
  --al-risk-low-text:#526d41; --al-accent-text:#935614;
  --al-track:#efece2;
}
body[data-theme="light"][data-day="mirno"]{ --day:#5f7f4c; --day-soft:rgba(95,127,76,.09); --day-line:rgba(95,127,76,.4); }
body[data-theme="light"][data-day="posla"]{ --day:#a4762e; --day-soft:rgba(164,118,46,.09); --day-line:rgba(164,118,46,.4); --day-hi:#8a5f22; }
body[data-theme="light"][data-day="gori"]{ --day:#b0301f; --day-soft:rgba(176,48,31,.07); --day-line:rgba(176,48,31,.4); }

*,*::before,*::after{ box-sizing:border-box; }
html{ color-scheme:dark; }
html,body{ margin:0; background:var(--al-bg); color:var(--al-hi); font-family:var(--font-sans); font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a{ color:var(--al-hi); text-decoration:none; cursor:pointer; }
a:hover{ color:var(--al-brand-text); }
button{ font-family:inherit; cursor:pointer; background:transparent; border:0; color:inherit; padding:0; }
ul,ol{ list-style:none; padding:0; margin:0; }
h1,h2,h3,h4,p{ margin:0; }
.mono{ font-family:var(--font-mono); font-feature-settings:'tnum' 1,'zero' 1; }
::selection{ background:var(--al-brand-soft); color:var(--al-hi); }
.vh{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
body::before{ content:""; position:fixed; inset:0; pointer-events:none; z-index:100; opacity:.4; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
html[data-theme="light"] body::before{ opacity:.26; mix-blend-mode:multiply; }

/* mikro-etiketa — jedan glas za sve labele */
.microlbl{ font-family:var(--font-mono); font-weight:400; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--al-mute-text); }

/* --- stanja dana --- */
[data-only]{ display:none; }
body[data-day="mirno"] span[data-only~="mirno"],
body[data-day="posla"] span[data-only~="posla"],
body[data-day="gori"] span[data-only~="gori"]{ display:inline; }
body[data-day="mirno"] .kv-mirno[data-only~="mirno"]{ display:flex; }
body[data-day="posla"] .ncard[data-only~="posla"],
body[data-day="gori"] .ncard[data-only~="gori"]{ display:grid; }
body[data-day="mirno"] .rr-new{ display:none; }

/* ============================================================
   SHELL
   ============================================================ */
.shell{ position:fixed; inset:0; display:grid; grid-template-columns:var(--rail-w) 1fr; grid-template-rows:var(--hdr-h) minmax(0,1fr) auto var(--ftr-h); grid-template-areas:"hdr hdr" "rail glass" "lband lband" "ftr ftr"; }

/* HEDER = deljeni site heder (partials/header.php + header.css) po Denisovoj
   presudi — dizajnerov slim heder iz prototipa NIJE portovan. Ovde samo
   smeštanje u konzolni grid; sve ostalo stilizuje header.css. */
body.page-kev .hdr{ grid-area:hdr; }
.live-dot{ width:6px; height:6px; border-radius:50%; background:var(--al-risk-low); animation:pulse 2.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

.ftr{ grid-area:ftr; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 20px; background:var(--al-rail); border-top:1px solid var(--al-line); font-family:var(--font-mono); font-size:10.5px; color:var(--al-mute-text); z-index:20; }
.ftr a{ color:var(--al-mute-text); }
.ftr a:hover{ color:var(--al-hi); }
.ftr .dot{ display:inline-block; width:2px; height:2px; border-radius:50%; background:var(--al-faint); margin:0 9px; vertical-align:middle; }

/* ============================================================
   RAIL
   ============================================================ */
.rail{ grid-area:rail; background:var(--al-rail); border-right:1px solid var(--al-line); overflow-y:auto; padding:22px 18px 24px; display:flex; flex-direction:column; gap:26px; scrollbar-width:thin; scrollbar-color:var(--al-line2) transparent; }
.rail-block h4{ font-family:var(--font-mono); font-weight:400; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--al-mute-text); margin:0 0 12px; }
.coord{ display:flex; flex-direction:column; gap:8px; }
.coord > div{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:12px; color:var(--al-mute-text); }
.coord b{ font-family:var(--font-mono); font-weight:500; font-size:11.5px; color:var(--al-md); }
.coord b.fresh{ color:var(--al-risk-low-text); }
.rail-status{ border:1px solid var(--day-line); background:var(--day-soft); padding:11px 12px; display:flex; flex-direction:column; gap:7px; }
.rail-status .lamp-row{ display:flex; align-items:center; gap:9px; }
.lamp{ width:8px; height:8px; border-radius:50%; background:var(--day); flex:0 0 auto; }
body[data-day="gori"] .lamp{ animation:pulse 1.6s ease-in-out infinite; }
.rail-status .word{ font-family:var(--font-mono); font-weight:600; font-size:13px; letter-spacing:.18em; color:var(--day-hi); }
.rail-status .nums{ display:flex; gap:13px; font-size:11.5px; color:var(--al-mute-text); }
.rail-status .nums b{ font-family:var(--font-mono); font-weight:500; font-size:11.5px; color:var(--al-md); }
/* picker */
.chips{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-weight:400; font-size:11px; padding:5px 9px; color:var(--al-lo); background:transparent; border:1px solid var(--al-line2); border-radius:2px; transition:color .15s ease,border-color .15s ease,background .15s ease; white-space:nowrap; }
.chip .c{ font-size:10px; color:var(--al-mute-text); }
.chip:hover{ color:var(--al-hi); border-color:var(--al-mute); }
.chip:focus-visible{ outline:2px solid var(--al-brand); outline-offset:2px; }
.chip.on{ color:var(--al-hi); border-color:var(--al-brand); background:var(--al-brand-soft); }
.chip.on .c{ color:var(--al-md); }
.chip.zero{ opacity:.4; }
.picker-note{ font-size:11px; line-height:1.55; color:var(--al-mute-text); margin-top:10px; }
.seg{ display:inline-flex; border:1px solid var(--al-line2); border-radius:2px; overflow:hidden; }
.seg button{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.04em; padding:5px 10px; color:var(--al-mute-text); border-right:1px solid var(--al-line2); white-space:nowrap; }
.seg button:last-child{ border-right:0; }
.seg button:hover{ color:var(--al-hi); }
.seg button.on{ color:var(--al-hi); background:var(--al-plate2); }
.prikaz-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.prikaz-row .lbl{ font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--al-mute-text); }
/* legenda */
.legend{ display:flex; flex-direction:column; gap:16px; }
.lgroup{ display:flex; flex-direction:column; gap:7px; }
.lgt{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--al-mute-text); margin-bottom:2px; }
.lrow{ display:flex; align-items:center; gap:9px; font-size:11px; line-height:1.4; color:var(--al-mute-text); }
.lrow b{ font-family:var(--font-mono); font-weight:500; font-size:10px; letter-spacing:.12em; color:var(--al-md); }
.lrow .d{ width:7px; height:7px; border-radius:50%; flex:0 0 auto; }
.d.ok{ background:var(--al-risk-low); }
.d.warn{ background:var(--al-risk-med); }
.d.hot{ background:var(--al-brand-hi); }
.lrow .pv{ font-family:var(--font-mono); font-size:10px; font-weight:500; min-width:44px; flex:0 0 auto; }

/* ============================================================
   GLASS
   ============================================================ */
/* Bez ploče „novo" (S81): registar i katalog dele ceo prostor ispod statusa.
   Registar (radna lista) dobija širu kolonu od kataloga (statistika/metod.). */
.glass{ grid-area:glass; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr); grid-template-rows:auto auto minmax(0,1fr); grid-template-areas:"mast mast" "status status" "registar side"; gap:var(--gap); padding:var(--gap); min-height:0; background:var(--al-bg); }

/* MASTHEAD v2 (S88e) — varijanta B „Registarska linija" iz dizajnerske
   predaje design_handoff_kev_zaglavlje (hi-fi, 2026-07-20):
   · red 1 = kicker + hairline + meta, ISTI mono glas (10.5px, uppercase),
     preko cele širine — hairline ih vezuje; „U katalogu" ispao (duplikat
     statusne ploče odmah ispod);
   · red 2 = naslov sam, 24px/600/−.015em + podnaslov 13px bez separatora;
   · zona bez sopstvenog okvira (raniji border-bottom uklonjen);
   · <900px: hairline nestaje, meta u drugi mono red, naslov 20px. */
.mast{ grid-area:mast; display:flex; flex-direction:column; min-width:0; padding:2px 4px 0; }
.mast-row{ display:flex; align-items:center; gap:14px; min-width:0; }
.mast-kick,.mast-meta{ display:flex; align-items:center; gap:8px; margin:0; flex:0 0 auto;
  font-family:var(--font-mono); font-size:10.5px; font-weight:400;
  letter-spacing:.18em; text-transform:uppercase; color:var(--al-mute-text); white-space:nowrap; }
.mast-kick::before{ content:""; width:5px; height:5px; flex:0 0 auto;
  border-radius:50%; background:var(--al-brand-hi); }
.mast-kick .sec,.mast-kick .sl{ color:var(--al-brand-text); }
.mast-row .here{ color:var(--al-md); font-weight:500; letter-spacing:.06em; }
.mast-meta .k{ letter-spacing:.14em; }
.mast-line{ flex:1 1 auto; height:1px; background:var(--al-line); min-width:24px; }
.mast-title{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; min-width:0; margin-top:10px; }
.mast-h{ font-size:24px; font-weight:600; letter-spacing:-.015em; color:var(--al-hi); line-height:1.05; }
.mast-sub{ font-size:13px; font-weight:400; letter-spacing:.01em; color:var(--al-mute-text); }
@media (max-width:899px){
  .mast-row{ flex-wrap:wrap; gap:6px 14px; }
  .mast-line{ display:none; }
  .mast-meta{ width:100%; }
  .mast-h{ font-size:20px; }
}

.pane{ border:1px solid var(--al-line); background:var(--al-plate); display:flex; flex-direction:column; min-height:0; min-width:0; }
.pane-head{ flex:0 0 auto; display:flex; align-items:stretch; gap:12px; padding:0 var(--pad); height:44px; border-bottom:1px solid var(--al-line); }
.pane-title{ display:flex; align-items:center; gap:8px; font-family:var(--font-mono); font-weight:400; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--al-mute-text); white-space:nowrap; }
.pane-title .cnt{ color:var(--al-mute-text); letter-spacing:.08em; }
.pane-body{ flex:1 1 auto; overflow-y:auto; min-height:0; scrollbar-width:thin; scrollbar-color:var(--al-line2) transparent; }
.pane-foot{ flex:0 0 auto; border-top:1px solid var(--al-line); padding:9px var(--pad); display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:var(--font-mono); font-size:10px; letter-spacing:.04em; color:var(--al-mute-text); }
.pane-foot a,.pane-foot button{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.04em; color:var(--al-mute-text); }
.pane-foot a:hover,.pane-foot button:hover{ color:var(--al-hi); }
/* tabovi — podvlaka umesto kutije */
.tabs{ display:flex; gap:18px; margin-left:auto; }
.tabs button{ font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:0 1px; color:var(--al-mute-text); border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .15s ease; }
.tabs button:hover{ color:var(--al-md); }
.tabs button.on{ color:var(--al-hi); border-bottom-color:var(--al-brand); }
[data-pane]{ display:none; }
[data-pane].on{ display:block; }

/* ============================================================
   STATUS TRAKA — jedna rečenica nosi jutro
   ============================================================ */
.status-band{ grid-area:status; border:1px solid var(--al-line); border-left:3px solid var(--day); background:var(--al-plate); display:grid; grid-template-columns:minmax(0,1fr) auto; }
.status-main{ display:flex; align-items:center; gap:26px; padding:20px 26px; background:linear-gradient(90deg,var(--day-soft),transparent 60%); min-width:0; }
.status-word{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.status-main .lamp{ width:9px; height:9px; }
.status-main .word{ font-family:var(--font-mono); font-weight:600; font-size:15px; letter-spacing:.22em; color:var(--day-hi); white-space:nowrap; }
.status-main .kaz{ font-size:16.5px; line-height:1.55; color:var(--al-md); min-width:0; max-width:66ch; text-wrap:pretty; }
.status-main .kaz b{ color:var(--al-hi); font-weight:600; }
.status-nums{ display:grid; grid-template-columns:repeat(3,auto); }
.jnum{ padding:16px 26px 14px; border-left:1px solid var(--al-line); display:flex; flex-direction:column; gap:3px; justify-content:center; min-width:116px; }
.jnum .k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--al-mute-text); white-space:nowrap; }
.jnum .v{ font-family:var(--font-mono); font-weight:500; font-size:26px; line-height:1.15; color:var(--al-md); }
.jnum.jnum-day .v{ color:var(--day-hi); font-weight:600; }
.status-stamp{ grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; padding:8px 26px; border-top:1px solid var(--al-line); font-family:var(--font-mono); font-size:10.5px; color:var(--al-mute-text); }
.status-stamp .live-dot{ width:5px; height:5px; }
.status-stamp b{ font-weight:500; color:var(--al-mute-text); }
.status-stamp .sep{ opacity:1; }
.status-stamp .right{ margin-left:auto; }

/* ============================================================
   PLOČA · NOVO OD JUČE
   ============================================================ */
.pane-novo{ grid-area:novo; }
.kv-mirno{ margin:var(--pad); border:1px dashed var(--day-line); padding:22px 24px; align-items:flex-start; gap:18px; }
.kv-mirno .mark{ font-family:var(--font-mono); font-size:18px; color:var(--day); line-height:1.3; flex:0 0 auto; }
.kv-mirno .t{ font-size:14.5px; color:var(--al-md); line-height:1.65; }
.kv-mirno .t b{ color:var(--al-hi); font-weight:600; }
.kv-mirno .t .sub{ display:block; margin-top:9px; font-size:12.5px; color:var(--al-mute-text); }
.ncard{ grid-template-columns:minmax(0,1fr) auto; gap:0 18px; padding:16px var(--pad) 15px; border-bottom:1px solid var(--al-line); cursor:pointer; transition:background .12s ease; }
.ncard:last-child{ border-bottom:0; }
.ncard:hover{ background:var(--al-plate2); }
.ncard:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-2px; }
.ncard-main{ grid-column:1; grid-row:1; min-width:0; }
.ncard-id{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin-bottom:7px; }
.cve{ font-family:var(--font-mono); font-weight:500; font-size:12.5px; letter-spacing:.02em; color:var(--al-lo); }
.dtag{ font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--day-hi); }
.atag{ font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; color:var(--al-risk-med-text); }
.rw{ font-family:var(--font-mono); font-weight:500; font-size:9px; letter-spacing:.14em; padding:2px 6px; background:var(--al-brand); color:#fff; border-radius:1px; }
.ncard-vp{ font-size:15px; font-weight:600; letter-spacing:-.005em; color:var(--al-hi); margin-bottom:5px; }
.ncard-vp .sep{ color:var(--al-mute-text); font-weight:400; padding:0 5px; }
.ncard-opis{ font-size:13.5px; line-height:1.6; color:var(--al-md); max-width:64ch; text-wrap:pretty; }
.ncard-epss{ grid-column:2; grid-row:1; display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; padding-top:2px; }
.epss-k{ font-family:var(--font-mono); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--al-mute-text); }
.epss-v{ font-family:var(--font-mono); font-weight:500; font-size:17px; line-height:1.1; }
.epss-d{ font-size:9.5px; line-height:1.4; color:var(--al-mute-text); max-width:13ch; }
.band-hi{ color:var(--al-risk-hi-text); }
.band-med{ color:var(--al-risk-med-text); }
.band-low{ color:var(--al-risk-low-text); }
.ncard-foot{ grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:4px 18px; margin-top:11px; }
.ilink{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.03em; color:var(--al-mute-text); border-bottom:1px solid transparent; }
.ilink:hover{ color:var(--al-hi); border-bottom-color:var(--al-line2); }
.ilink .ext{ margin-left:3px; }
.ilink-go{ margin-left:auto; color:var(--al-mute-text); }
.ncard:hover .ilink-go{ color:var(--al-hi); }

/* ============================================================
   PLOČA · REGISTAR
   ============================================================ */
.pane-reg{ grid-area:registar; }
.rrow{ display:grid; grid-template-columns:148px minmax(0,1fr) auto; gap:0 14px; align-items:center; padding:11px var(--pad); border-bottom:1px solid var(--al-line); cursor:pointer; transition:background .12s ease; text-align:left; width:100%; }
.rrow:last-child{ border-bottom:0; }
.rrow:hover{ background:var(--al-plate2); }
.rrow:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-2px; }
.rrow .rc1{ display:flex; flex-direction:column; gap:3px; align-items:flex-start; min-width:0; }
.rrow .cve{ font-size:11.5px; }
.rrow .rdate{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); }
.rrow .rtags{ display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.rrow .atag{ font-size:9.5px; }
.rrow .rw{ font-size:8.5px; padding:1px 5px; }
.rrow .rmain{ min-width:0; }
.rrow .rvp{ font-size:13px; font-weight:500; color:var(--al-hi); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.rrow .rvp .sep{ color:var(--al-mute-text); font-weight:400; padding:0 4px; }
.rrow .ren{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; margin-top:2px; }
.rrow .repss{ display:flex; align-items:baseline; gap:6px; justify-content:flex-end; min-width:64px; }
.rrow .repss .v{ font-family:var(--font-mono); font-weight:500; font-size:12px; }
.rrow .repss .k{ font-family:var(--font-mono); font-size:8.5px; letter-spacing:.14em; color:var(--al-mute-text); }
.rrow.dim,.ncard.dim{ opacity:.3; }

/* ============================================================
   PLOČA · SIDE — statistika / uvod
   ============================================================ */
.pane-side{ grid-area:side; }
/* S83: jedna napomena o meračima-filterima umesto pet „klik = filter" hintova */
.stat-note{ font-size:10px; line-height:1.5; color:var(--al-mute-text);
  padding:9px var(--pad) 8px; border-bottom:1px solid var(--al-line); margin:0; }
.sblok{ padding:15px var(--pad) 17px; border-bottom:1px solid var(--al-line); }
.sblok:last-child{ border-bottom:0; }
.sblok .sk{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--al-mute-text); margin-bottom:11px; display:block; }
.sblok .big{ font-family:var(--font-mono); font-weight:600; font-size:42px; line-height:1; letter-spacing:-.02em; color:var(--al-brand-text); }
.sblok .big small{ font-size:19px; color:var(--al-mute-text); font-weight:400; margin-left:3px; }
.sblok .teza{ font-size:12px; line-height:1.6; color:var(--al-lo); margin:9px 0 13px; text-wrap:pretty; max-width:38ch; }
.sblok .teza b{ color:var(--al-md); font-weight:500; }
/* S83: sblok-star — veliki broj i teza jedno pored drugog (štedi redove,
   desna polovina je zjapila prazna); ispod 1024 ostaje naslagano. */
@media (min-width:1024px){
  .sblok-star{ display:grid; grid-template-columns:auto 1fr; gap:2px 24px;
    grid-template-areas:"sk sk" "big teza" "rows rows"; align-items:center; }
  .sblok-star .sk{ grid-area:sk; }
  .sblok-star .big{ grid-area:big; }
  .sblok-star .teza{ grid-area:teza; margin:0; max-width:none; }
  .sblok-star .agerows{ grid-area:rows; margin-top:12px; }
}
.agerows{ display:flex; flex-direction:column; gap:6px; }
/* .agerow je <button> (klik → filter registra po pojasu starosti) */
.agerow{ display:grid; grid-template-columns:66px 1fr 78px; gap:10px; align-items:center;
  width:100%; text-align:left; background:transparent; border:0; padding:4px 6px; margin:0 -6px;
  border-radius:3px; cursor:pointer; transition:background .13s ease; }
.agerow:hover{ background:rgba(255,255,255,.03); }
html[data-theme="light"] .agerow:hover{ background:rgba(0,0,0,.03); }
.agerow:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-1px; }
.agerow:hover .al{ color:var(--al-hi); }
.agerow.is-active{ background:var(--al-brand-soft); }
.agerow.is-active .al{ color:var(--al-hi); font-weight:500; }
.agerow.is-active .bar{ fill:var(--al-brand); }
.agerow.is-active .an b{ color:var(--al-hi); }
.agerow .al{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); white-space:nowrap; }
.agerow svg{ display:block; width:100%; height:8px; }
.bar-bg{ fill:var(--al-track); }
.agerow .bar{ fill:var(--al-line2); }
.agerow.hot .bar{ fill:var(--al-brand); }
.agerow .an{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); text-align:right; white-space:nowrap; }
.agerow .an b{ color:var(--al-mute-text); font-weight:500; }
.sblok.trend{ display:flex; flex-direction:column; }

/* ---- Mesečni grafikon v2 — klikabilne kolone (S81) ---- */
.trend2{ display:grid; grid-template-columns:auto 1fr; gap:0 9px; margin-top:4px; }
.trend2-y{ display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end;
  font-size:9px; line-height:1; color:var(--al-mute-text); padding-bottom:15px; }
.trend2-body{ position:relative; }
.trend2-grid{ position:absolute; left:0; right:0; top:0; bottom:15px; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none; }
.trend2-grid span{ height:1px; background:var(--al-line); }
/* flex (ne grid) + definisana visina — da flex:1 na .tcol-bar bude
   ODREĐEN, inače SVG height:100% pada na intrinzičnu visinu i prelije se. */
.trend2-cols{ position:relative; display:flex; gap:5px; height:130px; }
.tcol{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:stretch; height:100%; padding:0; background:transparent; border:0; cursor:pointer; }
.tcol-bar{ flex:1 1 auto; display:block; min-height:0; }
.tcol-bar svg{ display:block; width:100%; height:100%; }
.tcol .tb{ fill:var(--al-line2); transition:fill .13s ease; }
.tcol-x{ margin-top:5px; font-size:9px; line-height:1; color:var(--al-mute-text); text-align:center; transition:color .13s ease; }
.tcol:hover .tb{ fill:var(--al-mute); }
.tcol:hover .tcol-x{ color:var(--al-md); }
.tcol:focus-visible{ outline:2px solid var(--al-brand); outline-offset:2px; border-radius:2px; }
.tcol.is-cur .tb{ fill:var(--al-brand); }               /* tekući mesec — signal */
.tcol.is-cur .tcol-x{ color:var(--al-brand-text); }
.tcol.is-active .tb{ fill:var(--al-brand-hi); }         /* izabran u filteru */
.tcol.is-active .tcol-x{ color:var(--al-hi); font-weight:500; }
.sblok .sk{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.sk .skx{ letter-spacing:.04em; text-transform:none; }
.trend-plot{ flex:1; display:grid; grid-template-columns:auto 1fr; grid-template-rows:minmax(84px,1fr) auto; gap:3px 10px; min-height:112px; }
.trend-y{ grid-area:1 / 1; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; font-family:var(--font-mono); font-size:9px; line-height:1; color:var(--al-mute-text); }
.trend-svg{ grid-area:1 / 2; min-width:0; }
.trend-svg svg{ display:block; width:100%; height:100%; }
.trend .gl{ stroke:var(--al-line); stroke-width:1; }
.trend .tb{ fill:var(--al-line2); }
.trend .tb.hot{ fill:var(--al-brand); }
.trend-x{ grid-area:2 / 2; display:grid; grid-template-columns:repeat(12,1fr); font-family:var(--font-mono); font-size:9px; color:var(--al-mute-text); text-align:center; }
.vend{ display:flex; flex-direction:column; gap:2px; }
/* .vrow je <button> (klik → filter registra po proizvođaču) */
.vrow{ display:grid; grid-template-columns:66px 1fr 32px; gap:10px; align-items:center;
  width:100%; text-align:left; background:transparent; border:0; padding:4px 6px; margin:-1px -6px;
  border-radius:3px; cursor:pointer; transition:background .13s ease; }
.vrow:hover{ background:rgba(255,255,255,.03); }
html[data-theme="light"] .vrow:hover{ background:rgba(0,0,0,.03); }
.vrow:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-1px; }
.vrow .vl{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vrow svg{ display:block; width:100%; height:7px; }
.vrow .bar{ fill:var(--al-line2); }
.vrow:first-child .bar{ fill:var(--al-brand); }
.vrow .vn{ font-family:var(--font-mono); font-size:10px; color:var(--al-mute-text); text-align:right; }
.vrow:hover .vl{ color:var(--al-hi); }
.vrow.is-active{ background:var(--al-brand-soft); }
.vrow.is-active .vl{ color:var(--al-hi); font-weight:500; }
.vrow.is-active .bar{ fill:var(--al-brand); }
.vrow.is-active .vn{ color:var(--al-brand-text); }
.rwline{ display:flex; align-items:baseline; gap:10px; margin-bottom:9px; }
.rwline .big2{ font-family:var(--font-mono); font-weight:600; font-size:26px; line-height:1; color:var(--al-md); }
.rwline .d{ font-size:11px; color:var(--al-mute-text); }
.rwbar{ display:block; }
.rwbar svg{ display:block; width:100%; height:8px; }
.rwbar .bar{ fill:var(--al-brand); }
/* .rwbtn — ransomver merač je <button> (klik → filter registra), S83 */
.rwbtn{ display:block; width:100%; text-align:left; background:transparent; border:0;
  padding:6px 6px 8px; margin:0 -6px; border-radius:3px; cursor:pointer; transition:background .13s ease; }
.rwbtn:hover{ background:rgba(255,255,255,.03); }
html[data-theme="light"] .rwbtn:hover{ background:rgba(0,0,0,.03); }
.rwbtn:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-1px; }
.rwbtn.is-active{ background:var(--al-brand-soft); }
.rwbtn.is-active .big2{ color:var(--al-hi); }
.rwbtn.is-active .d{ color:var(--al-mute-text); }
/* ---- EPSS pojasevi — merač kao filter (S83) ---- */
.bands{ display:flex; gap:7px; }
.brow{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  background:transparent; border:1px solid var(--al-line2); border-radius:3px; padding:8px 10px;
  cursor:pointer; text-align:left; transition:background .13s ease, border-color .13s ease; }
.brow:hover{ background:rgba(255,255,255,.03); }
html[data-theme="light"] .brow:hover{ background:rgba(0,0,0,.03); }
.brow:focus-visible{ outline:2px solid var(--al-brand); outline-offset:-1px; }
.brow.is-active{ background:var(--al-brand-soft); border-color:var(--al-brand); }

/* ============================================================
   S83 (Denis): JASNA OZNAKA IZABRANOG FILTERA (mobilni + desktop)
   Problem: „crvena na crvenu" — kad je sadržaj merača crven (EPSS ≥30%,
   ransomver), crveni brand-soft fon se nije razlikovao. Signal je sad
   NEUTRALAN: kremasti ✓ + čvrst brand obris/akcenat, nezavisno od boje. */
.brow.is-active,.rwbtn.is-active{ position:relative; }
.brow.is-active{ box-shadow:inset 0 0 0 2px var(--al-brand); }
.brow.is-active::after{ content:"✓"; position:absolute; top:4px; right:7px;
  font-size:12px; font-weight:700; line-height:1; color:var(--al-hi); }
/* redovi (starost/proizvođač) + ransomver: levi brand akcenat + ✓ */
.agerow.is-active,.vrow.is-active,.rwbtn.is-active{ box-shadow:inset 3px 0 0 var(--al-brand); }
.rwbtn.is-active::after{ content:"✓"; position:absolute; top:8px; right:9px;
  font-size:13px; font-weight:700; line-height:1; color:var(--al-hi); }
.agerow.is-active .al,.vrow.is-active .vl{ color:var(--al-hi); font-weight:600; }
/* mesečni grafikon: aktivna kolona dobija kremasti ✓ iznad */
.tcol.is-active{ position:relative; }
.tcol.is-active::after{ content:"✓"; position:absolute; top:-2px; left:50%;
  transform:translateX(-50%); font-size:10px; font-weight:700; color:var(--al-hi); }
.brow .bv{ font-size:11px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
.brow .bn{ font-size:12px; color:var(--al-mute-text); }
.brow.is-active .bn{ color:var(--al-hi); }
/* uvod */
.uvod{ padding:17px var(--pad) 19px; }
.uvod h3{ font-size:13.5px; font-weight:600; color:var(--al-hi); margin:0 0 8px; }
.uvod h3 .n{ font-family:var(--font-mono); font-size:10px; font-weight:400; color:var(--al-mute-text); margin-right:8px; }
.uvod p{ font-size:12.5px; line-height:1.65; color:var(--al-lo); text-wrap:pretty; max-width:52ch; }
.uvod p strong{ color:var(--al-md); font-weight:500; }
.uvod p+h3{ margin-top:18px; }
.ucol+.ucol{ margin-top:20px; }
.uvod-links{ display:flex; flex-direction:column; gap:8px; margin-top:11px; }
.uvod-links a{ font-family:var(--font-mono); font-size:11px; color:var(--al-mute-text); display:flex; gap:9px; align-items:baseline; }
.uvod-links a .ar{ color:var(--al-brand-text); }
.uvod-links a:hover{ color:var(--al-hi); }

/* m-picker */
.m-picker{ display:none; }
/* S83 (Denisov nalaz): pre je izgledao kao običan naslov — nije se videlo
   da se tapka da se otvori. Sad je jasno dugme: okvir, „otvori" hint, + znak
   koji se u × pretvara kad je otvoren. */
.m-picker summary{ list-style:none; display:flex; align-items:center; gap:10px;
  margin:10px var(--pad); padding:12px 14px; border:1px solid var(--al-line2);
  border-radius:3px; background:var(--al-plate2);
  font-family:var(--font-mono); font-size:13px; letter-spacing:.02em;
  color:var(--al-hi); cursor:pointer; }
.m-picker summary::after{ content:"+"; margin-left:auto; font-size:18px; line-height:1;
  color:var(--al-brand-text); }
.m-picker[open] summary{ border-color:var(--al-brand); background:var(--al-brand-soft); }
.m-picker[open] summary::after{ content:"×"; }
.m-picker summary:active{ background:var(--al-plate); }
.m-picker .inner{ padding:0 var(--pad) 14px; }

/* ============================================================
   DRAWER
   ============================================================ */
/* Backdrop pokriva i levi rail (S89, Denis): rail uz otvoren drawer ničemu ne
   služi, a nezatamnjen štrči — naročito na svetloj temi. Klik na njega sada
   zatvara drawer kao i ostatak pozadine. (Predaja je rail izuzimala kao hrom.) */
.drawer-backdrop{ position:fixed; inset:var(--hdr-h) 0 var(--ftr-h) 0; background:rgba(0,0,0,.45); opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:30; }
html.drawer-open .drawer-backdrop{ opacity:1; pointer-events:auto; }
.drawer{ position:fixed; top:var(--hdr-h); bottom:var(--ftr-h); right:0; width:min(560px,92vw); background:var(--al-plate); border-left:1px solid var(--al-line2); transform:translateX(102%); transition:transform .42s cubic-bezier(.32,.72,.28,1); z-index:31; display:flex; flex-direction:column; }
html.drawer-open .drawer{ transform:translateX(0); }
.drawer-head{ flex:0 0 auto; display:flex; align-items:center; gap:14px; padding:15px 24px; border-bottom:1px solid var(--al-line); }
.drawer-head .cve{ font-size:14px; font-weight:500; color:var(--al-hi); }
.drawer-head .rw{ font-size:9.5px; padding:2px 7px; }
.drawer-close{ margin-left:auto; width:30px; height:30px; font-size:19px; line-height:1; color:var(--al-mute-text); border:1px solid var(--al-line); border-radius:2px; }
.drawer-close:hover{ color:var(--al-hi); border-color:var(--al-line2); }
.drawer-body{ flex:1 1 auto; overflow-y:auto; padding:24px 24px 32px; scrollbar-width:thin; scrollbar-color:var(--al-line2) transparent; }
.dmeta{ display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; padding-bottom:18px; border-bottom:1px solid var(--al-line); margin-bottom:18px; }
.dmeta .k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--al-mute-text); display:block; margin-bottom:4px; }
.dmeta .v{ font-family:var(--font-mono); font-size:12.5px; font-weight:500; color:var(--al-md); }
.dmeta .v.warn{ color:var(--al-risk-med-text); }
.depss{ margin:0 0 22px; }
.depss .row{ display:flex; align-items:baseline; gap:10px; margin-bottom:7px; }
.depss .v{ font-family:var(--font-mono); font-weight:600; font-size:22px; }
.depss .k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--al-mute-text); }
.depss svg{ display:block; width:100%; height:8px; }
.depss .bar-hi{ fill:var(--al-risk-hi); }
.depss .bar-med{ fill:var(--al-risk-med); }
.depss .bar-low{ fill:var(--al-risk-low); }
.dtitle{ font-size:19px; font-weight:600; line-height:1.35; color:var(--al-hi); margin:0 0 5px; text-wrap:balance; }
.den{ font-family:var(--font-mono); font-size:11px; color:var(--al-mute-text); margin:0 0 16px; }
.dopis{ font-size:15.5px; line-height:1.7; color:var(--al-md); text-wrap:pretty; margin:0 0 14px; }
.dorig{ margin:0 0 20px; border:1px dashed var(--al-line); }
.dorig summary{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.06em; color:var(--al-mute-text); padding:8px 12px; cursor:pointer; list-style:none; }
.dorig summary::before{ content:"→ "; color:var(--al-mute-text); }
.dorig[open] summary::before{ content:"↓ "; }
.dorig summary:hover{ color:var(--al-hi); }
.dorig p{ font-size:13px; line-height:1.6; color:var(--al-lo); padding:0 12px 12px; }
.dcisa{ border:1px solid rgba(199,146,72,.3); background:rgba(199,146,72,.06); padding:13px 16px; margin:0 0 22px; }
.dcisa b{ display:block; font-family:var(--font-mono); font-weight:500; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--al-risk-med-text); margin-bottom:6px; }
.dcisa p{ font-size:13.5px; line-height:1.6; color:var(--al-md); }
.dlinks{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
/* Dugmad popunjavaju red do kraja (S128): sa tri dugmeta prirodne širine je
   zdesna ostajao komad praznine. Rastu iz svoje širine, pa hijerarhija
   ostaje — NVD najkraći, uputstvo najduže — samo se višak razdeli. Kad se
   red prelomi, svako dugme u svom redu ide punom širinom. */
.dlinks .dbtn{ flex:1 1 auto; text-align:center; }
.dbtn{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; padding:10px 16px; border:1px solid var(--al-line2); border-radius:2px; color:var(--al-md); }
.dbtn:hover{ color:var(--al-hi); border-color:var(--al-mute); }
.dbtn.primary{ color:#fff; background:var(--al-brand); border-color:var(--al-brand); }
.dbtn.primary:hover{ background:var(--al-brand-hi); border-color:var(--al-brand-hi); color:#fff; }
/* Podeli (S128) — natpis se na dve sekunde menja u „Link kopiran", pa dugme
   ne sme da se skuplja i širi i pomera susede. Mera se drži kroz flex-basis,
   ne kroz min-width: dok dugmad rastu, osnovica im je širina sadržaja, pa bi
   promena natpisa preraspodelila ceo red (mereno: 145/211/126 → 141/208/132).
   Fiksna osnovica čini dugme neosetljivim na svoj natpis. */
.dlinks .dshare{ flex-basis:126px; }
.dshare.is-copied{ color:var(--al-hi); border-color:var(--al-mute); }
.dshare-fld{ position:fixed; left:-9999px; top:0; width:1px; height:1px; opacity:0; }
.dint{ border-top:1px solid var(--al-line); padding-top:15px; }
.dint .k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--al-mute-text); display:block; margin-bottom:8px; }
.dint a{ display:block; font-size:13px; color:var(--al-lo); padding:3px 0; }
.dint a:hover{ color:var(--al-hi); }
.dint a .ar{ color:var(--al-brand-text); margin-right:8px; }
.dnote{ margin-top:24px; font-family:var(--font-mono); font-size:10px; line-height:1.65; color:var(--al-mute-text); }

/* ============================================================
   ≤1439px — document tok; 1024–1439 mreža ploča u 2 kolone
   ============================================================ */
@media (max-width:1439px){
  /* S84 (Denis): notch+heder = tačno kao /price/ (koji na iOS-u NE bleeduje).
     SVI dokument-skrol modeli (S83 sticky+safe-pad, S84 fixed, S84 display:
     contents + base sticky) na uređaju su puštali sadržaj (masthead) IZNAD
     hedera. /price/ ne bleeduje jer je body FIKSNA KOLONA (100dvh, overflow:
     hidden), heder je statična traka na vrhu, a sadržaj skroluje u kontejneru
     ISPOD hedera → fizički ne može da provuče iznad hedera. Notch boju daje
     BODY pozadina (iOS-ov body 100dvh prekriva i notch traku), a ona je već
     #0f0f0d = boja hedera. .shell nestaje (display:contents) pa .hdr i .glass
     postaju flex-deca body-ja, isto kao body>.hdr+.cp-scroll na /price/. */
  html:has(body.page-kev){ height:100%; overflow:hidden; }
  body.page-kev{ height:100vh; height:100dvh; overflow:hidden;
    display:flex; flex-direction:column; }
  .shell{ display:contents; }
  body.page-kev .hdr{ position:static; flex:0 0 auto; }
  .rail{ display:none; }
  .glass{ flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .pane-body{ overflow:visible; }
  .pane-reg{ scroll-margin-top:8px; }
  .m-picker{ display:block; border-bottom:1px solid var(--al-line); }
  /* ── S131 (Denisov nalaz na telefonu) ─────────────────────────────────
     Ispod 1440 drawer ide preko cele visine (top:0), pa se sudarao sa dva
     sloja koja stoje IZNAD njega:
       · tabbar (.cp-tabbar) je z-index 200, drawer je bio 31 → donjih
         48px+safe-area sadrzaja je stajalo ISPOD trake i nije se videlo;
       · na uredjaju sa zarezom drawer pocinje na y=0, pa je .drawer-close
         (gore desno) padao POD statusnu traku — nije se moglo izaci.
     Drawer je pun ekran dok je otvoren, pa ide iznad trake, a ne ispod nje.
     Bezbedne zone se citaju ovde jer drawer prekriva heder koji ih inace daje. */
  .drawer{ top:0; bottom:0; z-index:210; padding-top:env(safe-area-inset-top,0px); }
  .drawer-backdrop{ inset:0; z-index:209; }
  .drawer-body{ padding-bottom:calc(32px + env(safe-area-inset-bottom,0px)); }
}
@media (min-width:1024px) and (max-width:1439px){
  .glass{ grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr); grid-template-rows:auto auto auto; grid-template-areas:"mast mast" "status status" "registar side"; align-items:start; }
}
@media (max-width:1023px){
  .glass{ display:flex; flex-direction:column; padding:12px 12px 70px; }
  /* S84: .glass je skroler fiksne visine (inner-scroll model) → flex-deca bi se
     inače SKUPLJALA da stanu, a .pane-body{overflow:visible} bi prelio sadržaj i
     preklopio sledeći panel (Denisov nalaz). flex:0 0 auto → paneli uzimaju
     prirodnu visinu, .glass ih skroluje. */
  .glass > *{ flex:0 0 auto; }
  .mast-sub{ white-space:normal; }
  .status-band{ grid-template-columns:1fr; }
  .status-main{ flex-direction:column; align-items:flex-start; gap:10px; padding:16px 18px; background:linear-gradient(180deg,var(--day-soft),transparent 70%); }
  .status-main .kaz{ font-size:15px; }
  .status-nums{ border-top:1px solid var(--al-line); grid-template-columns:repeat(3,1fr); }
  .jnum{ min-width:0; padding:11px 18px 9px; border-left:0; }
  .jnum+.jnum{ border-left:1px solid var(--al-line); }
  .jnum .v{ font-size:21px; }
  .status-stamp{ padding:8px 18px; }
  .status-stamp .right{ display:none; }
  .ncard{ grid-template-columns:1fr; }
  .ncard-epss{ grid-column:1; grid-row:auto; flex-direction:row; align-items:baseline; gap:8px; margin-top:8px; padding-top:0; }
  .ncard-epss .epss-d{ max-width:none; }
  /* S83 (Denisov nalaz): mobilni red = čista kartica. Dvokolonski grid sa
     tri deteta se ranije loše auto-slagao (CVE kolona pala na 0px, CVE broj
     i proizvođač se preklapali). Eksplicitna područja: CVE-meta + EPSS u
     prvom redu, proizvođač·proizvod preko pune širine ispod. */
  .rrow{ grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"rc1 repss" "rmain rmain"; gap:6px 12px; align-items:start; }
  .rrow .rc1{ grid-area:rc1; flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:3px 8px; }
  .rrow .rmain{ grid-area:rmain; }
  .rrow .repss{ grid-area:repss; align-self:start; }
  .rrow .rvp,.rrow .ren{ white-space:normal; }
  .drawer{ width:100vw; border-left:0; }
  /* Jedini izlaz iz drawera na telefonu je ovo dugme (nema vidljive pozadine
     jer panel ide preko cele sirine) — 30px je ispod praga za palac. */
  .drawer-close{ width:44px; height:44px; font-size:22px; }

  /* ── S83 mobilni nalazi (Denis) ──────────────────────────────────────
     (2) tekst je bio ultra sitan — čitljive veličine u glavnom sadržaju
     (registar je ono što se skroluje palcem). */
  .rrow .rvp{ font-size:15.5px; }
  .rrow .cve{ font-size:13.5px; }
  .rrow .ren{ font-size:11.5px; }
  .rrow .rdate{ font-size:11.5px; }
  .rrow .repss .v{ font-size:14px; }
  .rrow .repss .k{ font-size:9.5px; }
  .rrow .rw,.rrow .atag{ font-size:10px; }
  .reg-search input,.reg-search input::placeholder{ font-size:15px; }
  .m-picker summary{ font-size:14px; }
  .pane-title{ font-size:13px; }
  /* S84 (Denis): „Registar" naslov jeo levi prostor pa su se pločice-intervali
     ružno prelamale oko njega. Na mobilnom naslov gone → pločice preko cele
     širine, levo poravnate, uredniji red. (Katalog naslov ostaje.) */
  .pane-reg .pane-title{ display:none; }
  .pane-reg .tabs{ margin-left:0; }
  .pane-reg .tabs button{ font-size:12.5px; }
  .sblok .sk,.stat-note{ font-size:11.5px; }
  .kv-mirno .t,.kv-tiho7{ font-size:14.5px; }
  .dopis{ font-size:16px; }
  .dmeta .v,.dcisa p,.dorig p{ font-size:14px; }

  /* statistika ploča je ostala sitna (Denis) — čitljive veličine */
  .sblok .sk{ font-size:11px; }
  .sblok .teza{ font-size:14px; max-width:none; }
  .sk .skx{ font-size:10.5px; }
  .agerow .al,.agerow .an{ font-size:12px; }
  .vrow .vl,.vrow .vn{ font-size:12.5px; }
  .brow .bv,.brow .bn{ font-size:13px; }
  .rwline .big2{ font-size:30px; }
  .rwline .d{ font-size:12.5px; }
  .uvod h3{ font-size:15px; }
  .uvod p{ font-size:14.5px; max-width:none; }
  .udef dt{ font-size:12.5px; }
  .udef dd{ font-size:13px; }
  .uvod-links a{ font-size:12.5px; }
  .pane-side .pane-title{ font-size:13px; }
  .trend2-y span,.tcol-x{ font-size:10px; }

}
/* (3) „prikaži još" — dok ploča nema interni skrol (≤1439px) renderuje se
   samo prvih N redova (JS cap), dugme dovlači sledeću turu. Bez njega je
   strana 146.000px visoka (svih 1.647 redova) → skok visine pri filtriranju
   = haos. JS drži `hidden` kad nema ostatka; [hidden] mora da nadjača display. */
.reg-more{ display:block; width:100%; padding:14px 18px; margin:0;
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em;
  color:var(--al-brand-text); border-top:1px solid var(--al-line);
  background:var(--al-plate2); text-align:center; }
.reg-more[hidden]{ display:none; }
.reg-more:active{ background:var(--al-plate); }
@media (min-width:1440px){ .reg-more{ display:none; } }
/* (1) dupli futer: konzolni .ftr se krije ≤767 (tabbar preuzima, kao /vesti/) */
@media (max-width:767px){
  body.page-kev .ftr{ display:none; }
  .glass{ padding-bottom:76px; }   /* prostor za tabbar */
}
@media (min-width:1440px){
  .m-picker{ display:none; }
  /* katalog je sada bočna kolona — sbloks i metodologija se slažu vertikalno
     (raniji 4-kolonski raspored važio je za punu širinu ispod feeda) */
}
@media (min-width:1700px){
  :root{ --rail-w:308px; --gap:16px; --pad:20px; }
  .status-main .kaz{ font-size:17.5px; }
  .ncard-opis{ font-size:14px; }
  .rrow{ padding:12px var(--pad); }
}
@media (min-width:2300px){
  :root{ --rail-w:345px; --gap:20px; --pad:24px; }
  html,body{ font-size:16px; }
}

/* ============================================================
   POLISH RUNDA (S81, Denisov zahtev) — čitljivost rail-a + UX
   ispravke pri portu. Dizajnerski sistem netaknut iznad.
   ============================================================ */

/* Rail celine: naslov sekcije nosi produžni hairline (isti potez kao
   toolx__label na /alati/) — razdelnik vezan za celinu, ne pluta sam. */
.rail-block h4{ display:flex; align-items:center; gap:10px; }
.rail-block h4::after{ content:""; flex:1; height:1px; background:var(--al-line); }

/* „poništi ×" — vidljivo samo kad izbor postoji */
/* „poništi izbor" — samostalno ispod čipova, vidljivo tek uz izbor */
.chips-clear{ display:block; margin-top:11px; padding:0; font-family:var(--font-mono);
  font-size:10px; letter-spacing:.06em; color:var(--al-mute-text); text-align:left; }
.chips-clear:hover{ color:var(--al-brand-text); }
.m-picker .chips-clear{ margin:12px var(--pad) 0; }

/* nagoveštaj kad je „moj izbor" aktivan bez ijedne kategorije */

/* prazan „7 dana" tab — dizajnirano mirno stanje, ne praznina */
.kv-tiho7{ margin:var(--pad); padding:16px 18px; border:1px dashed var(--al-line2); font-size:12.5px; line-height:1.6; color:var(--al-mute-text); }

/* ============================================================
   PRETRAGA REGISTRA (S81, Denisov nalaz) — konzolni red ispod
   glave ploče; „/" prečica; broj pogodaka desno.
   ============================================================ */
.reg-search{ display:flex; align-items:center; gap:9px; padding:9px var(--pad); border-bottom:1px solid var(--al-line); }
.reg-search .p{ color:var(--al-mute-text); font-size:12px; flex:0 0 auto; }
.reg-search input{ flex:1 1 auto; min-width:0; background:transparent; border:0; outline:none; color:var(--al-hi); font-family:var(--font-sans); font-size:12.5px; }
.reg-search input::placeholder{ color:var(--al-mute-text); }
.reg-search input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.reg-search .n{ font-size:10px; letter-spacing:.04em; color:var(--al-mute-text); white-space:nowrap; flex:0 0 auto; }
.reg-search .kbd{ font-size:9.5px; color:var(--al-mute-text); border:1px solid var(--al-line2); border-radius:2px; padding:1px 5px; flex:0 0 auto; }
/* [hidden] mora da nadjača display:grid reda */
.rrow[hidden]{ display:none; }
@media (max-width:1023px){ .reg-search .kbd{ display:none; } }

/* ============================================================
   PRETRAGA v2 (S81, Denisov nalaz: „jedva sam je našao") —
   pravo uokvireno polje umesto nevidljivog reda; + prozor-tabovi
   24h…sve se prelamaju na uskim širinama.
   ============================================================ */
.reg-search{ padding:10px var(--pad); }
.rsf{
  display:flex; align-items:center; gap:9px; width:100%;
  padding:8px 12px; background:var(--al-field);
  border:1px solid var(--al-line2); border-radius:2px;
  cursor:text; transition:border-color .15s ease;
}
.rsf:focus-within{ border-color:var(--al-mute); }
.rsf .p{ font-size:13px; color:var(--al-mute-text); }
.reg-search input::placeholder{ color:var(--al-mute-text); }
.pane-reg .tabs{ flex-wrap:wrap; gap:6px 13px; row-gap:2px; }

/* ============================================================
   KATALOG kolona — doterivanje (S81, Denis: „grubo" / „prazno")
   ============================================================ */
/* mesečni grafikon u razumnu visinu (u koloni se rastezao preko pola ploče) */
.pane-side .sblok.trend{ display:block; }

/* metodologija: pun red teksta (52ch je ostavljao praznu desnu polovinu) */
.pane-side .uvod p{ max-width:none; }

/* prozor-tabovi sada nose pune reči → glava ploče sme da poraste u 2 reda */
.pane-reg .pane-head{ height:auto; min-height:44px; padding-top:5px; padding-bottom:5px; }
.pane-reg .tabs{ align-items:center; }
.pane-reg .tabs button{ padding-top:4px; padding-bottom:4px; margin-bottom:0; }

/* „Šta nosi svaki unos" — definiciona lista */
.udef{ margin:0; display:flex; flex-direction:column; }
.udef > div{
  display:grid; grid-template-columns:118px 1fr; gap:12px; align-items:baseline;
  padding:7px 0; border-bottom:1px solid var(--al-line);
}
.udef > div:last-child{ border-bottom:0; }
.udef dt{ font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--al-mute-text); }
.udef dd{ margin:0; font-size:12px; line-height:1.5; color:var(--al-lo); }

/* Top proizvođači: 20 redova; poslednji blok statistike se rasteže do
   dna ploče, lista puni sav prostor, skrol samo za višak (S81). */
.pane-side [data-pane="stat"].on{ display:flex; flex-direction:column; height:100%; }
.pane-side [data-pane="stat"] .sblok{ flex:0 0 auto; }
.pane-side [data-pane="stat"] .sblok:last-child{ flex:1 1 auto; display:flex; flex-direction:column; min-height:0; }
.pane-side .vend{
  flex:1 1 auto; min-height:200px; overflow-y:auto; padding-right:16px;
  padding-bottom:10px;   /* S83: vazduh posle poslednjeg reda u skrolu */
  scrollbar-width:thin; scrollbar-color:var(--al-line2) transparent;
}
/* S83: Top 20 da diše ispod — lista se ne završava u marginu ploče */
.pane-side [data-pane="stat"] .sblok:last-child{ padding-bottom:30px; }
.pane-side .vend::-webkit-scrollbar{ width:8px; }
.pane-side .vend::-webkit-scrollbar-track{ background:transparent; }
.pane-side .vend::-webkit-scrollbar-thumb{ background:var(--al-line2); border-radius:4px; }

/* Hint u zaglavlju merača — „klik = filter" (S81, Denis) */
.sk .skx-hint{ color:var(--al-brand-text); letter-spacing:.04em; text-transform:none; }

/* ============================================================
   ALARM NA MEJL (S85) — KEV pretplata; amber identitet
   (--al-risk-med / --al-accent), dva rendera iste forme:
   .rail-alarm (desktop ≥1440) + .kval-pane (mobilni/tablet).
   ============================================================ */
.kval{ display:flex; flex-direction:column; gap:12px; position:relative; }
.kval-lead{ font-size:11.5px; line-height:1.55; color:var(--al-mute-text); }
.kval-mail{ display:flex; flex-direction:column; gap:6px; }
.kval-mail input{ font-family:var(--font-mono); font-size:12.5px; padding:9px 10px; width:100%;
  color:var(--al-hi); background:var(--al-field); border:1px solid var(--al-line2); border-radius:2px; outline:none; }
.kval-mail input:focus{ border-color:var(--al-risk-med); }
.kval-mail input::placeholder{ color:var(--al-mute-text); }
/* honeypot — vizuelno van ekrana, ostaje u DOM-u za bote */
.kval-hp{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
/* sklopivi filter kategorija */
.kval-catfold{ border:1px solid var(--al-line2); border-radius:2px; }
.kval-catfold summary{ list-style:none; display:flex; align-items:center; gap:8px; padding:9px 10px;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.05em; color:var(--al-mute-text); cursor:pointer; }
.kval-catfold summary::-webkit-details-marker{ display:none; }
.kval-catfold summary::after{ content:"+"; margin-left:auto; font-size:14px; line-height:1; color:var(--al-risk-med-text); }
.kval-catfold[open] summary::after{ content:"×"; }
.kval-catfold summary:hover{ color:var(--al-hi); }
.kval-sum-n{ color:var(--al-accent-text); }
.kval-inner{ padding:2px 10px 10px; display:flex; flex-direction:column; gap:8px; }
.kval-grid{ display:grid; grid-template-columns:1fr; gap:2px; }
.kval-chk{ display:flex; align-items:center; gap:8px; padding:3px 0;
  font-size:11.5px; line-height:1.4; color:var(--al-lo); cursor:pointer; }
.kval-chk input{ width:13px; height:13px; margin:0; flex:0 0 auto; accent-color:var(--al-risk-med); }
.kval-chk:hover{ color:var(--al-hi); }
.kval-note{ font-size:10.5px; line-height:1.5; color:var(--al-mute-text); }
.kval-btn{ font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  padding:10px 14px; color:var(--al-accent-text); border:1px solid var(--al-risk-med); border-radius:2px;
  background:rgba(199,146,72,.08); transition:background .15s ease; }
.kval-btn:hover{ background:rgba(199,146,72,.16); }
.kval-btn:disabled{ opacity:.5; cursor:default; }
.kval-res{ font-size:11.5px; line-height:1.5; }
.kval-res.is-ok{ color:var(--al-risk-low-text); }
.kval-res.is-err{ color:var(--al-brand-text); }
.kval-fine{ font-size:10.5px; line-height:1.5; color:var(--al-mute-text); }

/* mobilna/tablet ploča — u .glass toku; desktop je krije (forma živi u rail-u) */
.kval-wrap{ padding:16px var(--pad) 18px; max-width:560px; }
@media (min-width:1440px){ .kval-pane{ display:none; } }
@media (min-width:1024px) and (max-width:1439px){ .kval-pane{ grid-column:1 / -1; } }
@media (max-width:1023px){
  .kval-lead{ font-size:14px; }
  .kval-mail input,.kval-mail input::placeholder{ font-size:15px; }
  .kval-catfold summary{ font-size:12.5px; padding:11px 12px; }
  .kval-grid{ grid-template-columns:1fr 1fr; gap:4px 12px; }
  .kval-chk{ font-size:14px; padding:5px 0; }
  .kval-chk input{ width:15px; height:15px; }
  .kval-note,.kval-fine{ font-size:12px; }
  .kval-btn{ font-size:12.5px; padding:12px 16px; }
  .kval-res{ font-size:13.5px; }
}

/* ============================================================
   LEGENDA — ŠLAJFNA IZNAD FUTERA (S85, Denis) — jedan red preko
   cele širine, hairline devideri između segmenata. Reuse .lgt/
   .lrow/.d/.pv stilova rail legende. <1440 se ne prikazuje
   (kao ranija rail legenda — rail je tamo ionako display:none).
   ============================================================ */
.lband{ grid-area:lband; display:flex; align-items:center; justify-content:flex-start; gap:5px 16px;
  flex-wrap:wrap; padding:7px 20px; background:var(--al-rail); border-top:1px solid var(--al-line); }
.lband .lgt{ margin:0; white-space:nowrap; }
.lband .lrow{ white-space:nowrap; flex:0 0 auto; }
.lb-div{ width:1px; height:15px; background:var(--al-line2); flex:0 0 auto; }
@media (max-width:1439px){ .lband{ display:none; } }

/* Rail čipovi zbijeniji (S85, Denis: „da se tagovi bolje slože") — samo u
   rail-u; m-picker (mobilni) zadržava veće tap mete. */
.rail .chips{ gap:6px; }
.rail .chip{ font-size:10.5px; padding:4px 8px; gap:6px; }

/* Rail svetlina bust (S85, Denis: „pojedini tekst taman") — sva tri prigušena
   tona podignuta za ISTI korak (~+10 L), razlike u svetlini OSTAJU (bez
   izjednačavanja u jedan ton). Scope: samo rail — glass/registar netaknuti. */
.rail{ --al-faint:#706c68; --al-mute:#9d9a93; --al-lo:#b2b2b0; --al-mute-text:#9d9a93; }
html[data-theme="light"] .rail{ --al-faint:#918d84; --al-mute:#6e6a61; --al-lo:#4f4b44; --al-mute-text:#666663; }

/* NOTCH taman i u svetloj temi (S85, Denis; S84 lekcija: notch = BODY bg).
   U light temi je body nosio --al-bg #f2f0e9 pa je notch bio beo; sadržajnu
   pozadinu ionako crta .glass — body na mobilnom modelu ostaje boja hedera. */
@media (max-width:1439px){
  html[data-theme="light"] body.page-kev{ background:#0f0f0d; }
}

/* Brži prvi render registra (S85, Denis: „učita pola strane pa štaluje"):
   1.647 redova se ne rasporedjuje/farba dok nisu blizu ekrana. Pretraga i
   filteri ne trpe (DOM ostaje pun); pun fix (server šalje samo prozor)
   je zasebna celina. */
.pane-body .rrow{ content-visibility:auto; contain-intrinsic-size:auto 96px; }

/* ============================================================
   IZVOZ REGISTRA (S88, Denisov nalaz: „izvezi ovo kao listu za
   moj tim") — „⇩ CSV" dugme u podnožju registra otvara modal
   (obuhvat + štikliranje kolona). Boje/font iz .pane-foot pravila.
   ============================================================ */
.foot-tools{ display:flex; align-items:center; gap:14px; white-space:nowrap; }
.foot-tools button{ background:none; border:0; padding:0; cursor:pointer; letter-spacing:.08em; }
.foot-tools .foot-od{ color:var(--al-mute-text); }

/* CSV modal — konzolni idiom (plate + hairline).
   [hidden] eksplicitno: display:flex na klasi inače TUČE UA [hidden] pravilo
   (S88 bag — modal se crtao odmah po učitavanju).
   S131: z-index je bio 41/40 — iznad drawera (31), ali ISPOD hedera (50) i
   trake sa alatima (200). Modal je centriran, pa se na niskom prozoru penje:
   na visini 460 njegovo zaglavlje pada POD heder (izmereno, elementFromPoint
   vraća HEADER.hdr). Modal je modal — ide iznad svega. */
.csvm[hidden],.csvm-backdrop[hidden]{ display:none; }
.csvm-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:219; }
.csvm{ position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:220;
  width:min(430px, calc(100vw - 32px)); max-height:min(86vh, 640px);
  background:var(--al-plate); border:1px solid var(--al-line2); border-radius:2px;
  display:flex; flex-direction:column; box-shadow:0 18px 50px rgba(0,0,0,.45); }
.csvm-head{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:0 14px; height:44px; border-bottom:1px solid var(--al-line); }
.csvm-body{ flex:1 1 auto; overflow-y:auto; min-height:0; padding:14px;
  display:flex; flex-direction:column; gap:14px; scrollbar-width:thin; scrollbar-color:var(--al-line2) transparent; }
.csvm-fs{ border:1px solid var(--al-line2); border-radius:2px; padding:8px 12px 10px; margin:0; }
.csvm-lgd{ display:flex; align-items:center; gap:10px; padding:0 6px;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--al-mute-text); }
.csvm-mini{ background:none; border:0; padding:0; cursor:pointer;
  font-size:10px; letter-spacing:.08em; text-transform:none; color:var(--al-mute-text); }
.csvm-mini:hover{ color:var(--al-hi); }
.csvm-mini:first-of-type{ margin-left:auto; }
.csvm-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px 14px; }
.csvm-note{ font-size:11.5px; line-height:1.5; color:var(--al-accent-text); }
@media (max-width:520px){ .csvm-grid{ grid-template-columns:1fr; } }

/* ============================================================
   RSS BLOK ispod „Alarmiraj me" (S88, Denis) — obrazac kao vesti
   rail „Pretplata": ↳ mono linkovi + kratka napomena. Dva rendera:
   .rail-rss (rail h4 stilove nasleđuje) + kval-pane (.krss-h šim).
   ============================================================ */
.krss{ display:flex; flex-direction:column; gap:9px; }
.krss-note{ font-size:10.5px; line-height:1.5; color:var(--al-mute-text); }
.krss-links{ list-style:none; margin:0; padding:0; }
.krss-links li{ padding:3px 0; }
.krss-links a{ display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.005em;
  color:var(--al-mute-text); transition:color .14s ease, transform .14s ease; }
.krss-links a:hover{ color:var(--al-hi); transform:translateX(2px); }
.krss-links .ar{ color:var(--al-risk-med-text); }
.krss-links .ext{ color:var(--al-mute-text); }
/* kval-pane render — naslov u ritmu rail h4, razmak od forme iznad */
.krss-h{ font-family:var(--font-mono); font-weight:400; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--al-mute-text); margin:22px 0 10px;
  display:flex; align-items:center; gap:10px; }
.krss-h::after{ content:""; flex:1; height:1px; background:var(--al-line); }
@media (max-width:1023px){
  .krss-note{ font-size:12px; }
  .krss-links a{ font-size:14px; }
  .krss-links li{ padding:5px 0; }
}

/* ============================================================
   SELEKCIJA ZA IZVOZ + AFORDANSA REDA (S88d, Denis):
   .rsel = čekmark kolona levo (klik označava za CSV, ne otvara
   drawer); .rhint = „kliknite za detalje →" ispod naziva — red
   mora da se čita kao aktivan.
   ============================================================ */
.rrow{ grid-template-columns:auto 148px minmax(0,1fr) auto; }
.rsel{ position:relative; width:15px; height:15px; flex:0 0 auto;
  border:1px solid var(--al-line2); border-radius:2px; background:var(--al-field);
  transition:border-color .12s ease, background .12s ease; }
.rsel::before{ content:""; position:absolute; inset:-11px; }  /* širi tap-cilj */
.rrow:hover .rsel{ border-color:var(--al-mute); }
.rrow.is-sel .rsel{ border-color:var(--al-risk-med); background:rgba(199,146,72,.16); }
.rrow.is-sel .rsel::after{ content:"✓"; position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; line-height:1; color:var(--al-accent-text); }
.rrow.is-sel{ background:rgba(199,146,72,.05); }
.rrow.is-sel:hover{ background:rgba(199,146,72,.09); }
.rhint{ display:block; margin-top:3px; font-size:9px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--al-mute-text);
  transition:color .12s ease, opacity .12s ease; }
.rrow:hover .rhint{ color:var(--al-accent-text); opacity:1; }
@media (max-width:1023px){
  .rrow{ grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"rsel rc1 repss" "rsel rmain rmain"; }
  .rsel{ grid-area:rsel; width:18px; height:18px; margin-top:2px; }
  .rrow.is-sel .rsel::after{ font-size:13px; }
  .rhint{ font-size:10px; margin-top:5px; }
}
/* „poništi označeno ×" u modalu — desno ispod obuhvata */
.csvm-selclear{ display:block; margin:6px 6px 0 auto; }
.csvm-selclear[hidden]{ display:none; }
