/* Čitateľnejšie písmo a voľba farebného režimu. */
html { font-size: 16px; color-scheme: dark; }
.nav-link { font-size: 14px; padding-top: 10px; padding-bottom: 10px; }
.nav-label { font-size: 10px; }
.page-subtitle { font-size: 14px; line-height: 1.55; }
.btn { font-size: 13px; }
.btn-sm { font-size: 12px; }
.card-header h2, .card-header h3 { font-size: 15px; }
.data-table th { font-size: 10px; }
.data-table td { font-size: 13px; }
.mono { font-size: 12px; }
.badge { font-size: 10px; }
.stat-card small, .eyebrow { font-size: 10px; }
.stat-meta, .quick-row small, .timeline-date { font-size: 12px; }
.quick-row p, .alert { font-size: 13px; }
.form-group label { font-size: 11px; }
.info-item small { font-size: 10px; }
.info-item strong { font-size: 14px; }
.tab, .section-link { font-size: 12px; }
.user-card strong { font-size: 12px; }
.user-card small { font-size: 10px; }
.field-help { color: var(--muted); font-size: 12px; line-height: 1.5; }

.product-brand {
  height: 140px;
  padding: 10px 16px;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  background: #f8fbff;
  border-color: #d7e2ef;
}
.product-brand img {
  display: block;
  width: 100%;
  max-width: 451px;
  max-height: 146px;
  object-fit: contain;
}
.product-brand-context {
  color: #385d87;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.auth-product-brand {
  display: block;
  margin: 0 0 26px;
  padding: 13px 18px;
  border: 1px solid #d7e2ef;
  border-radius: 13px;
  background: #f8fbff;
}
.auth-product-brand img {
  display: block;
  width: 100%;
  max-height: 105px;
  object-fit: contain;
}
.mobile-product-logo { display: none; }

.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #2a3c54;
  border-radius: 9px;
  padding: 7px 10px;
  background: #152236;
  color: #dce9f9;
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
}
.theme-toggle:hover { filter: brightness(1.12); }
.theme-icon { font-size: 16px; line-height: 1; }

