/* styles/step.css — Karty kroků, file browser, skill launcher, customer form, history */

/* ─── REALIZATION VIEW ──────────────────────────────────────────────────────── */
.realization-view { max-width: 1400px; margin: 0 auto; padding: 20px 20px; }

.rv-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.rv-title  { flex: 1; display: flex; align-items: baseline; gap: 10px; }
.rv-id     { font-size: 12px; color: var(--c-text-muted); font-family: monospace; }
.rv-header-actions { display: flex; gap: 8px; }

.rv-summary { display: flex; flex-wrap: wrap; gap: 6px 16px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--c-radius); padding: 12px 16px; margin-bottom: 16px; align-items: center; }
.rv-summary-item { display: flex; flex-direction: column; min-width: 80px; }
.rv-summary-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.4px; color: var(--c-text-muted); font-weight: 600; }
.rv-summary-val   { font-size: 13px; font-weight: 600; }
.rv-summary-highlight { color: #16a34a; }
/* Oddělovač mezi skupinami položek */
.rv-summary-divider { width: 1px; height: 32px; background: var(--c-border); margin: 0 4px; flex-shrink: 0; }
.rv-progress-wrap { flex: 1; min-width: 140px; }
.rv-progress-label { font-size: 12px; color: var(--c-text-muted); margin-bottom: 4px; }
.rv-nzu-progress .rv-progress-label { color: var(--c-nzu); }

/* ─── TABS ──────────────────────────────────────────────────────────────────── */
.rv-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--c-border); margin-bottom: 16px; }
.rv-tab  { background: none; border: none; border-bottom: 2px solid transparent; padding: 8px 16px; font-size: 13px; font-weight: 500; color: var(--c-text-muted); cursor: pointer; transition: all 0.15s; margin-bottom: -1px; }
.rv-tab:hover { color: var(--c-text); }
.rv-tab.active { color: var(--c-primary); border-bottom-color: var(--c-primary); font-weight: 600; }
.rv-tab-content { }

/* ─── STEP GROUPS ────────────────────────────────────────────────────────────── */
.step-group { margin-bottom: 20px; }
.step-group-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--c-text-muted); margin-bottom: 6px; padding-left: 2px; }

