/* ==========================================================
   Aurora Mobility AB — grunddesign
   Mörk skogsgrön, vit text, mobile-first.
   ========================================================== */

:root{
  --bg:            #060D0A;
  --bg-2:          #0A1611;
  --surface:       #0E1D17;
  --surface-2:     #12271F;
  --line:          rgba(255,255,255,.09);
  --line-strong:   rgba(255,255,255,.16);

  --green:         #2FA86B;
  --green-bright:  #45D68E;
  --green-deep:    #0F3D2A;
  --mint:          #9FE7C4;

  --text:          #F3F8F5;
  --muted:         #9DB3A8;
  --faint:         #6E857A;

  --radius:  16px;
  --radius-l:22px;
  --shadow: 0 24px 60px -20px rgba(0,0,0,.75);
  --ring: 0 0 0 3px rgba(69,214,142,.22);

  --maxw: 1140px;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 20px; }

/* ---------- Typografi ---------- */
h1,h2,h3{ margin:0; line-height:1.15; letter-spacing:-.02em; font-weight:650; }
h1{ font-size:clamp(2.1rem, 7vw, 4.1rem); letter-spacing:-.035em; }
h2{ font-size:clamp(1.6rem, 4.4vw, 2.6rem); }
h3{ font-size:1.05rem; font-weight:600; }
p{ margin:0; }

.serif{ font-family:var(--serif); font-weight:400; font-style:italic; letter-spacing:-.01em; }
.grad{
  background:linear-gradient(100deg, var(--green-bright), var(--mint) 55%, var(--green) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--mint);
  padding:7px 14px; border-radius:999px;
  background:rgba(69,214,142,.07);
  border:1px solid rgba(69,214,142,.2);
}
.eyebrow::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--green-bright); box-shadow:0 0 12px var(--green-bright);
}

.lead{ color:var(--muted); font-size:clamp(1rem,2.4vw,1.12rem); max-width:56ch; }

/* ---------- Sektioner ---------- */
section{ padding:76px 0; position:relative; }
.sec-head{ margin-bottom:34px; display:flex; flex-direction:column; gap:14px; align-items:flex-start; }

/* ---------- Knappar ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 26px; border-radius:999px; border:1px solid transparent;
  font-size:.95rem; font-weight:600; letter-spacing:-.01em;
  cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px) scale(.995); }
.btn-primary{
  background:linear-gradient(135deg, var(--green-bright), var(--green));
  color:#04150C; box-shadow:0 12px 34px -12px rgba(69,214,142,.6);
}
.btn-primary:hover{ box-shadow:0 18px 44px -12px rgba(69,214,142,.75); transform:translateY(-1px); }
.btn-ghost{ background:rgba(255,255,255,.04); border-color:var(--line-strong); color:var(--text); }
.btn-ghost:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
.btn-block{ width:100%; }
.btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:60;
  background:rgba(6,13,10,.72);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, background .25s ease;
}
header.scrolled{ border-bottom-color:var(--line); background:rgba(6,13,10,.9); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px; }

.logo{ display:flex; align-items:center; gap:11px; font-weight:650; letter-spacing:-.03em; font-size:1.13rem; }
.logo-mark{
  width:34px; height:34px; border-radius:11px; flex:none;
  background:linear-gradient(140deg, var(--green-bright), var(--green-deep));
  display:grid; place-items:center;
  box-shadow:0 6px 18px -6px rgba(69,214,142,.7), inset 0 1px 0 rgba(255,255,255,.3);
}
.logo-mark svg{ width:18px; height:18px; }
.logo small{ display:block; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); font-weight:600; margin-top:-3px; }

.nav-links{ display:none; gap:30px; font-size:.92rem; color:var(--muted); }
.nav-links a{ transition:color .18s ease; }
.nav-links a:hover{ color:var(--text); }
.nav-right{ display:flex; align-items:center; gap:10px; }

.lang{
  display:flex; align-items:center; padding:3px; gap:2px;
  border:1px solid var(--line-strong); border-radius:999px; background:rgba(255,255,255,.03);
}
.lang button{
  background:none; border:0; cursor:pointer; color:var(--faint);
  font-size:.74rem; font-weight:700; letter-spacing:.06em;
  padding:6px 11px; border-radius:999px; transition:all .18s ease;
}
.lang button.on{ background:var(--green-bright); color:#04150C; }

.nav-call{ display:none; }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:64px 0 54px; overflow:hidden; }
.hero::before{
  content:''; position:absolute; inset:-30% -20% auto -20%; height:120%;
  background:
    radial-gradient(60% 55% at 20% 0%, rgba(47,168,107,.28), transparent 70%),
    radial-gradient(45% 45% at 85% 20%, rgba(69,214,142,.14), transparent 70%);
  pointer-events:none;
}
.hero::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(75% 60% at 50% 30%, #000, transparent 75%);
  -webkit-mask-image:radial-gradient(75% 60% at 50% 30%, #000, transparent 75%);
}
.hero-inner{ position:relative; z-index:1; display:grid; gap:44px; }
.hero-copy{ display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
.hero h1{ margin-top:4px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }

.trust{ display:flex; flex-wrap:wrap; gap:10px 22px; padding-top:6px; }
.trust span{ display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--muted); }
.trust svg{ width:15px; height:15px; color:var(--green-bright); flex:none; }

/* ---------- Kort / paneler ---------- */
.card{
  background:linear-gradient(180deg, var(--surface), var(--bg-2));
  border:1px solid var(--line);
  border-radius:var(--radius-l);
  box-shadow:var(--shadow);
}

