.alta-widget-root{
  --alta-ink:#22201D;
  --alta-paper:#FAF7F2;
  --alta-clay:#B5793D;
  --alta-clay-dark:#96602C;
  --alta-line:#E4DFD5;
  --alta-stone:#6B6459;
  --alta-bar:var(--alta-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ---- Desktop floating tab ---- */
.alta-desktop-tab{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%) rotate(0deg);
  z-index:9998;
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
.alta-tab-btn{
  background:var(--alta-clay);
  color:#fff;
  border:none;
  padding:16px 14px;
  font-size:0.95rem;
  font-weight:600;
  letter-spacing:0.01em;
  cursor:pointer;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:rotate(180deg);
  border-radius:8px 0 0 8px;
  box-shadow:-2px 2px 10px rgba(34,32,29,0.18);
  transition:background 0.15s ease;
}
.alta-tab-btn:hover,
.alta-tab-btn:focus-visible{
  background:var(--alta-clay-dark);
}
.alta-tab-btn:focus-visible{
  outline:2px solid var(--alta-ink);
  outline-offset:2px;
}
@media (max-width:767px){
  .alta-desktop-tab{display:none;}
}

/* ---- Mobile sticky bottom bar ---- */
.alta-mobile-bar{
  display:none;
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:9998;
  background:var(--alta-bar);
  padding:10px 10px calc(10px + env(safe-area-inset-bottom));
  box-shadow:0 -2px 12px rgba(0,0,0,0.15);
}
@media (max-width:767px){
  .alta-mobile-bar{display:flex; gap:6px;}
  body{padding-bottom:76px;}
}
.alta-mobile-btn{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  background:transparent;
  border:1px solid rgba(255,255,255,0.25);
  color:#fff;
  border-radius:6px;
  padding:9px 2px;
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.01em;
  text-decoration:none;
  cursor:pointer;
  font-family:inherit;
}
.alta-mobile-btn svg{width:18px;height:18px;}
.alta-mobile-btn.alta-primary{
  background:var(--alta-clay);
  border-color:var(--alta-clay);
}
.alta-mobile-btn:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
}

/* ---- Modal ---- */
.alta-modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(34,32,29,0.55);
  z-index:9999;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.alta-modal-overlay.alta-open{
  display:flex;
}
.alta-modal{
  background:var(--alta-paper);
  border-radius:10px;
  max-width:420px;
  width:100%;
  padding:28px 26px 24px;
  position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.alta-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  background:none;
  border:none;
  font-size:1.3rem;
  line-height:1;
  color:var(--alta-stone);
  cursor:pointer;
  padding:6px;
}
.alta-modal-close:focus-visible{
  outline:2px solid var(--alta-ink);
  border-radius:4px;
}
.alta-modal h2{
  margin:0 0 6px;
  font-size:1.3rem;
  color:var(--alta-ink);
}
.alta-modal p.alta-sub{
  margin:0 0 20px;
  color:var(--alta-stone);
  font-size:0.9rem;
}
.alta-field{
  margin-bottom:14px;
}
.alta-field label{
  display:block;
  font-size:0.82rem;
  font-weight:600;
  color:var(--alta-ink);
  margin-bottom:5px;
}
.alta-field input,
.alta-field select{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--alta-line);
  border-radius:6px;
  font-size:0.95rem;
  font-family:inherit;
  background:#fff;
  color:var(--alta-ink);
}
.alta-field input:focus,
.alta-field select:focus{
  outline:2px solid var(--alta-clay);
  outline-offset:1px;
}
.alta-submit{
  width:100%;
  background:var(--alta-clay);
  color:#fff;
  border:none;
  padding:12px;
  border-radius:6px;
  font-size:0.98rem;
  font-weight:700;
  cursor:pointer;
  margin-top:4px;
}
.alta-submit:hover,
.alta-submit:focus-visible{
  background:var(--alta-clay-dark);
}
.alta-submit:disabled{
  opacity:0.6;
  cursor:not-allowed;
}
.alta-modal-footer{
  margin-top:14px;
  text-align:center;
  font-size:0.82rem;
  color:var(--alta-stone);
  line-height:1.45;
}
.alta-modal-footer:empty{display:none;}
.alta-modal-footer a{
  color:var(--alta-ink);
  font-weight:600;
}
.alta-status{
  margin-top:12px;
  font-size:0.88rem;
  text-align:center;
}
.alta-status.alta-success{color:#2E5B3E;}
.alta-status.alta-error{color:#A33B2E;}

@media (prefers-reduced-motion:no-preference){
  .alta-modal{
    animation:alta-pop 0.18s ease-out;
  }
}
@keyframes alta-pop{
  from{opacity:0; transform:translateY(6px) scale(0.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
