/* Građevinska Berza — komponente (nezavisno od teme) */
:root {
  --gb-concrete: #eceeec; --gb-paper: #fff; --gb-ink: #102a43; --gb-ink-2: #243b53; --gb-steel: #52606d;
  --gb-line: #cfd6d3; --gb-line-strong: #9aa5b1; --gb-signal: #f2c200; --gb-signal-2: #ddb000; --gb-signal-wash: #fff6d1;
  --gb-danger: #b42318; --gb-danger-wash: #fdecea; --gb-ok: #2f7d4f; --gb-ok-wash: #e6f4ea; --gb-r: 4px;
}
.gb-form, .gb-box, .gb-card, .gb-table, .gb-filters, .gb-hero, .gb-section { box-sizing: border-box; }
.gb-form *, .gb-filters *, .gb-hero * { box-sizing: border-box; }

/* Dugmad */
.gb-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; min-height: 44px; padding: .6em 1.15em; border: 2px solid var(--gb-ink); border-radius: var(--gb-r);
  background: var(--gb-signal); color: var(--gb-ink) !important; font: inherit; font-weight: 700; line-height: 1.1; text-decoration: none !important; cursor: pointer; transition: background .15s, transform .05s; }
.gb-btn:hover { background: var(--gb-signal-2); }
.gb-btn:active { transform: translateY(1px); }
.gb-btn--ghost { background: transparent; }
.gb-btn--ghost:hover { background: var(--gb-signal-wash); }
.gb-btn--danger { background: transparent; border-color: var(--gb-danger); color: var(--gb-danger) !important; }
.gb-btn--danger:hover { background: var(--gb-danger-wash); }
.gb-btn--small { min-height: 36px; padding: .35em .8em; font-size: .92em; }
.gb-btn--big { min-height: 52px; padding: .7em 1.5em; font-size: 1.08em; }
.gb-btn--block { width: 100%; }
.gb-btn:focus-visible, .gb-form input:focus-visible, .gb-form select:focus-visible, .gb-form textarea:focus-visible { outline: 3px solid var(--gb-signal); outline-offset: 2px; }

