/* ============================================================
   Izvještaji (plan 041)

   Jedan skup stilova za SVE izvještaje — jer svi vraćaju isti oblik podatka.
   Novi izvještaj ne donosi novi CSS.
   ============================================================ */

.qms-rep-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.qms-rep-title { font-size: 21px; margin: 0 0 4px; letter-spacing: -.015em; display: flex; align-items: center; gap: 10px; }
.qms-rep-code {
    font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: .02em;
    color: var(--accent-text); background: var(--accent-soft); padding: 3px 7px; border-radius: 5px;
}
.qms-rep-sub { color: var(--ink-3); font-size: 13px; margin: 0; max-width: 760px; line-height: 1.55; }
.qms-rep-tools { margin-left: auto; display: flex; gap: 7px; flex-wrap: wrap; }

/* ---- katalog ---- */
.qms-rep-cat { display: flex; align-items: baseline; gap: 9px; margin: 18px 0 4px; }
.qms-rep-cat h2 {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em;
    color: var(--ink-3); margin: 0; font-weight: 600;
}
.qms-rep-cat .cnt { color: var(--ink-4); font-size: 11.5px; }
.qms-rep-cat .line { flex: 1; height: 1px; background: var(--line); }

.qms-rep-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 10px; }
.qms-rep-card {
    position: relative; display: block;
    background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
    padding: 13px 14px; text-decoration: none; color: inherit; transition: .12s;
}
.qms-rep-card:hover { border-color: var(--accent-line); background: var(--surface-2); text-decoration: none; }
.qms-rep-card .code {
    font-family: var(--mono); font-size: 10.5px; letter-spacing: .02em;
    color: var(--accent-text); background: var(--accent-soft); padding: 2px 6px; border-radius: 4px;
}
.qms-rep-card .shape {
    position: absolute; top: 13px; right: 14px;
    font-size: 10.5px; color: var(--ink-4);
}
.qms-rep-card h3 { font-size: 13.5px; margin: 8px 0 5px; font-weight: 600; color: var(--ink); padding-right: 60px; }
.qms-rep-card p { margin: 0; color: var(--ink-3); font-size: 12px; line-height: 1.5; }
.qms-rep-card .meta { margin-top: 9px; display: flex; gap: 6px; flex-wrap: wrap; }
.qms-rep-card .tag {
    border: 1px solid var(--line-strong); border-radius: 4px;
    padding: 1px 5px; font-size: 11px; color: var(--ink-4);
}
/* Stavka koja vodi na drugi ekran, a ne otvara izvještaj. */
.qms-rep-card .tag.is-link { border-color: var(--accent); color: var(--accent); }

/* ---- parametarska traka ---- */
.qms-rep-params { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; padding: 12px 15px; }

/* `display: flex` nadjačava ugrađeno pravilo za [hidden], pa se traka alata i
   parametara ugašenog izvještaja ne bi sakrila bez ovoga. */
.qms-rep-params[hidden], .qms-rep-tools[hidden] { display: none; }
.qms-rep-param { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.qms-rep-param label {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-3); font-weight: 600;
}
/* Širina od 170 px vrijedi za polja koja se upisuju ili biraju. Kvačica nije
   takvo polje: širila se na 170 px i odgurivala natpis „Na prečac" od sebe. */
.qms-rep-param select,
.qms-rep-param input:not([type="checkbox"]):not([type="radio"]) { min-width: 170px; }
.qms-rep-go { margin-left: auto; }

/* ---- napomena ---- */
.qms-rep-note {
    display: flex; gap: 9px; align-items: flex-start;
    padding: 11px 14px; border-radius: 9px;
    background: var(--warn-soft); border: 1px solid var(--warn);
    font-size: 12.5px; line-height: 1.55; color: var(--ink-2);
}
.qms-rep-note i { color: var(--warn-text); margin-top: 1px; }
.qms-rep-note.is-ok { background: var(--good-soft); border-color: var(--good); }
.qms-rep-note.is-ok i { color: var(--good-text); }

