/* EVENT Hub – uzupełnienie stylów GDTF Builder (/css/app.css). Tylko elementy, których Builder nie ma. */
.hub-shell { grid-template-columns: 230px 1fr; }
.steps a.step { text-decoration: none; }
.nav-quick { padding: 0 10px; flex-direction: column; align-items: stretch; }
.nav-quick .btn { justify-content: center; text-decoration: none; }
a.btn { text-decoration: none; color: inherit; }
a.btn.primary { color: var(--accent-fg); }
main a { color: var(--text); text-underline-offset: 2px; }
.mt { margin-top: 14px; }
.nowrap { white-space: nowrap; }
.num { text-align: right !important; }
.bad { color: var(--err) !important; }
.pre { white-space: pre-wrap; color: var(--text); margin: 4px 0 0; }
.req { color: var(--err); font-style: normal; }
.span2 { grid-column: 1 / -1; }
textarea.prose { font-family: inherit; font-size: 14px; }
.search { width: 220px !important; }
label.chk { display: flex; gap: 8px; align-items: baseline; cursor: pointer; }
.nowrap-row { flex-wrap: nowrap; }
.nowrap-row select { flex: 1; }
.gate { max-width: 560px; margin: 40px auto; padding: 28px; }
.gate .btn { margin-top: 8px; }

/* tabele */
table.t td { padding: 7px 8px; }
table.t tr.link { cursor: pointer; }
table.t tr.arch td { opacity: .55; }
.tablewrap.flat { max-height: none; }
table.eqpick td { padding: 4px 6px; }
.tabs .tab { text-transform: capitalize; }

/* pulpit */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.kpi { border: 1px solid var(--line); background: var(--panel); padding: 14px 16px; border-radius: var(--radius); display: flex; flex-direction: column; gap: 2px; }
.kpi b { font-family: var(--mono); font-size: 28px; font-weight: 500; line-height: 1.1; }
.kpi span { color: var(--dim); font-size: 12px; font-family: var(--mono); }
.dash .card { margin-top: 0; }
ul.plain { list-style: none; margin: 0; padding: 0; }
ul.plain li { padding: 7px 0; border-bottom: 1px solid var(--row); }
ul.plain li:last-child { border-bottom: none; }
.card h3 { margin-top: 10px; }