/* Forme */
.gb-form { display: grid; gap: 1rem; }
.gb-form--narrow { max-width: 560px; }
.gb-inline { display: inline-block; margin: 0; }
.gb-field { display: grid; gap: .35rem; margin: 0; min-width: 0; border: 0; padding: 0; }
.gb-field label, .gb-field legend, .gb-label { font-weight: 700; font-size: .92rem; color: var(--gb-ink); padding: 0; }
.gb-label { display: block; text-transform: uppercase; letter-spacing: .04em; font-size: .78rem; color: var(--gb-steel); margin: 0 0 .35rem; }
.gb-field small, .gb-muted { color: var(--gb-steel); }
.gb-small { font-size: .88rem; }
.gb-form input:not([type=checkbox]):not([type=radio]):not([type=file]), .gb-form select, .gb-form textarea,
.gb-filters input, .gb-filters select, .gb-hero__search input, .gb-hero__search select {
  width: 100%; min-height: 44px; padding: .55em .7em; border: 1.5px solid var(--gb-line-strong); border-radius: var(--gb-r); background: #fff; color: var(--gb-ink); font: inherit; font-size: 1rem; }
.gb-form textarea { min-height: 90px; resize: vertical; }
.gb-form input:disabled { background: var(--gb-concrete); }
.gb-grid2 { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.gb-grid3 { display: grid; gap: .6rem; grid-template-columns: 1fr 1fr 110px; }
.gb-grid2[hidden] { display: none; }
.gb-check { display: block; position: relative; padding-left: 1.75em; font-size: .95rem; }
.gb-check input { position: absolute; left: 0; top: .2em; width: 18px; height: 18px; margin: 0; }
.gb-check--sub { margin-left: 1.6em; }
.gb-checks { display: grid; gap: .8rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.gb-checks__group { display: grid; gap: .3rem; }
.gb-choice { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; border: 0; padding: 0; margin: 0; }
.gb-choice legend { font-weight: 700; margin-bottom: .5rem; }
.gb-choice__opt { display: grid; gap: .15rem; padding: .9rem 1rem .9rem 2.6rem; border: 2px solid var(--gb-line); border-radius: var(--gb-r); background: #fff; cursor: pointer; position: relative; }
.gb-choice__opt input { position: absolute; left: 1rem; top: 1.1rem; width: 18px; height: 18px; }
.gb-choice__opt span { color: var(--gb-steel); font-size: .9rem; }
.gb-choice__opt:has(input:checked) { border-color: var(--gb-ink); background: var(--gb-signal-wash); }
.gb-choice--small { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.gb-choice--small label { display: flex; gap: .4em; align-items: center; }
.gb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gb-thumbs { display: flex; flex-wrap: wrap; gap: .6rem; }
.gb-thumb { display: grid; gap: .2rem; font-size: .85rem; }
.gb-thumb img { width: 96px; height: 96px; object-fit: cover; border: 1px solid var(--gb-line); }

/* Poruke sistema */
.gb-alert { padding: .85rem 1rem; border-left: 5px solid; border-radius: var(--gb-r); margin: 0 0 1rem; }
.gb-alert p { margin: 0 0 .5rem; } .gb-alert p:last-child { margin: 0; }
.gb-alert--ok { background: var(--gb-ok-wash); border-color: var(--gb-ok); }
.gb-alert--err { background: var(--gb-danger-wash); border-color: var(--gb-danger); }
.gb-alert--warn { background: var(--gb-signal-wash); border-color: var(--gb-signal-2); }

/* Kutije i kartice */
.gb-box { background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: 1rem 1.1rem; margin: 0 0 1rem; }
.gb-box > :first-child { margin-top: 0; } .gb-box > :last-child { margin-bottom: 0; }
.gb-box p { margin: 0 0 .6rem; }
.gb-box--accent { border: 2px solid var(--gb-ink); box-shadow: 4px 4px 0 var(--gb-signal); }
.gb-center { text-align: center; }
.gb-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin: 0 0 1.5rem; }
.gb-card { background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .5rem; transition: border-color .15s, box-shadow .15s; }
.gb-card:hover { border-color: var(--gb-ink); box-shadow: 3px 3px 0 var(--gb-signal); }
.gb-card p { margin: 0; }
.gb-job__top { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; }
.gb-job__title, .gb-pro__name { margin: 0; font-size: 1.15rem; line-height: 1.2; }
.gb-job__title a, .gb-pro__name a { color: var(--gb-ink); text-decoration: none; }
.gb-job__title a:hover, .gb-pro__name a:hover { text-decoration: underline; text-decoration-color: var(--gb-signal); text-decoration-thickness: 3px; }
.gb-job__excerpt { color: var(--gb-ink-2); font-size: .95rem; }
.gb-job__meta { display: grid; grid-template-columns: 1.3fr 1.3fr .8fr; gap: .5rem; margin: auto 0 0; padding-top: .6rem; border-top: 1px dashed var(--gb-line); font-size: .88rem; }
.gb-job__meta dt { color: var(--gb-steel); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.gb-job__meta dd { margin: 0; font-weight: 700; }
.gb-tag { display: inline-block; padding: .15em .55em; background: var(--gb-signal-wash); border: 1px solid var(--gb-signal-2); border-radius: 2px; font-size: .8rem; font-weight: 700; color: var(--gb-ink); text-decoration: none; }
.gb-badge { display: inline-block; padding: .1em .5em; margin-right: .3em; border: 1px solid var(--gb-ink); border-radius: 2px; font-size: .75rem; font-weight: 700; vertical-align: middle; }
.gb-badge--ok { background: var(--gb-ok-wash); border-color: var(--gb-ok); color: var(--gb-ok); }
.gb-stars { color: var(--gb-signal-2); letter-spacing: .05em; }
.gb-state { display: inline-block; padding: .15em .6em; border-radius: 99px; font-size: .8rem; font-weight: 700; background: var(--gb-concrete); color: var(--gb-ink); white-space: nowrap; }
.gb-state--otvoren, .gb-state--poslata { background: var(--gb-signal-wash); }
.gb-state--dodeljen, .gb-state--prihvacena, .gb-state--zavrsen { background: var(--gb-ok-wash); color: var(--gb-ok); }
.gb-state--odbijen, .gb-state--odbijena { background: var(--gb-danger-wash); color: var(--gb-danger); }
.gb-count-badge { display: inline-block; min-width: 1.4em; padding: 0 .4em; border-radius: 99px; background: var(--gb-danger); color: #fff; font-size: .78rem; text-align: center; }
.gb-avatar { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none; background: var(--gb-ink); color: var(--gb-signal); font-weight: 800; font-size: 1.2rem; border-radius: 2px; }
.gb-avatar--big { width: 72px; height: 72px; font-size: 2rem; }
.gb-pro__head { display: flex; gap: .75rem; align-items: center; }
.gb-pro__headline { color: var(--gb-ink-2); }

/* Pretraga */
.gb-filters { display: grid; gap: .75rem; grid-template-columns: 2fr 2fr 1.5fr 1.4fr auto; align-items: end; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: 1rem; margin: 0 0 1rem; }
.gb-filters--3 { grid-template-columns: 2fr 2fr auto; }
.gb-count { margin: 0 0 .75rem; }
.gb-pages { display: flex; flex-wrap: wrap; gap: .4rem; }
.gb-pages a, .gb-pages span { display: inline-grid; place-items: center; min-width: 40px; height: 40px; border: 1.5px solid var(--gb-line-strong); border-radius: var(--gb-r); text-decoration: none; color: var(--gb-ink); background: #fff; }
.gb-pages span { background: var(--gb-ink); color: #fff; border-color: var(--gb-ink); }

/* Stranica posla i profila */
.gb-job-page, .gb-profile, .gb-conv { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; }
.gb-conv { grid-template-columns: 380px minmax(0, 1fr); }
.gb-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: 0 0 1rem; padding: .9rem 1rem; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); }
.gb-facts--col { grid-template-columns: 1fr; border: 0; padding: 0; }
.gb-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gb-steel); }
.gb-facts dd { margin: 0; font-weight: 700; }
.gb-desc { line-height: 1.6; }
.gb-gallery { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin: 1rem 0; }
.gb-gallery img { width: 100%; height: 150px; object-fit: cover; border: 1px solid var(--gb-line); display: block; }
.gb-price { font-size: 1.5rem; font-weight: 800; margin: 0 0 .2rem; }
.gb-details { margin: .5rem 0; }
.gb-details summary { cursor: pointer; font-weight: 700; padding: .4rem 0; }
.gb-report summary { font-weight: 400; color: var(--gb-steel); font-size: .9rem; }
.gb-contact p { margin: 0 0 .3rem; }
.gb-reviews { list-style: none; padding: 0; margin: 0 0 1rem; }
.gb-reviews li { padding: .75rem 0; border-bottom: 1px solid var(--gb-line); }
.gb-reviews p { margin: 0 0 .25rem; }
.gb-rate { display: inline-flex; flex-direction: row-reverse; border: 0; padding: 0; margin: 0 0 .5rem; }
.gb-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gb-rate label { font-size: 2rem; color: var(--gb-line-strong); cursor: pointer; padding: 0 .1em; }
.gb-rate input:checked ~ label, .gb-rate label:hover, .gb-rate label:hover ~ label { color: var(--gb-signal-2); }
.gb-rate input:focus-visible + label { outline: 3px solid var(--gb-signal); }

/* Nalog */
.gb-account-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }
.gb-account-head p { margin: 0; }
.gb-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 2px solid var(--gb-ink); margin: 0 0 1.25rem; }
.gb-tabs a { padding: .6rem 1rem; text-decoration: none; color: var(--gb-ink); font-weight: 700; border: 2px solid transparent; border-bottom: 0; border-radius: var(--gb-r) var(--gb-r) 0 0; margin-bottom: -2px; }
.gb-tabs a[aria-current] { background: var(--gb-paper); border-color: var(--gb-ink); border-bottom: 2px solid var(--gb-paper); }
.gb-row-between { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: 0 0 1rem; }
.gb-row-between h2 { margin: 0; }
.gb-h2 { font-size: 1.6rem; margin: 0 0 .5rem; }
.gb-h3 { font-size: 1.25rem; margin: 1.25rem 0 .75rem; }
.gb-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.gb-table-wrap { overflow-x: auto; margin: 0 0 1.5rem; }
.gb-table { width: 100%; border-collapse: collapse; background: var(--gb-paper); border: 1px solid var(--gb-line); }
.gb-table th, .gb-table td { padding: .7rem .8rem; text-align: left; border-bottom: 1px solid var(--gb-line); vertical-align: top; }
.gb-table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gb-steel); background: var(--gb-concrete); }
.gb-row-win td { background: var(--gb-ok-wash); }
.gb-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 0 0 1.5rem; }
.gb-stats div { background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: .9rem 1rem; display: grid; }
.gb-stats strong { font-size: 1.8rem; line-height: 1.1; }
.gb-stats span { color: var(--gb-steel); font-size: .88rem; }
.gb-convlist { list-style: none; padding: 0; margin: 0; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); }
.gb-convlist li + li { border-top: 1px solid var(--gb-line); }
.gb-convlist a { display: block; padding: .8rem 1rem; color: var(--gb-ink); text-decoration: none; }
.gb-convlist a:hover { background: var(--gb-signal-wash); }
.gb-convlist__last { display: block; color: var(--gb-steel); font-size: .92rem; margin-top: .15rem; }
.gb-unread a { border-left: 4px solid var(--gb-signal); }
.gb-thread { display: flex; flex-direction: column; gap: .6rem; max-height: 60vh; overflow-y: auto; padding: 1rem; background: var(--gb-concrete); border: 1px solid var(--gb-line); border-radius: var(--gb-r); margin: 0 0 .75rem; }
.gb-msg { max-width: 80%; align-self: flex-start; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: .55rem .8rem; }
.gb-msg--mine { align-self: flex-end; background: var(--gb-signal-wash); border-color: var(--gb-signal-2); }
.gb-msg__meta { font-size: .78rem; color: var(--gb-steel); margin-bottom: .15rem; }
.gb-msgform { grid-template-columns: 1fr auto; align-items: end; }