html[data-theme="light"] {
  color-scheme: light;
  --bg: #edf2f7;
  --surface: #ffffff;
  --surface2: #f7f9fc;
  --line: #d6e0eb;
  --text: #172235;
  --muted: #5e7086;
}
html[data-theme="light"] body {
  background: radial-gradient(circle at 70% 0, #dceaff 0, transparent 30%), var(--bg);
  color: var(--text);
}
html[data-theme="light"] .sidebar {
  background: linear-gradient(180deg, #ffffff, #f5f8fc);
  border-color: #d8e2ed;
}
html[data-theme="light"] .brand { border-color: #dbe4ee; }
html[data-theme="light"] .product-brand,
html[data-theme="light"] .auth-product-brand { background: #f8fbff; border-color: #d7e2ef; }
html[data-theme="light"] .brand small,
html[data-theme="light"] .nav-label { color: #687d95; }
html[data-theme="light"] .nav-link { color: #42566d; }
html[data-theme="light"] .nav-link:hover { background: #e6eef8; color: #172235; }
html[data-theme="light"] .nav-link > span:first-child { color: #4778ad; }
html[data-theme="light"] .nav-link.muted { color: #60748a; }
html[data-theme="light"] .sidebar-footer,
html[data-theme="light"] .topbar { border-color: #d8e2ed; }
html[data-theme="light"] .user-card { background: #ffffff; border-color: #d8e2ed; }
html[data-theme="light"] .topbar { background: #ffffffdc; }
html[data-theme="light"] .breadcrumb { color: #536981; }
html[data-theme="light"] .breadcrumb b { color: #9aabbd; }
html[data-theme="light"] .stat-card,
html[data-theme="light"] .card {
  background: linear-gradient(145deg, #ffffff, #f9fbfd);
  border-color: #d6e0eb;
  box-shadow: 0 14px 34px #253b5514;
}
html[data-theme="light"] .card-header,
html[data-theme="light"] .tabs { border-color: #d8e2ed; }
html[data-theme="light"] .tab { color: #52657b; }
html[data-theme="light"] .tab.active,
html[data-theme="light"] .tab:hover {
  color: #0759b8;
  border-color: #126bd1;
}
html[data-theme="light"] .data-table th,
html[data-theme="light"] .data-table td { border-color: #dde5ee; }
html[data-theme="light"] .data-table tbody tr:hover { background: #edf4fc; }
html[data-theme="light"] .field,
html[data-theme="light"] .searchbar input,
html[data-theme="light"] .searchbar select {
  background: #ffffff;
  color: #172235;
  border-color: #c7d4e2;
}
html[data-theme="light"] .btn,
html[data-theme="light"] .theme-toggle { background: #ffffff; color: #21344b; border-color: #c4d2e1; }
html[data-theme="light"] .btn-primary {
  background: linear-gradient(135deg, #2375e5, #3d96ff);
  color: #ffffff;
  border-color: #3183ee;
}
html[data-theme="light"] .btn-danger { color: #a92e3b; border-color: #e3abb1; background: #fff4f5; }
html[data-theme="light"] .badge { color: #315b88; background: #edf5ff; border-color: #bfd5ed; }
html[data-theme="light"] .badge.warning { color: #855500; background: #fff7e6; border-color: #e8cd95; }
html[data-theme="light"] .badge.danger { color: #a22f3b; background: #fff0f2; border-color: #e6b1b7; }
html[data-theme="light"] .badge.success { color: #176b49; background: #eaf8f1; border-color: #a9d8c4; }
html[data-theme="light"] .timeline-item,
html[data-theme="light"] .quick-row { border-color: #dce5ee; }
html[data-theme="light"] .auth-content section { background: #ffffff; border-color: #d5e0eb; }
html[data-theme="light"] .auth-content .form-control {
  background: #ffffff !important;
  color: #172235 !important;
  border-color: #c7d4e2;
}
html[data-theme="light"] .mobile-menu { color: #172235; }

.municipality-input-wrap { position: relative; }
.municipality-input-wrap > .field { width: 100%; }
.municipality-suggestions {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #2a405d;
  border-radius: 10px;
  background: #0d1725;
  box-shadow: 0 18px 38px #00000055;
}
.municipality-option {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.municipality-option:hover,
.municipality-option.active { background: #172a43; }
.municipality-option strong { font-size: 13px; }
.municipality-option small { color: var(--muted); font-size: 11px; }
.municipality-help { color: var(--muted); font-size: 11px; line-height: 1.45; }
.municipality-help.loading { color: #72adf5; }
.municipality-help.selected { color: var(--green); }
.municipality-help.warning { color: var(--amber); }
html[data-theme="light"] .municipality-suggestions {
  border-color: #c7d4e2;
  background: #ffffff;
  box-shadow: 0 18px 38px #263b571f;
}
html[data-theme="light"] .municipality-option:hover,
html[data-theme="light"] .municipality-option.active { background: #eaf2fb; }

/* Detail projektu */
.project-detail-header { align-items: flex-start; }
.project-detail-header > .action-row { align-items: flex-start; }
.project-header-id {
  display: flex;
  align-items: baseline;
  gap: 9px;
  margin: 2px 0 7px;
  color: var(--muted);
}
.project-header-id span { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.project-header-id strong { color: var(--text); font-size: 16px; }
.project-folder-button { border-color: #2d8b67; color: #79dcb6; background: #102920; }
html[data-theme="light"] .project-folder-button { border-color: #84c9ad; color: #166a4b; background: #edf9f4; }
.project-folder-control { display: grid; justify-items: end; gap: 5px; max-width: 330px; }
.project-folder-control small { color: var(--muted); font-size: 10px; line-height: 1.35; text-align: right; }
.project-folder-control small.success { color: #57c99a; }
.project-folder-control small.error { color: #ff7e8c; }
.project-tabs { gap: 2px; }
.full-info { grid-column: 1 / -1; }
.quick-count { color: var(--text); font-size: 18px; }

.project-structure-sections,
.parcel-sections { display: grid; gap: 18px; }
.project-structure-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 28px; }
.project-structure-grid .project-overview-item { min-height: 94px; }

.location-card { margin-bottom: 18px; }
.location-form-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 17px; }
.responsible-person-section { margin-top: 3px; }
.form-section-label { font: 700 9px Manrope, system-ui, sans-serif; text-transform: uppercase; letter-spacing: .7px; color: var(--muted); }
.responsible-person-grid { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: 17px; }
.responsible-person-grid .form-group { min-width: 0; }
.location-form-grid .location-third { grid-column: span 2; }
.location-form-grid .location-half { grid-column: span 3; }
.optional-label { color: var(--muted); font-weight: 500; text-transform: none; letter-spacing: 0; }

.parcel-section { overflow: visible; }
.parcel-table { min-width: 980px; }
.parcel-table th:last-child,
.parcel-table td:last-child { white-space: nowrap; }
.parcel-table .parcel-long-value { min-width: 340px; max-width: 520px; white-space: normal; line-height: 1.45; }
.parcel-actions { flex-wrap: nowrap; }
.icon-action {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #354a65;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.icon-action.danger { color: #ff7e8c; border-color: #673943; }
.parcel-form-panel { border-top: 1px solid #22344b; }
.parcel-form-panel > summary {
  padding: 15px 20px;
  color: #72adf5;
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
  list-style-position: inside;
}
.parcel-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; padding: 0 20px 20px; }
.parcel-form-grid .parcel-field-wide,
.parcel-form-grid .parcel-transport-choice { grid-column: span 2; }
.parcel-form-grid .field-help { color: var(--muted); font-size: 10px; line-height: 1.35; }
.catalog-combobox { position: relative; }
.catalog-combobox > .field { width: 100%; padding-right: 48px; }
.catalog-toggle {
  position: absolute;
  z-index: 2;
  top: 1px;
  right: 1px;
  width: 44px;
  height: calc(100% - 2px);
  display: grid;
  place-items: center;
  border: 0;
  border-left: 1px solid #263952;
  border-radius: 0 8px 8px 0;
  color: var(--text);
  background: #111d2c;
  cursor: pointer;
}
.catalog-toggle:hover,
.catalog-toggle[aria-expanded="true"] { color: #72adf5; background: #172a43; }
.catalog-toggle span { font-size: 16px; transition: transform .15s ease; }
.catalog-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.catalog-options {
  position: absolute;
  z-index: 45;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  max-height: 300px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #2a405d;
  border-radius: 10px;
  background: #0d1725;
  box-shadow: 0 18px 38px #00000055;
}
.catalog-options-long { max-height: 360px; }
.catalog-option {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(34px, auto) 1fr;
  gap: 10px;
  align-items: start;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.catalog-option[hidden] { display: none; }
.catalog-option:hover,
.catalog-option.active { background: #172a43; }
.catalog-option strong { color: #72adf5; font-size: 12px; }
.catalog-option span { font-size: 12px; line-height: 1.45; }
html[data-theme="light"] .catalog-toggle {
  color: #172235;
  border-color: #c7d4e2;
  background: #f6f9fc;
}
html[data-theme="light"] .catalog-toggle:hover,
html[data-theme="light"] .catalog-toggle[aria-expanded="true"] { color: #176dc8; background: #eaf2fb; }
html[data-theme="light"] .catalog-options {
  border-color: #c7d4e2;
  background: #ffffff;
  box-shadow: 0 18px 38px #263b571f;
}
html[data-theme="light"] .catalog-option:hover,
html[data-theme="light"] .catalog-option.active { background: #eaf2fb; }
.parcel-transport-choice { align-content: end; }
.parcel-transport-choice .field-label { min-height: 30px; line-height: 1.35; }
.parcel-form-actions { grid-column: 1 / -1; }

.project-document-header > div,
.project-files-card .card-header > div { display: grid; gap: 5px; }
.project-document-header small,
.project-files-card .card-header small,
.project-wide-form .card-header small { color: var(--muted); font-size: 11px; }
.document-template-strip {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 20px;
  padding: 14px 20px;
  border-bottom: 1px solid #1f3045;
  background: #102033;
}
.document-template-strip span { font-size: 12px; font-weight: 700; }
.document-template-strip strong { color: #72adf5; font-size: 12px; }
.document-template-strip small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; }
.project-wide-form,
.project-upload-form,
.project-work-form { max-width: none; margin-top: 18px; }
.documentation-form-grid { display: grid; grid-template-columns: .65fr 1.5fr .9fr .8fr; gap: 17px; }
.documentation-note { grid-column: 1 / -1; }
.documentation-form-grid .form-actions { grid-column: 1 / -1; }
.document-edit-row > td { padding: 0 !important; background: #0d1b2b; }
.document-inline-edit { padding: 20px; border-top: 1px solid #2b4a6f; border-bottom: 1px solid #1f3045; }
html[data-theme="light"] .document-edit-row > td { background: #f2f7fc; }
html[data-theme="light"] .document-inline-edit { border-color: #c8d8e8; }
.report-create-grid { display: grid; grid-template-columns: .65fr 1.5fr 1fr auto; gap: 17px; align-items: end; }
.report-create-grid .form-actions { margin: 0; padding: 0; border: 0; }
.upload-form-grid { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(190px, .35fr) auto; gap: 17px; align-items: end; }
.upload-form-grid > .btn { min-height: 43px; }

.project-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.project-work-column { display: grid; gap: 18px; }
.project-work-form { margin-top: 0; }
.timeline-meta { margin-top: 4px; font-size: 11px; }

html[data-theme="light"] .document-template-strip { border-color: #d8e3ef; background: #eef5fc; }
html[data-theme="light"] .parcel-form-panel { border-color: #d7e1ec; }
html[data-theme="light"] .icon-action { border-color: #c7d4e2; }

@media (max-width: 1200px) {
  .project-structure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .location-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .location-form-grid .location-third,
  .location-form-grid .location-half { grid-column: span 1; }
  .documentation-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-create-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-create-grid .form-actions { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .project-work-grid { grid-template-columns: 1fr; }
  .parcel-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .upload-form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .responsible-person-grid,
  .project-structure-grid,
  .location-form-grid,
  .documentation-form-grid,
  .report-create-grid,
  .parcel-form-grid { grid-template-columns: 1fr; }
  .location-form-grid .location-third,
  .location-form-grid .location-half,
  .documentation-note,
  .documentation-form-grid .form-actions,
  .parcel-form-actions,
  .parcel-form-grid .parcel-field-wide,
  .parcel-form-grid .parcel-transport-choice { grid-column: auto; }
  .project-document-header { align-items: flex-start; gap: 12px; }
  .project-folder-control { justify-items: stretch; max-width: none; }
  .project-folder-control small { text-align: left; }
}

@media (max-width: 800px) {
  .mobile-product-logo {
    display: block;
    width: 122px;
    height: 38px;
    padding: 3px 6px;
    border: 1px solid #d7e2ef;
    border-radius: 7px;
    background: #f8fbff;
    object-fit: contain;
  }
}

@media (max-width: 560px) {
  .topbar .breadcrumb { display: none; }
}
