/* ==========================================================================
   ekipa.css · /ekipa shell additions and the screens Danes, Rezervacije, Čiščenje, Ekipa, Nastavitve
   (QR plačila, Meni, HACCP, Integracije live in ekipa-back.css).
   Tokens and shared components come from burja.css (theme .t-ops, dark with [data-theme="dark"]). Semantic tokens only.
   ========================================================================== */

/* ---------- shell additions ---------- */
.adm-top__title { margin: 0; }
.adm-side__user { font-weight: 600; color: var(--side-text); overflow-wrap: anywhere; }
.adm-skel { display: grid; gap: var(--s-3); max-width: 960px; }
.adm-error { display: grid; gap: var(--s-3); justify-items: start; max-width: 60ch; padding: var(--s-5); background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--danger); border-radius: var(--r-3); }
.adm-error__title { font-weight: 650; font-size: 1.1rem; }
.adm-login__form h1 { font-family: var(--font-display); font-weight: 400; font-size: 1.85rem; line-height: 1.15; }
.badge--neutral { background: var(--idle-bg); color: var(--text-2); }
.screen-head__actions { align-items: center; }
.btn.is-off { opacity: .45; pointer-events: none; }
.panel__head { flex-wrap: wrap; }
.panel__title { display: flex; align-items: center; gap: 6px; min-width: 0; }
.panel__title svg { flex: none; }
.panel__head > .btn, .panel__head > .xs, .panel__head > a { margin-left: auto; white-space: nowrap; }

/* ---------- shared by the operations screens ---------- */
.ops-sec { margin-top: var(--s-6); }
.ops-sec__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--s-2) var(--s-4); margin-bottom: var(--s-3); }
.ops-sec__title, .t-ops .ops-sec__title { font-size: 1rem; font-weight: 650; display: flex; align-items: center; gap: 6px; }
.ops-sec__meta { font-size: var(--fs-xs); color: var(--text-3); }
.ops-num { font-variant-numeric: tabular-nums; }
.ops-mono { font-family: var(--font-mono); font-size: var(--fs-xs); overflow-wrap: anywhere; }
.ops-actions { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.ops-nobentral { margin-bottom: var(--s-4); align-items: center; }
.ops-nobentral svg { width: 20px; height: 20px; display: block; }

/* ---------- Danes ---------- */
.danes-fresh { align-items: center; }
.danes-warn { margin-bottom: var(--s-4); }
.danes-counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); margin-bottom: var(--s-4); }
@media (min-width: 720px) { .danes-counts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.danes-count { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-3); padding: var(--s-3) var(--s-4); display: grid; gap: 2px; min-width: 0; }
.danes-count__label { font-size: var(--fs-xs); font-weight: 600; color: var(--text-3); display: flex; align-items: center; gap: 6px; }
.danes-count__label svg { width: 16px; height: 16px; flex: none; }
.danes-count__value { font-size: clamp(2rem, 4.4vw, 2.75rem); font-weight: 650; line-height: 1.05; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.danes-count__meta { font-size: var(--fs-micro); color: var(--text-3); overflow-wrap: anywhere; }
.danes-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); margin-bottom: var(--s-5); }
.danes-tiles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr)); }
.danes-tiles .tile { width: 100%; min-height: 168px; cursor: pointer; font: inherit; color: var(--text); }
.danes-tiles .tile__top { display: flex; align-items: baseline; gap: var(--s-2) var(--s-3); flex-wrap: wrap; }
.danes-tiles .tile__num { font-size: 2.4rem; }
.danes-tiles .tile__name { font-size: var(--fs-sm); font-weight: 600; color: var(--text-2); }
.danes-tiles .tile__beds { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; }
.danes-tiles .tile__beds svg { width: 15px; height: 15px; }
.danes-tiles .tile__who { font-size: 1.15rem; line-height: 1.25; overflow-wrap: anywhere; }
.danes-tiles .tile__meta { font-size: var(--fs-sm); color: var(--text-2); }
.danes-tiles .tile[data-state="prosta"] .tile__who { color: var(--text-3); font-weight: 500; }
.tile__urgent { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-xs); font-weight: 700; color: var(--warn); }
.tile__urgent svg { width: 15px; height: 15px; flex: none; }
.state-legend { margin-top: var(--s-3); }
.tile-dot[data-state="prosta"], .tile-dot[data-state="odpovedano"] { --tile-c: var(--idle); }
.tile-dot[data-state="prihod"] { --tile-c: var(--info); }
.tile-dot[data-state="v-hisi"] { --tile-c: var(--text); }
.tile-dot[data-state="odhod"] { --tile-c: var(--text-2); }
.tile-dot[data-state="za-ciscenje"] { --tile-c: var(--warn); }
.tile-dot[data-state="ociscena"] { --tile-c: var(--ok); }
.danes-side { display: grid; gap: var(--s-4); margin-top: var(--s-6); }
@media (min-width: 1100px) { .danes-side { grid-template-columns: 1.1fr 1fr; align-items: start; } }
.zajtrk__big { display: flex; align-items: baseline; gap: var(--s-3); flex-wrap: wrap; }
.zajtrk__n { font-size: 3.5rem; font-weight: 650; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.zajtrk__split { font-size: var(--fs-sm); color: var(--text-2); }
.zajtrk__rows { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; }
.zajtrk__rows li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: var(--s-3); align-items: baseline; padding: var(--s-2) 0; border-top: 1px solid var(--line); font-size: var(--fs-sm); }
.zajtrk__rows li[data-allergy="true"] { background: var(--warn-bg); margin-inline: calc(var(--s-2) * -1); padding-inline: var(--s-2); border-radius: 4px; }
.zajtrk__note { grid-column: 2 / -1; font-size: var(--fs-xs); color: var(--warn); font-weight: 600; }
.zajtrk__room { font-weight: 650; }
.zajtrk__src { margin-top: var(--s-3); }
.rest-kpis { margin-bottom: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 130px), 1fr)); }
.rest-kpis__wide { grid-column: 1 / -1; }
.rest-kpis .kpi { background: var(--surface-2); border-color: transparent; }
.rest-kpis .kpi__meta { overflow-wrap: anywhere; }
.rest-methods { list-style: none; margin: 0; padding: 0; }
.rest-methods li { display: flex; justify-content: space-between; gap: var(--s-2); padding: 4px 0; border-top: 1px solid var(--line); font-size: var(--fs-sm); min-width: 0; }
.rest-methods li:first-child { border-top: 0; }
.rest-methods li > span:first-child { min-width: 0; overflow-wrap: anywhere; }