/* ---- moji izvještaji ---- */
.qms-rep-saved { padding: 0; }
.qms-rep-savedrow {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 15px; border-bottom: 1px solid var(--line-soft);
}
.qms-rep-savedrow:last-child { border-bottom: none; }
.qms-rep-savedrow .star { display: flex; width: 18px; color: var(--ink-4); }
.qms-rep-savedrow .star button {
    background: none; border: none; padding: 0; cursor: pointer;
    color: var(--ink-4); font-size: 15px; line-height: 1;
}
.qms-rep-savedrow .star button.on { color: var(--accent); }
.qms-rep-savedrow .nm { font-weight: 600; color: var(--ink); text-decoration: none; }
a.qms-rep-savedrow .nm:hover, .qms-rep-savedrow a.nm:hover { text-decoration: underline; }
.qms-rep-savedrow .src { color: var(--ink-3); font-size: 12px; }
.qms-rep-savedrow .tag {
    border: 1px solid var(--line-strong); border-radius: 4px;
    padding: 1px 5px; font-size: 11px; color: var(--ink-4);
}
.qms-rep-savedrow .when { margin-left: auto; font-size: 11.5px; color: var(--ink-4); }
.qms-rep-savedrow .del button {
    background: none; border: none; padding: 0; cursor: pointer;
    color: var(--ink-4); font-size: 11.5px; text-decoration: underline;
}
.qms-rep-savedrow.is-orphan .nm { color: var(--ink-4); }
.qms-rep-savedrow.is-orphan .src { color: var(--warn-text); }
.qms-rep-savedrow .tag.is-sched { border-color: var(--good); color: var(--good-text); }

/* ---- pitaj podatke ---- */
.qms-ai-ask { display: flex; gap: 12px; align-items: center; padding: 14px 15px; }
.qms-ai-ask label {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-3); font-weight: 600; white-space: nowrap;
}
.qms-ai-ask input { flex: 1; }
.qms-rep-quota {
    font-size: 11.5px; color: var(--ink-4);
    border: 1px solid var(--line-strong); border-radius: 5px; padding: 4px 9px;
}
.qms-ai-hints { display: flex; gap: 8px; flex-wrap: wrap; }
.qms-ai-hints a {
    font-size: 11.5px; color: var(--ink-3); text-decoration: none;
    border: 1px dashed var(--line-strong); border-radius: 20px; padding: 3px 11px;
}
.qms-ai-hints a:hover { color: var(--accent); border-color: var(--accent); }
.qms-ai-summary {
    padding: 12px 15px; border-radius: 9px;
    background: var(--surface-2, var(--warn-soft)); border: 1px solid var(--line-soft);
    font-size: 13px; line-height: 1.6; color: var(--ink-2);
}

/* ---- graditelj ---- */
.qms-rep-build select, .qms-rep-build input[type="text"], .qms-rep-build input[type="date"] { min-width: 165px; }
.qms-rep-cols { padding: 12px 15px; }
.qms-rep-cols summary {
    cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--ink-2);
}
.qms-rep-colgrid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 7px 14px; margin-top: 11px; align-items: center;
}
.qms-rep-colgrid .chk {
    display: flex; align-items: center; gap: 7px;
    font-size: 12.5px; color: var(--ink-2);
}
.qms-rep-colgrid button { grid-column: 1 / -1; justify-self: start; margin-top: 6px; }

/* ---- raspored slanja ---- */
.qms-rep-sched {
    display: flex; gap: 7px; align-items: center; flex-wrap: wrap;
    padding: 8px 15px 12px 43px; border-bottom: 1px solid var(--line-soft);
}
.qms-rep-sched .lbl {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-3); font-weight: 600;
}
.qms-rep-sched select { min-width: 96px; width: auto; }
.qms-rep-schederr {
    display: flex; gap: 8px; align-items: flex-start;
    padding: 0 15px 11px 43px; font-size: 11.5px; color: var(--warn-text);
    border-bottom: 1px solid var(--line-soft);
}