/* ─── STEP CARD ─────────────────────────────────────────────────────────────── */
.step-card {
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--c-radius);
  margin-bottom: 4px; overflow: hidden; transition: border-color 0.15s, box-shadow 0.15s;
}
.step-card.step-done      { border-color: #bbf7d0; background: #fafffe; }
.step-card.step-active    { border-color: #93c5fd; border-left: 3px solid var(--c-blue); }
.step-card.step-ready     { border-color: var(--c-primary); border-left: 3px solid var(--c-primary); }
.step-card.step-blocked   { opacity: 0.6; }
.step-card.step-expanded  { box-shadow: var(--c-shadow-md); }
.step-card.step-attention { background: #eff6ff; border-color: #93c5fd; border-left: 3px solid #2563eb; }
.step-card.step-attention .step-header:hover { background: #dbeafe; }

/* Zvoneček v záhlaví kroku */
.step-attn-btn {
  background: none; border: none; padding: 0 2px; font-size: 18px; cursor: pointer;
  opacity: 0.15; transition: opacity 0.15s; line-height: 1; flex-shrink: 0;
  filter: grayscale(1);
}
.step-header:hover .step-attn-btn { opacity: 0.45; }
.step-attn-btn.step-attn-btn-on   { opacity: 1; filter: none; }
.step-attn-btn:hover               { opacity: 1 !important; filter: none; }

/* Header karty */
.step-header { display: flex; align-items: center; gap: 10px; padding: 9px 14px; cursor: pointer; transition: background 0.15s; user-select: none; }
.step-header:hover { background: var(--c-bg); }
.step-icon   { font-size: 15px; flex-shrink: 0; }
.step-header-main { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.step-header-main-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.step-label  { font-weight: 600; font-size: 13px; }
.step-parallel-badge, .step-optional-badge { font-size: 10px; padding: 1px 6px; border-radius: 10px; }
.step-parallel-badge { background: #fef3c7; color: #92400e; }
.step-optional-badge { background: var(--c-border-light); color: var(--c-text-muted); }
.step-blocked-info   { font-size: 11px; color: var(--c-orange); }
.step-header-right   { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.step-checklist-pct, .step-files-count { font-size: 11px; color: var(--c-text-muted); }
.step-toggle-icon    { color: var(--c-text-light); font-size: 16px; font-weight: 600; transition: transform 0.2s; }
.step-expanded .step-toggle-icon { transform: rotate(90deg); }

/* ─── CHECKLIST CHIPS (v záhlaví) ────────────────────────────────────────────── */
.step-cl-dots { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; padding-left: 1px; margin-top: 2px; }

.cl-dot {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 9px 2px 6px;
  border-radius: 20px;
  border: 1.5px solid #c4c9d4;
  background: #f1f3f6;
  color: #374151;
  font-size: 11px; font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
  white-space: nowrap;
  line-height: 1.5;
  user-select: none;
}
.cl-dot::before {
  content: '○';
  font-size: 12px;
  line-height: 1;
  flex-shrink: 0;
  color: #6b7280;
  transition: all 0.15s;
}
.cl-dot:hover {
  border-color: #9ca3af;
  background: #e5e7eb;
  color: #111827;
}
.cl-dot.cl-dot-done {
  background: #dcfce7;
  border-color: #6ee7a0;
  color: #166534;
  font-weight: 600;
}
.cl-dot.cl-dot-done::before {
  content: '✓';
  color: #15803d;
  font-weight: 700;
}
.cl-dot.cl-dot-done:hover {
  background: #bbf7d0;
  border-color: #4ade80;
  color: #14532d;
}
[data-theme="darker"] .cl-dot,
[data-theme="dark"]   .cl-dot {
  background: var(--c-bg); border-color: var(--c-border); color: var(--c-text);
}
[data-theme="darker"] .cl-dot.cl-dot-done,
[data-theme="dark"]   .cl-dot.cl-dot-done {
  background: rgba(34,197,94,0.12); border-color: #4ade80; color: #4ade80;
}

/* Body karty */
.step-body-inner { padding: 0 14px 14px; }
.step-description { font-size: 12px; color: var(--c-text-muted); margin: 8px 0 10px; padding: 8px 12px; background: var(--c-bg); border-radius: 6px; }
.step-completed-at { font-size: 11px; color: var(--c-green); margin-top: 4px; }

.step-missing-fields { background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px; padding: 8px 12px; font-size: 12px; color: #92400e; margin-bottom: 10px; }

/* Upozornění na nedokončenou smlouvu (měkká závislost) */
.step-warn-contract {
  background: #fff7ed;
  border: 1px solid #fdba74;
  border-left: 4px solid #f97316;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 12px;
  color: #9a3412;
  margin-bottom: 10px;
}

/* Datum dodání panelů (material krok) */
.step-delivery-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.step-delivery-label { font-size: 12px; font-weight: 500; color: var(--c-text); white-space: nowrap; }
.step-delivery-date { max-width: 180px; }

.step-body-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 10px 0; align-items: start; }
@media (max-width: 600px) { .step-body-grid { grid-template-columns: 1fr; } }

.step-section { }
.step-section-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: var(--c-text-muted); margin-bottom: 6px; }
.step-section-notes { margin: 10px 0; }
.step-notes { width: 100%; min-height: 60px; font-size: 13px; }

/* Tlačítko "✓ Vše" – označí všechny chipy kroku najednou */
.step-check-all-btn {
  background: none;
  border: 1px solid var(--c-border);
  border-radius: 5px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.step-check-all-btn:hover {
  border-color: #22c55e;
  color: #16a34a;
  background: #f0fdf4;
}

/* ─── CHECKLIST ─────────────────────────────────────────────────────────────── */
.step-checklist { display: flex; flex-direction: column; gap: 4px; }
.checklist-item { display: flex; align-items: flex-start; gap: 7px; font-size: 12px; cursor: pointer; padding: 3px 0; }
.checklist-item input { flex-shrink: 0; margin-top: 2px; cursor: pointer; }
.checklist-item.checked span { text-decoration: line-through; color: var(--c-text-muted); }

/* ─── SKILL LAUNCHER ────────────────────────────────────────────────────────── */
.skill-launchers { margin: 12px 0 8px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.skill-launchers-label { font-size: 11px; font-weight: 600; color: var(--c-text-muted); text-transform: uppercase; letter-spacing: 0.4px; width: 100%; margin-bottom: 2px; }
.btn-skill { background: var(--c-primary-bg); color: var(--c-primary); border: 1px solid #c7d2fe; border-radius: var(--c-radius); padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
.btn-skill:hover { background: var(--c-primary); color: white; }
.btn-skill-copied { background: var(--c-green-bg) !important; color: var(--c-green) !important; border-color: #86efac !important; }
.btn-copy-inline { background: none; border: 1px solid var(--c-border); border-radius: 4px; padding: 2px 8px; font-size: 11px; cursor: pointer; }
.command-preview { background: #1e1e2e; border-radius: 8px; padding: 12px; margin: 8px 0; }
.command-preview-header { display: flex; justify-content: space-between; align-items: center; color: #cdd6f4; font-size: 12px; margin-bottom: 8px; }
.command-text { font-family: 'Courier New', monospace; font-size: 11px; color: #a6e3a1; white-space: pre-wrap; line-height: 1.6; }

/* ─── FILE BROWSER ──────────────────────────────────────────────────────────── */
.file-browser { margin: 0; border: 1px solid var(--c-border); border-radius: var(--c-radius); overflow: hidden; }
.file-browser-header { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; background: var(--c-bg); border-bottom: 1px solid var(--c-border); }
.file-browser-label  { font-size: 12px; font-weight: 600; color: var(--c-text-muted); }
.file-browser-actions { display: flex; align-items: center; gap: 6px; }
.btn-upload { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: 6px; padding: 4px 10px; font-size: 12px; cursor: pointer; font-weight: 500; }
.btn-upload:hover { border-color: var(--c-primary); color: var(--c-primary); }
.btn-upload-icon { background: none; border: 1px solid var(--c-border); border-radius: 6px; padding: 3px 7px; font-size: 13px; cursor: pointer; color: var(--c-text-muted); line-height: 1; }
.btn-upload-icon:hover { border-color: var(--c-primary); color: var(--c-primary); }
.file-drop-zone { padding: 8px; min-height: 48px; transition: background 0.15s; }
.file-drop-zone.drag-over { background: var(--c-primary-bg); }
.file-drop-hint { font-size: 11px; color: var(--c-text-light); padding: 4px 4px; }
.file-empty     { font-size: 12px; color: var(--c-text-light); padding: 8px 4px; }
.file-uploading { font-size: 12px; color: var(--c-text-muted); padding: 8px; }
.file-folder-missing { display: flex; align-items: center; gap: 8px; padding: 8px 4px; flex-wrap: wrap; }
.file-folder-missing-name { font-size: 12px; font-weight: 600; color: var(--c-text-muted); font-family: monospace; }
.file-folder-missing-hint { font-size: 11px; color: var(--c-text-light); }
.btn-create-folder { background: none; border: 1px dashed var(--c-primary); border-radius: 6px; padding: 3px 10px; font-size: 12px; cursor: pointer; color: var(--c-primary); font-weight: 500; margin-left: auto; }
.btn-create-folder:hover { background: var(--c-primary-bg); }
.file-list { display: flex; flex-direction: column; gap: 2px; }
.file-item { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 4px; transition: background 0.1s; }
.file-item:hover { background: var(--c-bg); }
.file-icon { font-size: 14px; flex-shrink: 0; }
.file-name { font-size: 12px; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-size { font-size: 11px; color: var(--c-text-light); flex-shrink: 0; min-width: 36px; text-align: right; }
.file-actions { display: flex; gap: 4px; opacity: 0; transition: opacity 0.1s; }
.file-item:hover .file-actions { opacity: 1; }
.btn-file-action { background: none; border: none; padding: 2px 6px; font-size: 13px; cursor: pointer; border-radius: 4px; color: var(--c-text-muted); }
.btn-file-action:hover { background: var(--c-border); }
.btn-file-remove:hover { background: #fef2f2; color: #dc2626; }

/* ─── HISTORY LOG ───────────────────────────────────────────────────────────── */
.step-history-section .step-section-title { cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
.step-history-toggle { font-size: 14px; transition: transform 0.2s; }
.history-log    { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; }
.history-entry  { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--c-border-light); }
.history-entry-icon { font-size: 14px; flex-shrink: 0; margin-top: 1px; }
.history-entry-body { flex: 1; }
.history-entry-desc { font-size: 13px; }
.history-entry-meta { font-size: 11px; color: var(--c-text-muted); margin-top: 2px; display: flex; gap: 8px; }
.history-compact .history-entry-compact { display: flex; align-items: center; gap: 6px; padding: 4px 0; font-size: 12px; border-bottom: 1px solid var(--c-border-light); }
.history-compact .history-time { margin-left: auto; color: var(--c-text-light); font-size: 11px; }
.history-empty { font-size: 12px; color: var(--c-text-muted); padding: 8px 0; }
.history-more  { font-size: 11px; color: var(--c-text-light); padding: 8px 0; text-align: center; }

/* ─── CUSTOMER FORM ─────────────────────────────────────────────────────────── */
.customer-form  { border: 1px solid var(--c-border); border-radius: var(--c-radius); margin: 12px 0; overflow: hidden; }
.cf-header      { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: var(--c-bg); border-bottom: 1px solid var(--c-border); }
.cf-save-status { padding: 0 16px; font-size: 12px; min-height: 18px; margin-top: -2px; }

/* Skupiny – rozklikávací details/summary */
.cf-group {
  border-bottom: 1px solid var(--c-border-light);
  padding: 0;
}
.cf-group:last-child { border-bottom: none; }
.cf-group:nth-child(even) { background: var(--c-bg); }

/* Summary = nadpis skupiny, klikatelný */
.cf-group-title {
  display: flex; align-items: center; gap: 7px;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
  color: var(--c-primary); cursor: pointer; user-select: none;
  padding: 11px 16px; list-style: none;
}
.cf-group-title::-webkit-details-marker { display: none; }
.cf-group-title::before {
  content: '▸'; font-size: 10px; color: var(--c-text-light);
  transition: transform 0.15s; display: inline-block; width: 10px;
}
.cf-group[open] > .cf-group-title::before { transform: rotate(90deg); }
.cf-group-title:hover { background: var(--c-primary-bg); }

/* Obsah skupiny */
.cf-group .cf-fields { padding: 2px 16px 14px; }

/* Mřížka: 3 sloupce (realizace i nabídka), responzivní */
.cf-fields,
.cf-fields-2col { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 12px; }
@media (max-width: 500px) { .cf-fields, .cf-fields-2col { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 340px) { .cf-fields, .cf-fields-2col { grid-template-columns: 1fr; } }

/* Pole přes 2 nebo 3 sloupce */
.cf-field[data-span="2"] { grid-column: span 2; }
.cf-field[data-span="3"] { grid-column: 1 / -1; }
/* Na 2-col breakpointu: span 2 = celá šířka */
@media (max-width: 500px) { .cf-field[data-span="2"] { grid-column: 1 / -1; } }

/* Textarea a URL vždy přes celou šířku – pokud není označeno jako narrow */
.cf-field:not([data-narrow]):has(textarea)          { grid-column: 1 / -1; }
.cf-field:not([data-narrow]):has(input[type="url"]) { grid-column: 1 / -1; }
/* Narrow textarea – drží se na svém sloupci */
.cf-field[data-narrow] textarea { min-height: 0; }

.cf-field      { display: flex; flex-direction: column; gap: 3px; }
.cf-label      { font-size: 12px; font-weight: 500; color: var(--c-text); }
.cf-required   { color: #dc2626; margin-left: 2px; }
.cf-hint       { font-size: 11px; color: var(--c-text-light); line-height: 1.4; }

/* Pole potřebná pro skill fve-nabidka – jen oranžová hvězdička, bez čáry */
.cf-field--skill .cf-label::after {
  content: ' ★';
  color: #ea580c;
  font-size: 10px;
  font-weight: 700;
}
[data-theme="darker"] .cf-field--skill .cf-label::after,
[data-theme="dark"]   .cf-field--skill .cf-label::after { color: #fb923c; }

/* Skill-action banner nad formulářem – oranžový design */
.offer-skill-banner {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: #fff7ed; border: 1px solid #fed7aa; border-radius: var(--c-radius);
  padding: 10px 14px; margin-bottom: 14px;
}
.offer-skill-banner-text { font-size: 12px; color: #9a3412; flex: 1; min-width: 0; }
.offer-skill-banner-text strong { font-weight: 700; color: #c2410c; }
.offer-skill-banner-text small  { display: block; color: #ea580c; margin-top: 2px; }
.btn-skill-nabidka {
  background: #ea580c; color: white; border: none;
  border-radius: var(--c-radius); padding: 7px 14px;
  font-size: 12px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
  transition: background 0.15s;
}
.btn-skill-nabidka:hover  { background: #c2410c; }
.btn-skill-nabidka.copied { background: #16a34a; }
.btn-skill-nabidka--blue        { background: var(--c-primary); }
.btn-skill-nabidka--blue:hover  { background: var(--c-primary); opacity: 0.88; }
[data-theme="darker"] .offer-skill-banner,
[data-theme="dark"]   .offer-skill-banner {
  background: rgba(234,88,12,0.1); border-color: rgba(234,88,12,0.35);
}
[data-theme="darker"] .offer-skill-banner-text,
[data-theme="dark"]   .offer-skill-banner-text { color: #fdba74; }
[data-theme="darker"] .offer-skill-banner-text small,
[data-theme="dark"]   .offer-skill-banner-text small { color: #fb923c; }

/* Výrazné zvýraznění prázdných polí */
.cf-field.cf-empty .input {
  border: 2px solid #f97316;
  background: #fff7ed;
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.12);
}
.cf-field.cf-empty .cf-label {
  color: #c2410c;
  font-weight: 600;
}
.cf-field.cf-empty .cf-label::after {
  content: ' ✕';
  font-size: 11px;
  opacity: 0.7;
}
[data-theme="darker"] .cf-field.cf-empty .input,
[data-theme="dark"]   .cf-field.cf-empty .input {
  border: 2px solid #f97316;
  background: rgba(249, 115, 22, 0.08);
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.15);
}
[data-theme="darker"] .cf-field.cf-empty .cf-label,
[data-theme="dark"]   .cf-field.cf-empty .cf-label { color: #fb923c; font-weight: 600; }
.cf-field.cf-empty .input:focus {
  border-color: var(--c-primary);
  background: var(--c-surface);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

/* Podmíněná pole – plynulé skrytí */
.cf-field[data-show-if-key] { transition: opacity 0.15s; }
.cf-field[data-show-if-key][style*="none"] { opacity: 0; }

/* ─── VIZUÁLNÍ KARTY (offer-detail + realization) ───────────────────────────── */
.visual-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 16px; }
.vc-card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--c-radius); overflow: hidden; }
.vc-card-head { display: flex; align-items: center; gap: 7px; padding: 10px 14px 8px; border-bottom: 1px solid var(--c-border-light); background: var(--c-bg); }
.vc-icon  { font-size: 16px; }
.vc-title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: var(--c-text-muted); }
.vc-card-body { padding: 10px 14px 12px; display: flex; flex-direction: column; gap: 8px; }

.vc-field { display: flex; flex-direction: column; gap: 3px; }
.vc-label { font-size: 11px; font-weight: 600; color: var(--c-text-muted); text-transform: uppercase; letter-spacing: 0.3px; }
.vc-star  { color: #ea580c; }
.vc-field .input { font-size: 13px; }

/* Pole s jednotkou (suffix) */
.vc-input-suffix-wrap { display: flex; align-items: center; gap: 6px; }
.vc-input-suffix-wrap .input { flex: 1; min-width: 0; }
.vc-suffix { font-size: 12px; font-weight: 600; color: var(--c-text-muted); white-space: nowrap; flex-shrink: 0; }

/* Prázdné povinné pole */
.vc-field--empty .input { border-color: #f97316; background: #fff7ed; }
.vc-field--empty .vc-label { color: #c2410c; }
[data-theme="darker"] .vc-field--empty .input,
[data-theme="dark"]   .vc-field--empty .input { border-color: #f97316; background: rgba(249,115,22,0.08); }

/* ─── NZÚ INTRO ─────────────────────────────────────────────────────────────── */
.nzu-intro { background: var(--c-nzu-bg); border: 1px solid #6ee7b7; border-radius: var(--c-radius); padding: 10px 14px; margin-bottom: 14px; font-size: 13px; color: var(--c-nzu); }

/* ─── TRACK TOGGLE (inline v záhlaví realizace) ─────────────────────────────── */
.track-toggle-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 12px; font-size: 12px; font-weight: 500;
  border: 1px solid var(--c-border); border-radius: var(--c-radius);
  background: var(--c-surface); color: var(--c-text-muted);
  cursor: pointer; user-select: none; transition: all 0.15s;
  white-space: nowrap;
}
.track-toggle-btn input { display: none; }
.track-toggle-btn:hover { background: var(--c-bg); border-color: #d1d5db; }

/* Zapnuto – zelený styl */
.track-toggle-btn.track-toggle-on {
  background: #f0fdf4; border-color: #86efac; color: #15803d; font-weight: 600;
}
.track-toggle-btn.track-toggle-on:hover { background: #dcfce7; }

/* Nenastaveno – žlutě upozorní že chybí rozhodnutí */
.track-toggle-btn.track-toggle-unset {
  border-color: #fcd34d; background: #fffbeb; color: #92400e;
}

/* ─── DOTACE SELECT ─────────────────────────────────────────────────────────── */
.dotace-select {
  height: 32px; padding: 0 8px; font-size: 12px; font-weight: 500;
  border: 1px solid var(--c-border); border-radius: var(--c-radius);
  background: var(--c-surface); color: var(--c-text-muted);
  cursor: pointer; transition: all 0.15s;
  max-width: 180px;
}
.dotace-select:hover { border-color: #d1d5db; color: var(--c-text); }
.dotace-select:focus { outline: none; border-color: var(--c-primary); }

/* NZÚ aktivní – zelený */
.dotace-select.dotace-select-active {
  background: #f0fdf4; border-color: #86efac; color: #15803d; font-weight: 600;
}
/* Nenastaveno – žlutě */
.dotace-select.dotace-select-unset {
  border-color: #fcd34d; background: #fffbeb; color: #92400e;
}

/* ─── EXTRACT DIFF MODAL ────────────────────────────────────────────────────── */
.extract-diff-box { max-width: 760px; width: min(760px, 95vw); }
.extract-diff-body { padding: 16px 20px; }

.extract-diff-meta {
  display: flex; flex-direction: column; gap: 4px;
  font-size: 13px; margin-bottom: 12px;
  padding-bottom: 10px; border-bottom: 1px solid var(--c-border);
}
.extract-diff-conf { color: var(--c-text-muted); font-size: 12px; margin-left: 6px; }
.extract-diff-source-link { color: var(--c-primary); text-decoration: underline; }

.extract-diff-table {
  width: 100%; border-collapse: collapse; font-size: 13px;
}
.extract-diff-table th {
  text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--c-text-muted); font-weight: 600; padding: 6px 8px;
  border-bottom: 1px solid var(--c-border);
}
.extract-diff-table td {
  padding: 8px; vertical-align: top; border-bottom: 1px solid #f1f5f9;
}
.extract-diff-table .ed-row-disabled { background: #fafafa; opacity: 0.7; }
.extract-diff-table .ed-row-label { font-weight: 600; }
.extract-diff-table .ed-row-reason { font-size: 11px; color: var(--c-text-muted); font-weight: 400; margin-top: 2px; }
.extract-diff-table .ed-row-empty { color: var(--c-text-muted); font-style: italic; }
.extract-diff-table .ed-row-cur-val { font-family: monospace; font-size: 12px; }
.extract-diff-table .ed-row-input { width: 100%; padding: 6px 8px; font-size: 13px; font-family: monospace; }
.extract-diff-table .form-textarea { font-family: monospace; }

.extract-diff-warnings {
  margin-top: 12px; padding: 8px 12px;
  background: #fffbeb; border: 1px solid #fcd34d; border-radius: 8px;
  font-size: 12px; color: #92400e;
}
.extract-diff-warnings ul { margin: 4px 0 0 18px; padding: 0; }

.extract-diff-footer {
  display: flex; align-items: center; gap: 8px;
}

/* PV*SOL file picker (offer detail import) */
.pvsol-pick-list {
  list-style: none; padding: 0; margin: 0;
  max-height: 400px; overflow-y: auto;
  border: 1px solid var(--c-border); border-radius: 8px;
}
.pvsol-pick-item {
  padding: 10px 14px; cursor: pointer;
  border-bottom: 1px solid var(--c-border-light);
  transition: background 0.1s;
  outline: none;
}
.pvsol-pick-item:last-child { border-bottom: none; }
.pvsol-pick-item:hover,
.pvsol-pick-item:focus { background: var(--c-bg); }
.pvsol-pick-item:focus { box-shadow: inset 0 0 0 2px var(--c-primary); }
.pvsol-pick-name { font-weight: 600; font-size: 13px; word-break: break-word; }
.pvsol-pick-meta {
  display: flex; gap: 14px; margin-top: 3px;
  font-size: 11px; color: var(--c-text-muted);
}

.extract-diff-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--c-text); color: var(--c-bg); padding: 10px 18px; border-radius: 8px;
  font-size: 13px; box-shadow: var(--c-shadow-md); z-index: 1100;
  opacity: 0; transition: opacity 0.2s, transform 0.2s;
  pointer-events: none;
}
.extract-diff-toast.extract-diff-toast-visible {
  opacity: 1; transform: translateX(-50%) translateY(0);
}
/* ─── C3 GENERÁTOR ───────────────────────────────────────────────────────────── */
.c3-generator {
  margin: 12px 0;
  padding: 12px 14px;
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
  border: 1px solid #86efac;
  border-radius: var(--c-radius);
}
.c3-generator-header {
  display: flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 14px; color: #15803d;
  margin-bottom: 10px;
}
.c3-icon { font-size: 18px; }

.c3-preview {
  background: #fff; border: 1px solid #d1fae5;
  border-radius: var(--c-radius); padding: 8px 10px; margin-bottom: 10px;
  font-size: 12px;
}
.c3-preview-loading,
.c3-preview-error,
.c3-preview-warning {
  font-size: 12px; padding: 4px 0;
}
.c3-preview-error { color: #b91c1c; }
.c3-preview-warning { color: #92400e; }
.c3-preview-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 4px 16px;
}
.c3-preview-source {
  grid-column: 1 / -1; font-size: 11px; color: var(--c-text-muted);
  margin-bottom: 4px;
}
.c3-preview-source code { background: #f3f4f6; padding: 1px 5px; border-radius: 3px; font-size: 11px; }
.c3-preview-row { font-size: 12px; }
.c3-preview-row span { color: var(--c-text-muted); margin-right: 4px; }
.c3-svt { background: #fef3c7; padding: 1px 5px; border-radius: 3px; font-size: 10px; color: #92400e; }

.c3-form-row {
  display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 8px;
}
.c3-form-label {
  display: flex; flex-direction: column; gap: 4px;
  flex: 1 1 180px; font-size: 11px; color: var(--c-text-muted); font-weight: 500;
}
.c3-input {
  height: 30px; font-size: 12px;
}
.c3-req { color: #dc2626; }

.c3-form-actions {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.c3-btn-generate {
  background: #16a34a; color: #fff; border: none;
  padding: 8px 14px; font-size: 13px; font-weight: 600;
  border-radius: var(--c-radius); cursor: pointer;
  transition: background 0.15s;
}
.c3-btn-generate:hover:not(:disabled) { background: #15803d; }
.c3-btn-generate:disabled { opacity: 0.6; cursor: wait; }

.c3-status {
  font-size: 12px; display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.c3-status-ok { color: #15803d; }
.c3-status-ok code {
  background: #dcfce7; padding: 1px 5px; border-radius: 3px; font-size: 11px;
}
.c3-status-error { color: #b91c1c; }
.c3-warn { color: #92400e; font-size: 11px; }

.c3-status .btn-link {
  background: transparent; border: none; color: #16a34a;
  text-decoration: underline; cursor: pointer; padding: 0; font-size: 12px;
}
.c3-status .btn-link:hover { color: #15803d; }

/* ─── SMLOUVA GENERÁTOR ────────────────────────────────────────────────────── */
.smlouva-generator {
  margin: 12px 0;
  padding: 12px 14px;
  background: linear-gradient(135deg, #fefce8 0%, #fef9c3 100%);
  border: 1px solid #fde047;
  border-radius: var(--c-radius);
}
.smlouva-gen-header {
  display: flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 14px; color: #854d0e;
  margin-bottom: 10px;
}
.smlouva-icon { font-size: 18px; }

.smlouva-preview {
  background: #fff; border: 1px solid #fde68a;
  border-radius: var(--c-radius); padding: 10px 12px; margin-bottom: 10px;
  font-size: 12px;
}
.smlouva-preview-loading,
.smlouva-preview-error,
.smlouva-preview-warning {
  font-size: 12px; padding: 4px 0;
}
.smlouva-preview-error { color: #b91c1c; }
.smlouva-preview-warning { color: #92400e; }
.smlouva-preview-grid { display: grid; gap: 8px; }
.smlouva-preview-meta { font-size: 12px; line-height: 1.6; }
.smlouva-preview-meta strong { color: var(--c-text); }
.smlouva-dph {
  background: #fde68a; padding: 1px 6px; border-radius: 3px;
  font-size: 11px; font-weight: 600; color: #854d0e; margin-left: 6px;
}
.smlouva-name-warn {
  background: #fef3c7; border: 1px solid #fde68a;
  padding: 6px 8px; border-radius: 3px;
  font-size: 11px; color: #854d0e;
}
.smlouva-preview-prices {
  background: #fffbeb; border: 1px solid #fde68a;
  border-radius: var(--c-radius); padding: 8px 10px;
}
.smlouva-price-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 3px 0; font-size: 12px; gap: 12px;
}
.smlouva-price-total {
  border-top: 1px solid #fde68a; margin-top: 4px; padding-top: 6px;
  font-size: 13px;
}
.smlouva-price-zaloha { color: var(--c-text-muted); font-size: 11.5px; }
.smlouva-components-details summary {
  cursor: pointer; font-size: 12px; color: #854d0e; padding: 4px 0;
}
.smlouva-components-details ul {
  margin: 4px 0 0 0; padding-left: 20px; font-size: 11.5px;
}
.smlouva-components-details li { margin-bottom: 4px; }
.smlouva-warr { color: var(--c-text-muted); font-size: 10.5px; }

.smlouva-form-row {
  display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 8px;
}
.smlouva-form-label {
  display: flex; flex-direction: column; gap: 4px;
  flex: 1 1 180px; font-size: 11px; color: var(--c-text-muted); font-weight: 500;
}
.smlouva-form-checkbox {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 12px; color: var(--c-text); cursor: pointer;
  flex: 1 1 100%;
  padding: 6px 10px; background: #fffbeb; border: 1px solid #fde68a;
  border-radius: var(--c-radius);
}
.smlouva-form-checkbox input[type="checkbox"] {
  margin-top: 2px; flex-shrink: 0;
}
.smlouva-form-checkbox strong { color: var(--c-text); }
.smlouva-cb-hint {
  display: block; font-size: 10.5px; color: var(--c-text-muted);
  font-weight: 400; margin-top: 2px; line-height: 1.4;
}
.smlouva-input {
  height: 30px; font-size: 12px;
}
.smlouva-form-actions {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.smlouva-btn-generate {
  background: #ca8a04; color: #fff; border: none;
  padding: 8px 14px; font-size: 13px; font-weight: 600;
  border-radius: var(--c-radius); cursor: pointer;
  transition: background 0.15s;
}
.smlouva-btn-generate:hover:not(:disabled) { background: #a16207; }
.smlouva-btn-generate:disabled { opacity: 0.6; cursor: wait; }

.smlouva-status {
  font-size: 12px; display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.smlouva-status-ok { color: #166534; }
.smlouva-status-ok code {
  background: #fef3c7; padding: 1px 5px; border-radius: 3px; font-size: 11px;
}
.smlouva-status-error { color: #b91c1c; }
.smlouva-warn { color: #92400e; font-size: 11px; }
.smlouva-status .btn-link {
  background: transparent; border: none; color: #ca8a04;
  text-decoration: underline; cursor: pointer; padding: 0; font-size: 12px;
}
.smlouva-status .btn-link:hover { color: #a16207; }

/* Banner s aktuálním zdrojem nabídky (cesta) */
.smlouva-source-banner {
  background: #fff7ed; border: 1px dashed #fdba74;
  padding: 6px 10px; border-radius: var(--c-radius);
  font-size: 11.5px; color: #9a3412;
  margin-bottom: 8px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.smlouva-source-banner code {
  background: #fff; padding: 1px 5px; border-radius: 3px; font-size: 11px;
  color: var(--c-text); word-break: break-all;
}
.smlouva-change-src {
  background: transparent; border: none; color: #ca8a04;
  text-decoration: underline; cursor: pointer; padding: 0; font-size: 11.5px;
  margin-left: auto;
}
.smlouva-change-src:hover { color: #a16207; }

/* Upload — výběr offer.json přes file-picker (pro případ jiné lokace / názvu) */
.smlouva-upload-block {
  background: #fff; border: 1px solid #fde68a;
  border-radius: var(--c-radius); padding: 10px 12px;
  margin-top: 8px;
  display: flex; flex-direction: column; gap: 6px;
}
.smlouva-upload-prominent {
  border: 2px dashed #fbbf24; background: #fffbeb;
}
.smlouva-btn-upload {
  background: #fff; border: 1px solid #fbbf24; color: #92400e;
  padding: 7px 12px; font-size: 13px; font-weight: 600;
  border-radius: var(--c-radius); cursor: pointer; text-align: left;
  transition: background 0.15s, border-color 0.15s;
  align-self: flex-start;
}
.smlouva-btn-upload:hover { background: #fef3c7; border-color: #f59e0b; }
.smlouva-file-input { display: none; }
.smlouva-upload-hint {
  font-size: 11px; color: var(--c-text-muted); line-height: 1.5;
}
.smlouva-upload-hint code {
  background: #f3f4f6; padding: 0 4px; border-radius: 3px; font-size: 10.5px;
}
.smlouva-warn-hint {
  margin-top: 6px; font-size: 11.5px; line-height: 1.5;
  color: #92400e;
}
.smlouva-warn-hint code {
  background: #fef3c7; padding: 0 4px; border-radius: 3px; font-size: 10.5px;
}
.smlouva-src-tag {
  background: #d1fae5; color: #065f46;
  padding: 0 5px; border-radius: 3px; font-size: 10.5px; font-weight: 600;
}