/* ---------- Formulär ---------- */
.form-card{ padding:24px 20px 26px; }
.form-card h3{ font-size:1.22rem; letter-spacing:-.02em; }
.form-sub{ color:var(--faint); font-size:.86rem; margin-top:5px; }

.grid-2{ display:grid; grid-template-columns:1fr; gap:14px; }
.field{ display:flex; flex-direction:column; gap:7px; position:relative; }
.field label{ font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--faint); }

input, select, textarea{
  width:100%; padding:14px 15px; font-size:.98rem; font-family:inherit;
  color:var(--text); background:rgba(255,255,255,.035);
  border:1px solid var(--line-strong); border-radius:12px;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
  appearance:none; -webkit-appearance:none;
}
input::placeholder, textarea::placeholder{ color:#5C7269; }
input:focus, select:focus, textarea:focus{
  outline:none; border-color:var(--green-bright); background:rgba(255,255,255,.055); box-shadow:var(--ring);
}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239DB3A8' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:17px; padding-right:42px;
}
select option{ background:#0E1D17; color:var(--text); }

.route-fields{ position:relative; display:flex; flex-direction:column; gap:14px; }
.route-fields::before{
  content:''; position:absolute; left:15px; top:52px; bottom:52px; width:1px;
  background:linear-gradient(var(--green-bright), rgba(69,214,142,.15));
  opacity:.6; pointer-events:none;
}
.pin{ position:absolute; left:0; top:34px; width:31px; display:grid; place-items:center; pointer-events:none; z-index:2; }
.pin i{ width:9px; height:9px; border-radius:50%; border:2px solid var(--green-bright); background:var(--bg-2); display:block; }
.pin.end i{ border-radius:2px; background:var(--green-bright); }
.has-pin input{ padding-left:36px; }

.readonly-note{ font-size:.78rem; color:var(--faint); }

/* Datumfält (öppnar egen kalender) */
.dateline{ display:flex; align-items:center; justify-content:space-between; cursor:pointer; }
.dateline.placeholder{ color:#5C7269; }
.dateline svg{ width:17px; height:17px; color:var(--muted); flex:none; }

/* ---------- Kalender ---------- */
.cal{
  background:#0C1A14; border:1px solid var(--line-strong); border-radius:16px;
  padding:14px; box-shadow:0 30px 60px -20px rgba(0,0,0,.85);
}
.cal-pop{ position:absolute; z-index:50; top:calc(100% + 8px); left:0; right:0; }
.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.cal-title{ font-weight:600; font-size:.95rem; text-transform:capitalize; }
.cal-nav{ display:flex; gap:6px; }
.cal-nav button{
  width:30px; height:30px; border-radius:9px; border:1px solid var(--line-strong);
  background:rgba(255,255,255,.04); color:var(--text); cursor:pointer; display:grid; place-items:center;
}
.cal-nav button:hover{ background:rgba(255,255,255,.1); }
.cal-nav svg{ width:14px; height:14px; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.cal-dow{ text-align:center; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); padding:5px 0; font-weight:600; }
.cal-day{
  aspect-ratio:1; border:0; border-radius:10px; background:transparent; color:var(--text);
  font-size:.85rem; font-family:inherit; cursor:pointer; transition:background .15s ease, color .15s ease;
  display:grid; place-items:center; position:relative;
}
.cal-day:hover:not(:disabled){ background:rgba(255,255,255,.09); }
.cal-day:disabled{ color:#3A4B44; cursor:not-allowed; }
.cal-day.blocked{ color:#7A3B3B; background:rgba(200,70,70,.1); cursor:not-allowed; text-decoration:line-through; }
.cal-day.sel{ background:var(--green-bright); color:#04150C; font-weight:700; }
.cal-day.today::after{
  content:''; position:absolute; bottom:5px; width:4px; height:4px; border-radius:50%; background:var(--green-bright);
}
.cal-day.sel.today::after{ background:#04150C; }
.cal-legend{ display:flex; gap:14px; margin-top:12px; padding-top:11px; border-top:1px solid var(--line); font-size:.72rem; color:var(--faint); }
.cal-legend i{ width:9px; height:9px; border-radius:3px; display:inline-block; margin-right:6px; vertical-align:-1px; }

/* ---------- Prisruta ---------- */
.quote{
  margin-top:16px; border-radius:16px; border:1px solid var(--line);
  background:rgba(69,214,142,.05); padding:16px; display:none;
}
.quote.show{ display:block; animation:pop .3s ease; }
@keyframes pop{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
.quote.warn{ background:rgba(255,180,70,.07); border-color:rgba(255,180,70,.3); }
.quote.err{ background:rgba(255,90,90,.07); border-color:rgba(255,90,90,.3); }

.quote-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; }
.quote-label{ font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); }
.quote-price{ font-size:clamp(1.8rem,6vw,2.4rem); font-weight:700; letter-spacing:-.03em; line-height:1; }
.quote-price small{ font-size:.9rem; font-weight:500; color:var(--muted); letter-spacing:0; }
.quote-meta{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); font-size:.82rem; color:var(--muted); }
.quote-meta b{ color:var(--text); font-weight:600; }
.quote-note{ font-size:.8rem; color:var(--mint); margin-top:10px; }

.spinner{
  width:15px; height:15px; border-radius:50%; flex:none;
  border:2px solid rgba(255,255,255,.2); border-top-color:var(--green-bright);
  animation:spin .7s linear infinite; display:inline-block;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
.calc-status{ display:flex; align-items:center; gap:9px; font-size:.85rem; color:var(--muted); margin-top:14px; min-height:20px; }

.form-msg{ margin-top:14px; font-size:.88rem; padding:13px 15px; border-radius:12px; display:none; }
.form-msg.show{ display:block; }
.form-msg.ok{ background:rgba(69,214,142,.1); border:1px solid rgba(69,214,142,.35); color:var(--mint); }
.form-msg.bad{ background:rgba(255,90,90,.1); border:1px solid rgba(255,90,90,.35); color:#FFB4B4; }

/* ---------- Rutter ---------- */
.routes{ display:grid; grid-template-columns:1fr; gap:14px; }
.route-card{
  padding:20px; border-radius:var(--radius); border:1px solid var(--line);
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  transition:border-color .2s ease, transform .2s ease;
  display:flex; flex-direction:column; gap:14px;
}
.route-card:hover{ border-color:rgba(69,214,142,.4); transform:translateY(-2px); }
.route-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.route-name{ font-weight:600; font-size:1.05rem; letter-spacing:-.01em; }
.route-from{ font-size:.76rem; color:var(--faint); text-transform:uppercase; letter-spacing:.1em; }
.route-flag{ font-size:1.4rem; line-height:1; }
.route-stats{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding-top:13px; border-top:1px solid var(--line); }
.route-km{ font-size:.85rem; color:var(--muted); }
.route-price{ text-align:right; }
.route-price b{ display:block; font-size:1.35rem; font-weight:700; letter-spacing:-.02em; color:var(--green-bright); }
.route-price span{ font-size:.7rem; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; }
.route-card .btn{ padding:11px 18px; font-size:.85rem; }

/* ---------- Pristabell ---------- */
.rates{ margin-top:26px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.rates-scroll{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; min-width:420px; font-size:.88rem; }
th,td{ padding:13px 16px; text-align:left; border-bottom:1px solid var(--line); }
th{ background:rgba(255,255,255,.03); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); font-weight:600; white-space:nowrap; }
td:not(:first-child){ font-variant-numeric:tabular-nums; color:var(--mint); font-weight:600; white-space:nowrap; }
tr:last-child td{ border-bottom:0; }

/* ---------- Om oss ---------- */
.about{ display:grid; gap:34px; }
.about-points{ display:grid; gap:14px; }
.point{ display:flex; gap:14px; padding:17px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.02); }
.point-ico{
  width:38px; height:38px; border-radius:11px; flex:none; display:grid; place-items:center;
  background:rgba(69,214,142,.1); border:1px solid rgba(69,214,142,.22); color:var(--green-bright);
}
.point-ico svg{ width:19px; height:19px; }
.point h3{ margin-bottom:3px; }
.point p{ font-size:.88rem; color:var(--muted); }

/* ---------- Akut ---------- */
.akut{
  border-radius:var(--radius-l); padding:32px 24px;
  border:1px solid rgba(69,214,142,.28);
  background:
    radial-gradient(120% 130% at 100% 0%, rgba(47,168,107,.3), transparent 60%),
    linear-gradient(180deg, var(--surface-2), var(--bg-2));
  display:flex; flex-direction:column; gap:20px; align-items:flex-start;
  position:relative; overflow:hidden;
}
.akut .eyebrow{ background:rgba(255,120,80,.09); border-color:rgba(255,140,90,.35); color:#FFB08A; }
.akut .eyebrow::before{ background:#FF8A5B; box-shadow:0 0 12px #FF8A5B; animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse{ 50%{ opacity:.35; transform:scale(.8);} }
.akut h2{ font-size:clamp(1.5rem,4.2vw,2.1rem); }

/* ---------- Footer ---------- */
footer{ border-top:1px solid var(--line); background:var(--bg-2); padding:52px 0 34px; }
.foot-grid{ display:grid; gap:32px; }
.foot-brand p{ color:var(--muted); font-size:.9rem; margin-top:14px; max-width:38ch; }
.foot h4{ margin:0 0 14px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); font-weight:600; }
.foot ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px; font-size:.9rem; color:var(--muted); }
.foot ul a:hover{ color:var(--green-bright); }
.foot-line{ display:flex; gap:9px; }
.foot-line b{ color:var(--text); font-weight:600; }
.badge-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.badge{
  font-size:.72rem; padding:6px 11px; border-radius:999px;
  border:1px solid rgba(69,214,142,.24); background:rgba(69,214,142,.06); color:var(--mint);
}
.foot-bottom{
  margin-top:36px; padding-top:22px; border-top:1px solid var(--line);
  display:flex; flex-direction:column; gap:8px; font-size:.8rem; color:var(--faint);
}

/* ---------- Flytande ring-knapp (mobil) ---------- */
.fab{
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(135deg, var(--green-bright), var(--green));
  color:#04150C; box-shadow:0 14px 34px -8px rgba(69,214,142,.7);
}
.fab svg{ width:24px; height:24px; }

/* ---------- Admin ---------- */
.admin-shell{ min-height:100vh; display:flex; flex-direction:column; }
.login-wrap{ flex:1; display:grid; place-items:center; padding:40px 20px; }
.login-card{ width:100%; max-width:390px; padding:30px 24px; }
.tabs{ display:flex; gap:6px; padding:5px; background:rgba(255,255,255,.03); border:1px solid var(--line); border-radius:999px; margin-bottom:26px; }
.tabs button{
  flex:1; padding:10px 14px; border:0; border-radius:999px; background:none; cursor:pointer;
  color:var(--muted); font-size:.88rem; font-weight:600; transition:all .18s ease;
}
.tabs button.on{ background:var(--green-bright); color:#04150C; }
.b-list{ display:grid; gap:12px; }
.b-card{ padding:17px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.b-top{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:baseline; }
.b-route{ font-weight:600; letter-spacing:-.01em; }
.b-price{ color:var(--green-bright); font-weight:700; font-variant-numeric:tabular-nums; }
.b-meta{ margin-top:11px; display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:9px 16px; font-size:.83rem; color:var(--muted); }
.b-meta b{ display:block; color:var(--faint); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.b-meta span{ color:var(--text); word-break:break-word; }
.empty{ text-align:center; padding:50px 20px; color:var(--faint); font-size:.9rem; }
.stat-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; margin-bottom:22px; }
.stat{ padding:15px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.stat b{ display:block; font-size:1.5rem; font-weight:700; letter-spacing:-.02em; }
.stat span{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); }
.blocked-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.chip{
  display:inline-flex; align-items:center; gap:8px; padding:7px 9px 7px 13px; border-radius:999px;
  background:rgba(255,90,90,.09); border:1px solid rgba(255,90,90,.3); color:#FFB4B4; font-size:.82rem;
  font-variant-numeric:tabular-nums;
}
.chip button{ background:none; border:0; color:inherit; cursor:pointer; font-size:1rem; line-height:1; opacity:.7; padding:0 2px; }
.chip button:hover{ opacity:1; }

/* ---------- Hjälpklasser ---------- */
.hide{ display:none !important; }
.center{ text-align:center; }
.mt-24{ margin-top:24px; }

/* ---------- Desktop ---------- */
@media (min-width:700px){
  .form-card{ padding:30px 28px 32px; }
  .grid-2{ grid-template-columns:1fr 1fr; gap:16px; }
  .routes{ grid-template-columns:repeat(2,1fr); }
  .about-points{ grid-template-columns:1fr 1fr; }
  .akut{ flex-direction:row; align-items:center; justify-content:space-between; padding:38px 34px; }
  .akut > div{ max-width:60%; }
  .foot-grid{ grid-template-columns:1.5fr 1fr 1fr; }
  .foot-bottom{ flex-direction:row; justify-content:space-between; }
  .nav-call{ display:inline-flex; }
  .fab{ display:none; }
}
@media (min-width:900px){
  section{ padding:96px 0; }
  .nav-links{ display:flex; }
  .hero{ padding:80px 0 70px; }
  .hero-inner{ grid-template-columns:1.02fr .98fr; align-items:center; gap:56px; }
  .routes{ grid-template-columns:repeat(3,1fr); }
  .about{ grid-template-columns:.9fr 1.1fr; align-items:start; gap:56px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ==========================================================
   Adressförslag (autocomplete) + "min plats"
   ========================================================== */
.ac-list{
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:60;
  background:#0C1A14; border:1px solid var(--line-strong); border-radius:14px;
  box-shadow:0 24px 50px -16px rgba(0,0,0,.85);
  overflow:hidden; max-height:290px; overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.ac-item{
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  display:flex; align-items:flex-start; gap:11px; width:100%;
  padding:12px 14px; border:0; background:none; text-align:left; cursor:pointer;
  color:var(--text); font-family:inherit; font-size:.92rem; line-height:1.35;
  border-bottom:1px solid rgba(255,255,255,.05); transition:background .12s ease;
}
.ac-item:last-child{ border-bottom:0; }
.ac-item:hover, .ac-item.on{ background:rgba(69,214,142,.1); }
.ac-ico{ flex:none; width:17px; height:17px; margin-top:2px; color:var(--faint); }
.ac-item.on .ac-ico, .ac-item:hover .ac-ico{ color:var(--green-bright); }
.ac-txt{ min-width:0; }
.ac-main{ font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ac-main b{ color:var(--green-bright); font-weight:600; }
.ac-sub{ font-size:.79rem; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ac-empty{ padding:14px; font-size:.87rem; color:var(--faint); text-align:center; }

/* "Använd min plats" */
.ac-geo{
  border-bottom:1px solid rgba(255,255,255,.07);
  color:var(--mint); font-weight:500;
}
.ac-geo .ac-ico{ color:var(--green-bright); }

.geo-btn{
  position:absolute; right:6px; top:28px;
  width:40px; height:40px; border-radius:10px; flex:none;   /* minst 40px – tumvänligt */
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  display:grid; place-items:center; cursor:pointer;
  background:rgba(255,255,255,.05); border:1px solid var(--line-strong);
  color:var(--muted); transition:all .16s ease; padding:0;
}
.geo-btn:hover{ color:var(--green-bright); border-color:rgba(69,214,142,.45); background:rgba(69,214,142,.1); }
.geo-btn svg{ width:16px; height:16px; }
.geo-btn.busy{ pointer-events:none; opacity:.6; }
.geo-btn.busy svg{ animation:spin 1s linear infinite; }
.has-geo input{ padding-right:54px; }

/* Träffad adress bekräftad (koordinater sparade) */
.field.pinned .pin i{ box-shadow:0 0 0 4px rgba(69,214,142,.16); }

/* Meddelande direkt under fältet (syns även högst upp i formuläret på mobil) */
.field-msg{
  display:none; align-items:center; gap:8px;
  font-size:.82rem; color:var(--muted); margin-top:1px; line-height:1.4;
}
.field-msg.show{ display:flex; }
.field-msg.bad{ color:#FFB4B4; }

/* ==========================================================
   WhatsApp
   ========================================================== */
.btn-wa{
  background:#25D366; color:#04150C;
  box-shadow:0 12px 34px -12px rgba(37,211,102,.6);
}
.btn-wa:hover{ background:#2AE874; box-shadow:0 18px 44px -12px rgba(37,211,102,.75); transform:translateY(-1px); }
.wa-ico{ display:inline-flex; }
.wa-ico svg{ width:19px; height:19px; }

.akut-btns{ display:flex; flex-wrap:wrap; gap:11px; }

/* Flytande knappar på mobil */
.fab-stack{
  position:fixed; right:16px; bottom:16px; z-index:70;
  display:flex; flex-direction:column; gap:11px;
}
.fab-stack .fab{ position:static; }
.fab-wa{
  background:#25D366;
  box-shadow:0 14px 34px -8px rgba(37,211,102,.7);
  color:#04150C;
}
.fab-wa svg{ width:27px; height:27px; }

.foot-wa{ display:inline-flex; align-items:center; gap:8px; }
.foot-wa svg{ width:15px; height:15px; color:#25D366; flex:none; }

@media (min-width:700px){
  .fab-stack{ display:none; }
}

/* WhatsApp-ikon i headern */
.nav-wa{
  width:40px; height:40px; border-radius:12px; flex:none;
  display:grid; place-items:center; cursor:pointer;
  color:#25D366; background:rgba(37,211,102,.1);
  border:1px solid rgba(37,211,102,.32);
  transition:background .18s ease, color .18s ease, border-color .18s ease;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.nav-wa:hover{ background:#25D366; color:#04150C; border-color:#25D366; }
.nav-wa svg{ width:21px; height:21px; }
