/* v4.3.4 — touch target / hit-area safety */
button,
[role="button"],
.reminder-line,
[data-rem]{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

/* Keep a tap on the visible button bound to that button rather than to
   decorative descendants. Interactive form controls are explicitly exempt. */
button > *{pointer-events:none}
button input,
button select,
button textarea,
button a{pointer-events:auto}

/* Utility/close controls were 30–38px in several modules. A 44px hit box
   prevents accidental taps on a neighbouring action without changing the
   surrounding card's clickable area. */
.close-btn,
.icon-btn,
.goal-x,
.dep21-back,
.reminder-add-btn{
  min-width:44px!important;
  min-height:44px!important;
}

/* A working sheet must always own the hit-testing layer. Fixed navigation
   remains below it, including admin/demo navigation. */
.modal{z-index:1000!important}
.modal-sheet{position:relative;z-index:1}
.bottom-nav{z-index:40}
.admin-quick-nav{z-index:45!important}

/* Give tightly packed button groups a real non-clickable gutter. */
.result-grid,
.outcome-grid,
.task-grid-priority,
.task-grid-secondary,
.activity-root-grid,
.dep21-tabs,
.dep21-contact-grid,
.goal-wizard-actions,
.dc-hub-grid{
  column-gap:max(10px,2.5vw);
}

/* Buttons themselves never bleed outside their visual box. */
.task-btn,
.result-btn,
.outcome-btn,
.activity-root-card,
.activity-type-card,
.dep21-summary-card,
.dep21-contact-card,
.goal-team-row,
.dc-hub-card,
.dc-team-row,
.nav-btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

/* The deposit card is intentionally a single tap target. */
#deposits-today-card{
  touch-action:manipulation;
  position:relative;
  isolation:isolate;
}

/* Small tab/chip controls need enough vertical separation for fingers. */
.dep21-tabs button,
.admin-period-tabs button,
.admin-v2-nav button{
  min-height:44px;
}

/* Carousel indicators keep the same visual size but receive a larger,
   non-overlapping hit box. */
.carousel-dots{gap:0!important}
.carousel-dot{
  width:28px!important;
  height:28px!important;
  background:transparent!important;
  border-radius:0!important;
  position:relative;
  transform:none!important;
}
.carousel-dot::after{
  content:"";
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#cbd8ce;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}
.carousel-dot.active::after{background:var(--green)}

.results-carousel-dots{gap:0!important}
.results-carousel-dots button{
  width:32px!important;
  height:32px!important;
  background:transparent!important;
  position:relative;
  border-radius:0!important;
}
.results-carousel-dots button::after{
  content:"";
  position:absolute;
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(255,255,255,.33);
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  transition:width .25s ease,background .25s ease;
}
.results-carousel-dots button.active::after{
  width:19px;
  background:#fff;
}

.results-sheet-drag button,
.an-detail-sheet-head button{
  min-width:44px!important;
  min-height:44px!important;
}