/* formularz wydarzenia: wybór ekipy */
ul.pick { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
ul.pick li { border: 1px solid var(--line); padding: 7px 9px; border-radius: var(--radius); }
ul.pick li.on { border-color: var(--line2); background: var(--uv-soft); }
ul.pick .role { margin-top: 6px; }
.warnline { color: var(--err); font-size: 12px; margin-top: 5px; font-family: var(--mono); }
.grid > div > .card + .card { margin-top: 12px; }

/* ustalenia */
.note-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.note-form textarea { font-family: inherit; font-size: 14px; }
ul.notes { list-style: none; margin: 0; padding: 0; }
ul.notes li { border-left: 2px solid var(--line2); padding: 6px 10px; margin-bottom: 8px; background: var(--sunk); }

/* okna */
.dlg.dlg-wide { width: min(720px, 100%); }
.dlg-body { max-height: 70vh; overflow: auto; }
.dlg .vlist { margin: 8px 0; }

/* kalendarz */
.cal-title { text-transform: capitalize; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.cal-h { font-family: var(--mono); font-size: 11.5px; color: var(--dim); padding: 6px 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.cal-d { min-height: 104px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 4px 0 6px; background: var(--panel); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cal-d.out { background: var(--bg); }
.cal-d.out .cal-n { color: var(--line2); }
.cal-d.today .cal-n { background: var(--text); color: var(--bg); }
.cal-n { font-family: var(--mono); font-size: 12px; color: var(--dim); align-self: flex-start; margin: 0 6px 2px; padding: 0 5px; }
.cal-e { display: block; font-size: 12px; padding: 1px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; color: var(--text) !important; border-left: 3px solid var(--line2); background: var(--panel2); }
.cal-e.st-ok { border-left-color: var(--ok); }
.cal-e.st-warn { border-left-color: var(--warn); }
.cal-e.first { margin-left: 4px; }
.cal-e.rent { border-left-color: var(--diag); background: var(--diag-soft); font-style: italic; }
.cal-e:hover { background: var(--hover); }
.rentpill { border-color: var(--diag); color: var(--diag); }

@media (max-width: 1100px) {
  .hub-shell { grid-template-columns: 170px 1fr; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g2 { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .hub-shell { grid-template-columns: 1fr; }
  .hub-shell .steps { display: flex; overflow-x: auto; padding: 6px; border-right: none; border-bottom: 1px solid var(--line); }
  .hub-shell .steps .step { margin: 0; padding: 8px 12px; white-space: nowrap; }
  .hub-shell .steps .step .s, .hub-shell .steps .sep, .hub-shell .steps .n { display: none; }
  .nav-quick { flex-direction: row; }
  .cal-d { min-height: 64px; }
  .cal-e { font-size: 10px; padding: 0 3px; }
  .page-head { flex-direction: column; align-items: stretch; }
  .search { width: 100% !important; }
}

/* logowanie */
body.guest .hub-shell { grid-template-columns: 1fr; }
body.guest #nav { display: none; }
.authwrap { display: flex; justify-content: center; padding: 48px 16px; }
.authcard { width: min(440px, 100%); display: flex; flex-direction: column; gap: 12px; padding: 28px; }
.authcard .btn.primary { justify-content: center; height: 44px; font-size: 15px; }
.authcard input { height: 40px; font-size: 15px; }
.autherr { color: var(--err); min-height: 1em; margin: 0; }
.autherr:empty { display: none; }
.qr { background: #fff; padding: 8px; width: 220px; align-self: center; }
.qr svg { display: block; width: 100%; height: auto; }
pre.codes { font-family: var(--mono); font-size: 15px; line-height: 1.7; background: var(--sunk); border: 1px solid var(--line); padding: 10px 14px; margin: 0; columns: 2; }
.uname.btn { font-weight: 600; }
.okline { color: var(--ok); }
body.logo-keep .logo { filter: none !important; }
/* Administracja → Wygląd */
.brandcard h3 { margin: 18px 0 8px; }
.brandcard h2 + h3 { margin-top: 4px; }
.brandcard .hint, .brandcard small.hint { display: block; font-size: 12px; color: var(--dim); margin: 6px 0 0; line-height: 1.4; }
.brandcard .chk .hint { display: inline; margin: 0; }
.brandform { display: flex; flex-direction: column; gap: 10px; }
.brandform h3 { margin-bottom: 0; }
.brandprev { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); background: var(--header); overflow: hidden; }
.brandprev img { height: 30px; max-width: 40%; object-fit: contain; flex: none; }
.brandprev .brand { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brandprev .btn { flex: none; pointer-events: none; }
.colorrow { display: flex; gap: 8px; align-items: center; }
.colorrow input[type=color] { width: 42px; height: 36px; flex: none; padding: 2px; cursor: pointer; }
.colorrow input[type=text] { font-family: var(--mono); text-transform: uppercase; }
.brandactions { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); }
.brandactions .hint { margin: 0 0 0 auto !important; }
@media (max-width: 1300px) { .brandprev .brand span { display: none; } }
.bandhint { border-left: 2px solid var(--line2); padding: 4px 10px; display: flex; flex-direction: column; gap: 4px; background: var(--sunk); }
.smslog li { padding: 6px 0; }
/* tabele z kolumnami o stałej szerokości (kolejne tabele na stronie wyrównane do siebie) */
table.t.fixed { table-layout: fixed; }
table.t.fixed td, table.t.fixed th { overflow: hidden; text-overflow: ellipsis; }
table.t.fixed td:last-child { text-align: right; overflow: visible; }
