/* ==========================================================================
   forms.css – Kibagsens Form Style (grey pills like toolbar)
   Scope: only inside .form
   ========================================================================== */
:root{
  /* Form tokens */
  --pill-h: 34px;
  --pill-r: 999px;
  --pill-pad-x: 14px;
  --pill-pad-y: 8px;

  --pill-bg: var(--surface-context);
  --pill-bg-focus: rgba(30, 41, 59, .72);
  --pill-border: var(--border);

  --pill-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 8px 24px rgba(0,0,0,.28);

  --pill-shadow-focus:
    0 0 0 3px rgba(96,165,250,.14),
    inset 0 1px 0 rgba(255,255,255,.06),
    0 10px 28px rgba(0,0,0,.34);
}


/* --- spacing ------------------------------------------------------------ */

.form--compact .form-group{ margin-bottom: 12px; }

.form-actions{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
}

.form-actions.btn-action{
  margin-top: 15px;
  margin-bottom: 20px;
}

/* --- labels & help text (like “Sortieren / Anzeigen”) ------------------- */

.form-label{
  display: block;
  margin: 0 0 6px;
  padding-left: 6px;
  font-size: 0.8rem;
  color: var(--muted);
}

.form-text{
  margin-top: 6px;
  font-size: 0.82rem;
  color: rgba(148,163,184,.75);
}

/* --- Pill inputs -------------------------------------------------------- */

.form input.form-control,
.form textarea.form-control,
.form select.form-select{
  width: 100%;
  box-sizing: border-box;

  height: var(--pill-h);
  padding: var(--pill-pad-y) var(--pill-pad-x);

  border-radius: var(--pill-r);
  border: 1px solid var(--pill-border);
  background: var(--surface);
  color: var(--text);

  outline: none;
  /* box-shadow: var(--pill-shadow); */
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

/* Placeholder like screenshot */
.form input.form-control::placeholder,
.form textarea.form-control::placeholder{
  color: var(--muted);
  font-size: 0.75rem;
}

/* Focus */
.form input.form-control:focus,
.form textarea.form-control:focus,
.form select.form-select:focus{
  background: var(--pill-bg-focus);
  border-color: rgba(96,165,250,.55);
  /* box-shadow: var(--pill-shadow-focus); */
}

/* Slight “press” feel */
.form input.form-control:active,
.form select.form-select:active{
  transform: translateY(0.5px);
}

/* Textarea: not a pill, but still rounded modern */
.form textarea.form-control{
  height: auto;
  min-height: 110px;
  resize: vertical;
  border-radius: 18px;
  padding: 12px 14px;
}

/* Date input: make it fit dark theme */
.form input[type="date"].form-control{
  color-scheme: dark;
}

/* Disabled */
.form input.form-control:disabled,
.form textarea.form-control:disabled,
.form select.form-select:disabled{
  opacity: .7;
  cursor: not-allowed;
}

/* Autofill */
.form input.form-control:-webkit-autofill{
  -webkit-text-fill-color: var(--text);
  transition: background-color 9999s ease-in-out 0s;
  box-shadow: 0 0 0 9999px var(--pill-bg) inset, var(--pill-shadow);
  border: 1px solid var(--pill-border);
}

/* --- Select caret (like in screenshot) ---------------------------------- */

.form select.form-select{
  appearance: none;
  padding-right: 38px;

  /* caret */
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(148,163,184,.9) 50%),
    linear-gradient(135deg, rgba(148,163,184,.9) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

/* --- Street icon inside pill -------------------------------------------- */

.street-wrapper{ position: relative; }

.street-wrapper .field-icon{
  position: absolute;
  left: 12px;
  top: 34px;                 /* label (ca. 20px) + halbe pill */
  transform: translateY(-50%);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--muted);
  pointer-events: none;
}

.street-wrapper #streetInput.form-control{
  padding-left: var(--pill-pad-x);
}

/* Suggestions dropdown (same dark pill language) */
.street-suggestions{
  position: absolute;
  left: 0;
  height: 100px;
  /* Breite dynamisch nach Inhalt, aber mindestens Input-Breite */
  min-width: 100%;
  max-width: min(720px, 95vw);
  box-sizing: border-box;
  top: calc(100% + 5px);
  z-index: 50;
  background: color-mix(in srgb, var(--surface-context) 3%, transparent);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  border-radius: 12px;
  opacity: 0;
  transition: opacity .12s ease;
  max-height: 300px;
  overflow: auto;
  display: none;             /* per JS auf block setzen */
}

.street-suggestions.is-open{
  display: block;
  opacity: 1;
}

.street-suggestion-item{
  display: block;
  width: 100%;              /* füllt die Dropdown-Breite */
  text-align: left;
  padding: 2px 15px;
  border: 0;
  background: transparent;
  font-size: 0.9rem;
  color: var(--muted);
  cursor: pointer;

  /* damit Breite nach Inhalt sauber wirkt */
  white-space: nowrap;

  /* optional: wenn trotzdem zu lang -> ... */
  overflow: hidden;
  text-overflow: ellipsis;
}

/* --- Minimal grid utils (so you can drop Bootstrap for this form) -------- */

.row-wrap{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}

.g-2{ gap: 10px; }

.col-12{ flex: 0 0 100%; max-width: 100%; }
.col-6 { flex: 0 0 calc(50% - 5px); max-width: calc(50% - 5px); }
.col-4 { flex: 0 0 calc(33.333% - 6.67px); max-width: calc(33.333% - 6.67px); }

@media (max-width: 720px){
  .col-6, .col-4{ flex: 0 0 100%; max-width: 100%; }
}

/* Buttons: keep your existing global styles, just align height */
.form .btn-main{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--accent);
  color:#fff;
  text-decoration:none;
  font-size:.85rem;
  border: 1px solid color-mix(in srgb, var(--accent) 60%, var(--border));
}

/* =========================================================
   Form rows with CSS-controlled width ratios
========================================================= */

.form-row{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap; /* mobile -> umbrechen */
}

/* Ratio-System über Flex-Grow (A:B) */
.form-row{ --a: 1; --b: 1; }

.form-row > .form-col{ min-width: 0px; }
.form-row > .form-col--a{ flex: var(--a) 1 0; }
.form-row > .form-col--b{ flex: var(--b) 1 0; }

/* Hier stellst du die Breitenverhältnisse ein */
.form-row--pn     { --a: 1;   --b: 2; } /* Projektnummer : Kostenstelle */
.form-row--street { --a: 4;   --b: 1;   } /* Strasse : Nr. */
.form-row--plz    { --a: 1;   --b: 3;   } /* PLZ : Ort */
.form-row--coords { --a: 1;   --b: 1;   } /* Lat : Long */
.form-row--dates  { --a: 1;   --b: 1;   } /* Start : Ende */

/* Mobile: zuverlässig untereinander */
@media (max-width: 360px){
  .form-row > .form-col{ min-width: 100%; }
}