/* stay drawer */
.stay { display: grid; gap: var(--s-5); }
.stay__hero { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-3); }
.stay__who { font-size: 1.35rem; font-weight: 650; overflow-wrap: anywhere; }
.stay__who:focus { outline: none; }
.stay h3, .t-ops .stay h3 { font-size: var(--fs-xs); font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); margin-bottom: var(--s-2); }
.stay-lines { width: 100%; font-size: var(--fs-sm); border-collapse: collapse; }
.stay-lines td, .stay-lines th { padding: 6px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.stay-lines th { font-size: 11px; font-weight: 650; color: var(--text-3); letter-spacing: .04em; text-transform: uppercase; }
.stay-lines .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: var(--s-3); }
.stay-lines tfoot td { font-weight: 650; border-bottom: 0; }
.taxcalc { background: var(--surface-2); border-radius: var(--r-2); padding: var(--s-3) var(--s-4); display: grid; gap: var(--s-2); }
.taxcalc__lines { margin: 0; padding-left: 18px; }
.taxcalc__formula { font-family: var(--font-mono); font-size: 1rem; }
.taxcalc__formula b { font-weight: 700; }

/* ---------- Rezervacije ---------- */
.rz-cancel { gap: var(--s-2); }
.rz-summary { gap: var(--s-2) var(--s-4); margin-bottom: var(--s-3); }
.rz-src { gap: 6px; }
.rz-warn { margin-bottom: var(--s-3); }
.tl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-3); background: var(--surface); overscroll-behavior-x: contain; }
.tl { --label: 148px; display: grid; grid-template-columns: var(--label) repeat(var(--cols), minmax(30px, 1fr)); min-width: calc(var(--label) + var(--cols) * 30px); font-size: var(--fs-xs); }
@media (max-width: 640px) { .tl { --label: 56px; } .tl__room span { display: none; } }
.tl__corner, .tl__day, .tl__room { position: sticky; background: var(--surface); z-index: 2; }
.tl__corner { left: 0; top: 0; border-bottom: 1px solid var(--line-strong); border-right: 1px solid var(--line); z-index: 3; padding: 8px 12px; font-size: 11px; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; color: var(--text-3); display: flex; align-items: end; }
.tl__day { top: 0; padding: 6px 4px; text-align: center; border-bottom: 1px solid var(--line-strong); border-left: 1px solid var(--line); line-height: 1.2; }
.tl__day b { display: block; font-size: var(--fs-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl__day small { color: var(--text-3); text-transform: lowercase; }
.tl__day[data-today="true"] { background: var(--info-bg); color: var(--info); }
.tl__day[data-today="true"] small { color: inherit; }
.tl__day[data-weekend="true"]:not([data-today="true"]) { background: var(--surface-2); }
.tl__room { left: 0; padding: 0 12px; display: flex; align-items: center; gap: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 56px; }
.tl__room b { font-family: var(--font-display); font-size: 1.4rem; font-weight: 400; line-height: 1; }
.tl__room span { color: var(--text-2); line-height: 1.2; font-weight: 600; }
.tl__cell { border-bottom: 1px solid var(--line); min-height: 56px; }
.tl__cell[data-half="true"] { border-left: 1px solid var(--line); }
.tl__cell[data-today="true"] { background: color-mix(in srgb, var(--info) 7%, transparent); }
.tl__bar { position: relative; z-index: 1; margin: 8px 2px; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1px; padding: 4px 8px; border-radius: 6px; text-align: left; font: inherit; font-size: var(--fs-xs); line-height: 1.2; overflow: hidden; cursor: pointer; background: var(--selected-bg); color: var(--text); border: 1px solid var(--line-strong); transition: box-shadow var(--d-1) var(--ease-out); }
.tl__bar:hover { box-shadow: var(--sh-2); }
.tl__bar b { font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl__bar span { color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl__bar[data-source="website"] { background: var(--info-bg); border-color: var(--info); }
.tl__bar[data-status="canceled"], .tl__bar[data-status="noshow"] { background: repeating-linear-gradient(135deg, var(--surface-2) 0 6px, transparent 6px 12px); border-style: dashed; color: var(--text-3); }
.tl__bar[data-status="canceled"] b, .tl__bar[data-status="noshow"] b { text-decoration: line-through; color: var(--text-3); }
.tl__bar[data-vanished="true"] { border: 2px solid var(--danger); }
.tl__bar[data-clip-start="true"] { border-top-left-radius: 0; border-bottom-left-radius: 0; border-left-style: dotted; }
.tl__bar[data-clip-end="true"] { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right-style: dotted; }
.tl__bar[data-new="true"] { animation: b-flash 2.4s var(--ease-out); }
.state-legend .tl-key { background: var(--selected-bg); border: 1px solid var(--line-strong); }
.state-legend .tl-key[data-k="website"] { background: var(--info-bg); border-color: var(--info); }
.state-legend .tl-key[data-k="dead"] { background: var(--surface-2); border-style: dashed; }
.state-legend .tl-key[data-k="vanished"] { background: transparent; border: 2px solid var(--danger); }
.src { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-micro); font-weight: 650; padding: 1px 7px; border-radius: var(--r-1); background: var(--idle-bg); color: var(--text-2); white-space: nowrap; }
.src[data-src="booking"] { background: var(--info-bg); color: var(--info); }
.src[data-src="website"] { background: var(--ok-bg); color: var(--ok); }
.src[data-src="airbnb"] { background: var(--danger-bg); color: var(--danger); }
.src[data-src="direct"] { background: var(--warn-bg); color: var(--warn); }
.res-list { display: grid; gap: var(--s-2); }
.res-row { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: var(--s-3); align-items: center; width: 100%; min-height: 64px; padding: var(--s-3) var(--s-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-3); text-align: left; font: inherit; color: var(--text); cursor: pointer; }
.res-row:hover { box-shadow: var(--sh-1); border-color: var(--line-strong); }
.res-row__room { font-family: var(--font-display); font-size: 1.6rem; line-height: 1; }
.res-row__main { min-width: 0; overflow-wrap: anywhere; }
.res-row__who { font-weight: 650; }
.res-row__meta { font-size: var(--fs-xs); color: var(--text-3); }
.res-row[data-status="canceled"], .res-row[data-status="noshow"] { opacity: .72; }
@media (max-width: 420px) { .res-row { grid-template-columns: 2.4rem minmax(0, 1fr); } .res-row > .src { grid-column: 2; justify-self: start; } }

/* ---------- Čiščenje (phone, one hand: every action is a full-width button of at least 56 px) ---------- */
.cl { max-width: 720px; }
.cl-sum { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); align-items: baseline; margin-bottom: var(--s-4); }
.cl-sum__n { font-size: 2.6rem; font-weight: 650; line-height: 1; font-variant-numeric: tabular-nums; }
.cl-list { display: grid; gap: var(--s-4); }
.cl-card { display: grid; gap: var(--s-3); padding: var(--s-4); background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--line-strong); border-radius: var(--r-3); }
.cl-card[data-urgent="true"] { border-left-color: var(--warn); background: color-mix(in srgb, var(--warn-bg) 45%, var(--surface)); }
.cl-card[data-status="v-teku"] { border-left-color: var(--info); }
.cl-card[data-status="okvara"] { border-left-color: var(--danger); }
.cl-card__top { display: flex; align-items: baseline; gap: var(--s-2) var(--s-3); flex-wrap: wrap; }
.cl-card__room { font-family: var(--font-display); font-size: 2.8rem; line-height: 1; }
.cl-card__name { font-size: 1.15rem; font-weight: 650; }
.cl-card__badges { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: auto; }
.cl-card__when { font-size: 1.15rem; font-weight: 650; display: flex; align-items: center; gap: 8px; }
.cl-card__when svg { flex: none; }
.cl-card[data-urgent="true"] .cl-card__when { color: var(--warn); }
.cl-card__meta { font-size: var(--fs-sm); color: var(--text-2); display: grid; gap: 2px; }
.cl-card__note { display: flex; gap: var(--s-3); align-items: center; font-size: var(--fs-sm); padding: var(--s-2) var(--s-3); border-radius: var(--r-2); background: var(--surface-2); overflow-wrap: anywhere; }
.cl-card__note[data-fault="true"] { background: var(--danger-bg); color: var(--danger); font-weight: 600; }
.cl-card__photo { width: 96px; height: 72px; object-fit: cover; border-radius: 4px; border: 1px solid var(--line); flex: none; }
.cl-card__btns { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--s-2); }
.t-ops .cl-btn { --btn-h: 56px; font-size: 1.05rem; width: 100%; white-space: nowrap; }
.t-ops .cl-btn--main { --btn-h: 68px; font-size: 1.3rem; font-weight: 650; }
.t-ops .cl-add { --btn-h: 60px; margin-top: var(--s-4); border-style: dashed; }
.cl-done { list-style: none; margin: 0; padding: 0; display: grid; }
.cl-done li { display: flex; gap: var(--s-3); align-items: center; padding: var(--s-2) 0; border-top: 1px solid var(--line); min-width: 0; }
.cl-done li > span { min-width: 0; overflow-wrap: anywhere; font-size: var(--fs-sm); }
.cl-done b { font-family: var(--font-display); font-weight: 400; font-size: 1.6rem; line-height: 1; min-width: 2ch; }
.t-ops .cl-undo { --btn-h: 48px; margin-left: auto; flex: none; min-width: 84px; }
.cl-rooms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.cl-rooms__opt { display: flex; align-items: center; gap: var(--s-2); min-height: 56px; padding: var(--s-2) var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-3); background: var(--field-bg); color: var(--field-text); text-align: left; font: inherit; font-size: var(--fs-sm); line-height: 1.2; cursor: pointer; }
.cl-rooms__opt b { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; line-height: 1; }
.cl-rooms__opt[aria-pressed="true"] { background: var(--selected-bg); color: var(--text); border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.cl-switch { display: flex; align-items: center; gap: var(--s-3); min-height: 56px; cursor: pointer; }
.photo-in { display: grid; gap: var(--s-2); }
.photo-in__prev { max-width: 100%; max-height: 220px; border-radius: var(--r-2); border: 1px solid var(--line); }
dialog.sheet .sheet__foot .btn--lg { flex: 1 1 140px; }

/* ---------- Ekipa (users) ---------- */
.team-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-2); max-width: 860px; }
.team-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); padding: var(--s-3) var(--s-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-3); }
.team-row[data-off="true"] .team-row__main { opacity: .7; }
.team-row__main { flex: 1 1 240px; min-width: 0; display: grid; gap: 2px; }
.team-row__name { font-weight: 650; font-size: 1.05rem; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); overflow-wrap: anywhere; }
.team-row__meta { font-size: var(--fs-xs); color: var(--text-3); overflow-wrap: anywhere; }
.team-row__acts { display: flex; gap: var(--s-2); }
.team-foot { margin-top: var(--s-4); max-width: 70ch; }
.team-fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: var(--s-2); min-width: 0; }
.team-roles { display: grid; gap: var(--s-2); }
.team-roles__opt { display: flex; align-items: flex-start; gap: var(--s-3); padding: var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-3); background: var(--field-bg); color: var(--field-text); cursor: pointer; font-size: var(--fs-sm); }
.team-roles__opt input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--primary); flex: none; }
.team-roles__opt:has(input:checked) { background: var(--selected-bg); color: var(--text); border-color: var(--primary); }
.team-roles__opt:has(input:disabled) { opacity: .6; cursor: not-allowed; }
.team-switch { display: flex; align-items: center; gap: var(--s-3); min-height: 44px; cursor: pointer; font-size: var(--fs-sm); font-weight: 600; }

