:root { color-scheme: light; font-family: Arial, Helvetica, sans-serif; }
* { box-sizing: border-box; }
body {
  min-height: 100vh; margin: 0; padding: 32px 18px; display: grid; place-items: center;
  color: #20231f;
  background: linear-gradient(rgba(12, 25, 17, .70), rgba(12, 25, 17, .82)), url("../IMAGES/gv-bg-base.jpg") center / cover fixed;
}
.auth-card {
  width: min(100%, 560px); padding: 32px; border: 1px solid rgba(255,255,255,.5);
  border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: 0 22px 60px rgba(0,0,0,.35);
}
h1 { margin: 0 0 12px; }
.lead { margin: 0 0 24px; line-height: 1.55; color: #4a514a; }
.form-grid { display: grid; gap: 17px; }
.two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
label { display: grid; gap: 7px; font-weight: 700; }
input {
  width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid #aeb6ae;
  border-radius: 10px; background: #fff; color: #20231f; font: inherit;
}
input:focus { border-color: #216b45; outline: 3px solid rgba(33,107,69,.18); }
.primary, .secondary {
  display: inline-flex; min-height: 48px; align-items: center; justify-content: center;
  padding: 10px 20px; border: 0; border-radius: 999px; font: inherit; font-weight: 800;
  text-decoration: none; cursor: pointer;
}
.primary { background: #216b45; color: #fff; }
.primary:hover, .primary:focus-visible { background: #174d32; }
.secondary { background: #e4e9e4; color: #263129; }
.message { padding: 14px 16px; border-radius: 10px; line-height: 1.45; }
.message.error { color: #7c1717; background: #ffe8e8; }
.message.success { color: #174d32; background: #e1f4e8; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hint { font-size: 0.8em; color: #9ca3af; white-space: nowrap; }

.wide-card { width: min(100%, 820px); }
select, textarea {
  width: 100%; padding: 10px 13px; border: 1px solid #aeb6ae;
  border-radius: 10px; background: #fff; color: #20231f; font: inherit;
}
select { min-height: 48px; }
textarea { resize: vertical; line-height: 1.45; }
select:focus, textarea:focus { border-color: #216b45; outline: 3px solid rgba(33,107,69,.18); }
fieldset { border: 1px solid #c8d0c8; border-radius: 14px; padding: 14px 16px; }
legend { padding: 0 6px; font-weight: 800; }
.choice-box { display: grid; gap: 10px; }
.radio-row, .check-row { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; line-height: 1.35; }
.radio-row input, .check-row input { width: auto; min-height: auto; margin-top: 3px; }
.notice-box { padding: 14px 16px; border-radius: 14px; background: #f4f6f4; color: #343b34; line-height: 1.5; }
.notice-box p { margin: 0 0 10px; }
.notice-box p:last-child { margin-bottom: 0; }
.suggestion-wrap { position: relative; }
.suggestions[hidden] { display: none !important; }
.suggestions {
  position: absolute; z-index: 20; top: calc(100% - 2px); left: 0; right: 0;
  display: grid; gap: 4px; padding: 6px; border: 1px solid #aeb6ae; border-radius: 12px;
  background: #fff; box-shadow: 0 14px 34px rgba(0,0,0,.16);
}
.suggestion-item {
  display: grid; gap: 2px; width: 100%; padding: 10px 12px; border: 0; border-radius: 9px;
  background: #fff; color: #20231f; text-align: left; cursor: pointer; font: inherit;
}
.suggestion-item:hover, .suggestion-item:focus { background: #eaf2ec; outline: none; }
.suggestion-item span { color: #626a63; font-size: .9rem; }
.message ul { margin: 8px 0 0; padding-left: 20px; }

.suggestion-error {
  padding: 10px 12px;
  font-size: 14px;
  color: #7f1d1d;
  background: #fee2e2;
}

.label-title {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  min-height: 24px;
}

.list-card { display: grid; gap: 14px; margin-top: 18px; }
.inzerat-row { padding: 16px; border: 1px solid #d5ddd5; border-radius: 16px; background: #fff; }
.inzerat-row h2 { margin: 0 0 8px; font-size: 1.15rem; }
.meta { margin: 0 0 10px; color: #5e665f; line-height: 1.45; }
.row-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.danger { background: #8b1e1e; color: #fff; }
.danger:hover, .danger:focus-visible { background: #681616; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; }
.media-item { padding: 8px; border: 1px solid #d5ddd5; border-radius: 12px; background: #fff; }
.media-item img { width: 100%; height: 110px; object-fit: cover; border-radius: 8px; display: block; margin-bottom: 8px; }
.inline-form { display: inline; margin: 0; }
.inline-form button { min-height: 40px; }

.char-row { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.char-counter { color: #626a63; font-size: .9rem; font-weight: 400; text-align: right; }
input[disabled] { background: #f4f6f4; color: #4a514a; cursor: not-allowed; }

/* GV Notice v1.0 */
.gv-notice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
  padding: 18px 20px;
  border-radius: 18px;
  line-height: 1.55;
  border: 1px solid rgba(33, 107, 69, .18);
  background: rgba(244, 250, 246, .92);
  color: #27342b;
  box-shadow: 0 12px 28px rgba(0,0,0,.08);
}
.gv-notice-icon {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(33, 107, 69, .12);
  font-size: 1.35rem;
}
.gv-notice-content h2 {
  margin: 0 0 8px;
  font-size: 1.15rem;
  color: #174d32;
}
.gv-notice-content p {
  margin: 0 0 8px;
}
.gv-notice-content p:last-child {
  margin-bottom: 0;
}
.gv-notice--success {
  border-color: rgba(33, 107, 69, .24);
}

.form-help{
    min-height:20px;
    margin-top:6px;
    font-size:.85rem;
    color:#8a8a8a;
    line-height:1.35;
}

/* GV Button v1.0 ---------------------------------------------------------
   Jednotný tlačidlový komponent pre formuláre a účtové obrazovky.
   Triedy .primary, .secondary a .danger ostávajú ako spätná kompatibilita. */
.gv-btn,
.primary,
.secondary {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: inherit;
  font-weight: 750;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.gv-btn:hover,
.gv-btn:focus-visible,
.primary:hover,
.primary:focus-visible,
.secondary:hover,
.secondary:focus-visible {
  transform: translateY(-1px);
  outline: none;
}

.gv-btn-primary,
.primary {
  background: linear-gradient(180deg, #2f7d53, #216b45);
  color: #fff;
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(33, 107, 69, .22);
}

.gv-btn-primary:hover,
.gv-btn-primary:focus-visible,
.primary:hover,
.primary:focus-visible {
  background: linear-gradient(180deg, #256b46, #174d32);
  box-shadow: 0 14px 30px rgba(33, 107, 69, .28);
}

.gv-btn-secondary,
.secondary {
  background: rgba(255,255,255,.64);
  color: #263129;
  border-color: rgba(33,107,69,.22);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  backdrop-filter: blur(5px);
}

.gv-btn-secondary:hover,
.gv-btn-secondary:focus-visible,
.secondary:hover,
.secondary:focus-visible {
  background: rgba(255,255,255,.86);
  border-color: rgba(33,107,69,.38);
}

.gv-btn-danger,
.danger {
  background: linear-gradient(180deg, #a33a32, #8b1e1e);
  color: #fff;
  border-color: rgba(255,255,255,.22);
}

.gv-btn-danger:hover,
.gv-btn-danger:focus-visible,
.danger:hover,
.danger:focus-visible {
  background: linear-gradient(180deg, #8b2e28, #681616);
}

.gv-action-bar,
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  align-items: center;
}

/* Jemnejšia typografia formulárových polí */
.auth-card label {
  font-weight: 520;
  color: #3f4c43;
  letter-spacing: .01em;
}

.auth-card input,
.auth-card select,
.auth-card textarea {
  font-weight: 400;
}

.gv-notice-icon {
  width: 54px;
  height: 54px;
  display: block;
  align-self: start;
}


/* GV Event v1.1 – aktuálny obrázok vo formulári */
.event-current-image {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}

.event-current-image img {
  display: block;
  width: min(100%, 420px);
  max-height: 240px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(216, 176, 106, 0.30);
  box-shadow: 0 10px 20px rgba(0,0,0,.08);
}


/* GV Form v1.0 – stabilizácia šírky formulárových polí
   Formulárové prvky nesmú presahovať vnútorný priestor karty ani fieldsetu. */
.auth-card form,
.auth-card fieldset,
.auth-card label,
.auth-card .two-columns,
.auth-card .two-columns > * {
  min-width: 0;
}

.auth-card input,
.auth-card select,
.auth-card textarea {
  box-sizing: border-box;
  max-width: 100%;
}

.auth-card fieldset {
  min-inline-size: 0;
  width: 100%;
}

.auth-card .two-columns {
  width: 100%;
}

.auth-card input[type="file"] {
  min-height: auto;
  padding: 11px 12px;
  line-height: 1.35;
  overflow: hidden;
}

@media (max-width: 720px) {
  .auth-card .two-columns {
    grid-template-columns: 1fr;
  }
}

/* GV File Upload v1.0 – jednotné nahrávanie súborov bez viditeľného natívneho inputu */
.gv-file-upload {
  display: grid;
  gap: 9px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.gv-file-upload-label {
  display: block;
  font-weight: 600;
  color: rgba(38, 48, 40, 0.92);
}

.gv-file-upload-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(216, 176, 106, 0.34);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  box-sizing: border-box;
  cursor: pointer;
}

.gv-file-upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gv-file-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(216, 176, 106, 0.48);
  background: rgba(248, 245, 238, 0.92);
  color: #3f2d00;
  font-weight: 650;
  box-shadow: 0 4px 10px rgba(0,0,0,.06);
}

.gv-file-upload-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(42, 46, 42, 0.72);
  font-size: 0.95rem;
}

.gv-file-upload-control:hover,
.gv-file-upload-control:focus-within {
  border-color: rgba(216, 176, 106, 0.68);
  box-shadow: 0 0 0 3px rgba(216, 176, 106, 0.12);
}

@media (max-width: 560px) {
  .gv-file-upload-control {
    grid-template-columns: 1fr;
  }

  .gv-file-upload-button {
    width: 100%;
  }
}