/* Početna */
.gb-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2rem; align-items: center; padding: 1rem 0 2rem; }
.gb-hero h1 { margin: .25rem 0 1rem; }
.gb-kicker { display: inline-block; background: var(--gb-ink); color: var(--gb-signal); font-weight: 700; padding: .25em .7em; font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; margin: 0; }
.gb-lead { font-size: 1.15rem; color: var(--gb-ink-2); max-width: 36em; margin: 0 0 1.25rem; }
.gb-hero__search { display: grid; gap: .8rem; background: var(--gb-paper); border: 2px solid var(--gb-ink); box-shadow: 6px 6px 0 var(--gb-signal); padding: 1.25rem; border-radius: var(--gb-r); }
.gb-section { margin: 2.5rem 0; }
.gb-section > h2 { margin: 0 0 1rem; }
.gb-steps { list-style: none; counter-reset: s; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 0; margin: 0; }
.gb-steps li { counter-increment: s; background: var(--gb-paper); border: 1px solid var(--gb-line); border-top: 5px solid var(--gb-signal); padding: 1rem; display: grid; gap: .3rem; align-content: start; }
.gb-steps li::before { content: counter(s, decimal-leading-zero); font-weight: 800; font-size: 1.6rem; color: var(--gb-ink); }
.gb-steps span { color: var(--gb-ink-2); font-size: .95rem; }
.gb-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.gb-cat { display: grid; gap: .25rem; padding: .9rem 1rem; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); color: var(--gb-ink); text-decoration: none; }
.gb-cat:hover { border-color: var(--gb-ink); box-shadow: 3px 3px 0 var(--gb-signal); }
.gb-cat span { color: var(--gb-steel); font-size: .88rem; }
.gb-cat em { font-style: normal; font-size: .8rem; font-weight: 700; color: var(--gb-ink-2); }
.gb-band { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; flex-wrap: wrap; background: var(--gb-ink); color: #fff; padding: 1.75rem; border-radius: var(--gb-r); }
.gb-band h2 { color: var(--gb-signal); margin: 0 0 .5rem; }
.gb-band p { margin: 0; max-width: 40em; color: #d9e2ec; }
.gb-faq details { background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-r); padding: .8rem 1rem; margin-bottom: .5rem; }
.gb-faq summary { font-weight: 700; cursor: pointer; }
.gb-faq p { margin: .5rem 0 0; }

@media (max-width: 900px) {
  .gb-job-page, .gb-profile, .gb-conv, .gb-hero { grid-template-columns: 1fr; }
  .gb-filters { grid-template-columns: 1fr 1fr; }
  .gb-filters .gb-btn { grid-column: 1 / -1; }
  .gb-steps, .gb-stats { grid-template-columns: 1fr 1fr; }
  .gb-facts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .gb-grid2, .gb-choice, .gb-filters, .gb-filters--3, .gb-steps { grid-template-columns: 1fr; }
  .gb-grid3 { grid-template-columns: 1fr 1fr; }
  .gb-grid3 select { grid-column: 1 / -1; }
  .gb-msg { max-width: 92%; }
  .gb-msgform { grid-template-columns: 1fr; }
  .gb-table--offers thead, .gb-table--cene thead { display: none; }
  .gb-table--offers tr, .gb-table--cene tr { display: grid; border-bottom: 2px solid var(--gb-line); }
  .gb-table--offers td, .gb-table--cene td { border: 0; padding: .3rem .8rem; }
  .gb-table--offers td[data-l]::before, .gb-table--cene td[data-l]::before { content: attr(data-l) ": "; color: var(--gb-steel); font-size: .8rem; }
}

/* Stranice kategorija */
.gb-crumbs{font-size:.9rem;color:#52606d;margin:0 0 .75rem}
.gb-crumbs a{color:inherit}
.gb-subcats{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.5rem}
.gb-subcats .gb-tag{text-decoration:none}
.gb-subcats .gb-tag.is-active{background:var(--gb-ink);color:#fff;border-color:var(--gb-ink)}
.gb-category-page h2{margin-top:2rem}

/* B2B: firma, tim, bezbednost */
.gb-tabs--sub { margin-top: .5rem; }
.gb-codes { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.05rem; letter-spacing: .04em; word-break: break-all; }
.gb-list { padding-left: 1.1rem; }
.gb-list li { margin: .35rem 0; }
.gb-steps-list li { margin: .5rem 0; }
.gb-askbox { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(0,0,0,.12); }
.gb-job__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin: .75rem 0 0; }
.gb-files { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .35rem; }
.gb-files li { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.gb-files img { display: block; max-width: 220px; max-height: 160px; border-radius: 6px; border: 1px solid rgba(0,0,0,.12); }
.gb-files__name { word-break: break-all; }
.gb-field--files input[type=file] { width: 100%; padding: .4rem 0; }
.gb-retention { margin: .6rem 0 0; font-size: .78rem; line-height: 1.35; color: var(--gb-steel); }
/* 1.6.0 — upitnik, hitno, oznake, uži izbor, cene, aplikacija */
.gb-badge--hitno { background: #b42318; border-color: #b42318; color: #fff; letter-spacing: .04em; text-transform: uppercase; }
.gb-badge--top { background: var(--gb-signal, #f2c200); border-color: var(--gb-ink); color: var(--gb-ink); }
.gb-upitnik .gb-upitnik__grp[hidden] { display: none; }
.gb-hitno-check { margin-top: .5rem; }
.gb-field .gb-check { padding-left: 1.75em; font-weight: 400; }
.gb-calc select { max-width: 100%; }
.gb-facts--detalji { margin-bottom: 1.25rem; }
.gb-review-reply { margin: .5rem 0 0 1rem; padding: .5rem .75rem; border-left: 3px solid var(--gb-steel, #52606d); background: rgba(16, 42, 67, .04); }
.gb-calc__out { font-size: 1.1rem; min-height: 1.6em; }
.gb-table--cene td:nth-child(3) { white-space: nowrap; }
.gb-is-saved { border-color: var(--gb-ink); font-weight: 700; }
.gb-saveform { display: inline-block; }
.gb-pwa [hidden] { display: none; }
.gb-saveti img { width: 100%; height: auto; display: block; margin-bottom: .5rem; }
