
:root {
  --bg: #f7fbff;
  --card: #ffffff;
  --text: #243447;
  --muted: #6b7b8f;
  --line: #dde6ee;
  --primary: #1f6b4f;
  --primary-dark: #15533d;
  --danger-bg: #fff1f2;
  --danger-text: #b42318;
  --success-bg: #ecfdf3;
  --success-text: #027a48;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Inter, "Segoe UI", sans-serif;
  background: linear-gradient(180deg, #f8fbff 0%, #f1f6ff 52%, var(--bg) 100%);
  color: var(--text);
}
.page { min-height: 100vh; padding: 28px 16px; }
.container { max-width: 860px; margin: 0 auto; }
.card {
  background: var(--card);
  border: 1px solid #e7edf3;
  border-radius: 24px;
  padding: 28px;
  box-shadow: 0 16px 40px rgba(15,23,42,0.08);
}
.eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); margin-bottom: 10px; }
h1 { margin: 0 0 8px; font-size: 34px; line-height: 1.1; }
.subtext { color: var(--muted); margin: 0 0 20px; line-height: 1.6; }
.top-actions, .form-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.top-actions { justify-content: space-between; margin-bottom: 18px; }
.grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.col-12 { grid-column: span 12; }
.col-8 { grid-column: span 8; }
.col-6 { grid-column: span 6; }
.col-4 { grid-column: span 4; }
.col-3 { grid-column: span 3; }
label { display:block; font-size: 14px; font-weight: 700; margin-bottom: 6px; color: #425466; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  padding: 12px 14px;
  font: inherit;
}
textarea { min-height: 118px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #7bb495; box-shadow: 0 0 0 3px rgba(31,107,79,.12); }
.button, .button-outline {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 46px; padding: 0 18px; border-radius: 14px;
  text-decoration: none; font-weight: 800; cursor: pointer; transition: .2s;
}
.button { background: var(--primary); color:#fff; border:1px solid var(--primary); }
.button:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.button-outline { background:#fff; color:var(--text); border:1px solid var(--line); }
.button-outline:hover { border-color:#b8c8d6; background:#f8fafc; }
.alert { border-radius: 14px; padding: 12px 14px; margin-bottom: 14px; font-weight: 600; }
.alert-danger { background: var(--danger-bg); color: var(--danger-text); border:1px solid #fecdd3; }
.alert-success { background: var(--success-bg); color: var(--success-text); border:1px solid #abefc6; }
.note-box { background:#f8fafc; border:1px solid #e5edf4; border-radius:18px; padding:16px; }
.muted { color: var(--muted); }
.center { text-align:center; }
.small { font-size: 13px; }
@media (max-width: 720px) {
  .card { padding: 20px; border-radius: 18px; }
  .col-8, .col-6, .col-4, .col-3 { grid-column: span 12; }
  h1 { font-size: 28px; }
}

.note-box-inline { overflow-x: auto; }
.consent-line {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 0;
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}
.consent-checkbox {
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px;
  margin: 0;
}

.field-hint { margin-top: 6px; font-size: 12px; color: var(--muted); line-height: 1.45; }
.utility-links { display:flex; justify-content:flex-end; margin-top:-2px; }
.utility-links a { color: var(--primary); font-weight:700; text-decoration:none; }
.utility-links a:hover { text-decoration:underline; }
.alert-wrap { word-break: break-word; }


.toggle-line {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 700;
  color: #425466;
  margin-bottom: 0;
}
.toggle-line input {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: 0 0 18px;
}

.inline-password-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.form-actions .button{margin-top:0}
textarea{line-height:1.5}


.lang-switcher {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.lang-btn {
  width:40px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(36,52,71,.16);
  cursor:pointer;
  font-size:12px;
  font-weight:800;
  color:#243447;
  box-shadow:0 4px 12px rgba(15,23,42,.08);
  transition:.2s;
}
.lang-btn[data-lang="it"] { background: linear-gradient(90deg, #009246 0 33%, #fff 33% 66%, #ce2b37 66% 100%); }
.lang-btn[data-lang="en"] { background: url("../../images/lang/uk-flag-v3.png") center/cover no-repeat; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.lang-btn[data-lang="ru"] { background: linear-gradient(180deg, #fff 0 33%, #1c57a7 33% 66%, #cf323e 66% 100%); }
.lang-btn[data-lang="uk"] { background: linear-gradient(180deg, #1b75d0 0 50%, #ffd700 50% 100%); }
.lang-btn[data-lang="fr"] { background: linear-gradient(90deg, #0055a4 0 33%, #fff 33% 66%, #ef4135 66% 100%); color:#111; }
.lang-btn[data-lang="de"] { background: linear-gradient(180deg, #000 0 33%, #dd0000 33% 66%, #ffce00 66% 100%); color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.lang-btn.active {
  transform: translateY(-1px);
  box-shadow: 0 0 0 2px rgba(31,107,79,.16), inset 0 0 0 2px rgba(255,255,255,.88);
}
.lang-btn:not(.active) { opacity:.86; }
.lang-tools-inline {
  display:flex;
  justify-content:flex-end;
  margin-bottom:18px;
}
@media (max-width:720px) {
  .lang-tools-inline { justify-content:center; }
}

.booking-shell{max-width:1180px;margin:0 auto}.page{background:transparent;}