/* ---------- Nastavitve ---------- */
.set { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); max-width: 920px; }
.set .panel__body { min-width: 0; }
.set .stack > *, .set-switch__text > * { min-width: 0; }
.set-grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); align-items: start; }
.set-label { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.set-switches { display: grid; gap: 0; padding-block: 0; }
.set-switch { display: flex; align-items: flex-start; gap: var(--s-4); padding: var(--s-4) 0; border-top: 1px solid var(--line); }
.set-switch:first-child { border-top: 0; }
.set-switch > .switch { margin-top: 2px; }
.set-switch__text { min-width: 0; display: grid; gap: var(--s-2); }
.set-switch__title { font-weight: 650; cursor: pointer; }
.set-missing ul { margin: var(--s-1) 0 0; padding-left: 18px; }
.set-sub, .t-ops .set-sub { font-size: var(--fs-sm); font-weight: 650; margin-bottom: var(--s-3); }
.set-read { display: grid; gap: var(--s-3); }
.set-read__list { margin: 0; display: grid; gap: var(--s-3); }
.set-read__row { display: grid; gap: 2px; }
.set-read__row dt { font-size: var(--fs-xs); color: var(--text-3); font-weight: 600; }
.set-read__row dd { margin: 0; font-size: var(--fs-sm); overflow-wrap: anywhere; }
.set-tables td:first-child { min-width: 9rem; }
.set-tables .badge + .badge { margin-left: 4px; }

/* QR sheet (#/nastavitve?pogled=qr): cards on screen, clean A4 grid on paper */
.qr-tip { margin-bottom: var(--s-4); }
.qr-sheet { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.qr-card { display: grid; justify-items: center; gap: var(--s-2); padding: var(--s-5) var(--s-4); background: var(--snow-0); color: var(--dusk-950); border: 1px solid var(--wood-500); border-radius: var(--r-3); text-align: center; break-inside: avoid; page-break-inside: avoid; }
.qr-card__brand { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.1; }
.qr-card__code { width: min(100%, 220px); height: auto; aspect-ratio: 1; }
.qr-card__table { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.qr-card__how { display: grid; gap: 1px; font-size: var(--fs-xs); }
.qr-card__how span:first-child { font-weight: 650; font-size: var(--fs-sm); }
.qr-card__url { font-family: var(--font-mono); font-size: 10px; overflow-wrap: anywhere; }
@media print {
  .adm-screen { padding: 0; max-width: none; }
  .qr-sheet { grid-template-columns: repeat(2, 1fr); gap: 8mm; }
  .qr-card { border: 1px dashed var(--wood-500); border-radius: 0; padding: 10mm 6mm; }
  .qr-card__code { width: 60mm; }
}