/* Prečac na omiljene, na katalogu. Definiranje je vlastiti ekran. */
.qms-rep-fav { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.qms-rep-fav .lbl {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-3); font-weight: 600;
}
.qms-rep-fav a {
    font-size: 12px; color: var(--ink-2); text-decoration: none;
    border: 1px solid var(--line-strong); border-radius: 20px; padding: 3px 11px;
}
.qms-rep-fav a:hover { color: var(--accent); border-color: var(--accent); }
.qms-rep-fav .vise { border: none; color: var(--ink-4); margin-left: auto; padding-right: 0; }

/* Upozorenje na 29–31: takav dan ne postoji u svakom mjesecu. */
.qms-sched-warn {
    flex-basis: 100%; display: flex; gap: 7px; align-items: flex-start;
    font-size: 11.5px; line-height: 1.5; color: var(--warn-text); margin-top: 2px;
}

/* ---- spremanje postavke ---- */
.qms-rep-save { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; padding: 12px 15px; }
.qms-rep-save input[type="text"], .qms-rep-save select { min-width: 210px; }
.qms-rep-savefav .chk { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ink-2); }
.qms-rep-pick { max-width: 220px; }

/* ---- tablica ---- */
.qms-rep-tablewrap { overflow-x: auto; padding: 0; }
.qms-rep-tablehead {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 15px; border-bottom: 1px solid var(--line-soft);
}
.qms-rep-tablehead .t { font-size: 13px; font-weight: 600; color: var(--ink); }
.qms-rep-tablehead .n { margin-left: auto; font-size: 11.5px; color: var(--ink-4); }

/* Iz kojeg izvještaja odjeljak dolazi — da se brojka može provjeriti na izvoru. */
.qms-rep-src {
    font-family: ui-monospace, Menlo, monospace; font-size: 10.5px;
    color: var(--ink-4); border: 1px solid var(--line-strong);
    border-radius: 4px; padding: 0 5px;
}
.qms-rep-lead {
    margin: 0; padding: 10px 15px 0;
    font-size: 12px; line-height: 1.55; color: var(--ink-3);
}
.qms-rep-note + .qms-rep-note { margin-top: -4px; }

.qms-rep-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.qms-rep-table th {
    text-align: left; padding: 9px 15px; white-space: nowrap;
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-3); font-weight: 600; border-bottom: 1px solid var(--line-strong);
}
.qms-rep-table th .sub {
    display: block; font-weight: 400; text-transform: none; letter-spacing: 0;
    font-size: 10px; color: var(--ink-4); margin-top: 1px;
}
.qms-rep-table td { padding: 8px 15px; border-bottom: 1px solid var(--line-soft); color: var(--ink-2); }
.qms-rep-table th.n, .qms-rep-table td.n { text-align: right; }
.qms-rep-table td.n { font-family: var(--mono); font-size: 12px; color: var(--ink); }
.qms-rep-table tbody tr:hover { background: var(--surface-2); }

/* Redak „Bez upisanog…" ostaje vidljiv, ali se razlikuje — zapis bez podatka
   se prikazuje, ne prešućuje (plan 041, odjeljak K). */
.qms-rep-table tr.is-nodata td { color: var(--ink-4); font-style: italic; }

.qms-rep-table tfoot td {
    border-top: 1px solid var(--line-strong); border-bottom: none;
    font-weight: 700; color: var(--ink-strong); background: var(--surface-2);
}

.qms-rep-table th.bar, .qms-rep-table td.bar { width: 140px; padding-right: 15px; }
.qms-rep-table td.bar .b {
    display: block; height: 5px; border-radius: 3px;
    background: var(--accent); opacity: .8; min-width: 2px;
}
.qms-rep-table td.bar .b.is-nodata { background: var(--warn); }

/* ---- podnožje ---- */
.qms-rep-foot {
    color: var(--ink-4); font-size: 11.5px; line-height: 1.75;
    border-top: 1px solid var(--line); padding-top: 11px;
}
.qms-rep-foot b { color: var(--ink-3); font-weight: 500; }
