/* DWH Smart Floating Menu v0.3 — scoped styles */
.dwh-sfm {
    position: fixed;
    inset-inline-end: max(14px, env(safe-area-inset-right, 0px));
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    z-index: 70;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    font-family: inherit;
}
.dwh-sfm--left {
    left: max(14px, env(safe-area-inset-left, 0px));
    right: auto;
}
.dwh-sfm--right {
    right: max(14px, env(safe-area-inset-right, 0px));
    left: auto;
}
.dwh-sfm__menu {
    box-sizing: border-box;
    width: min(270px, calc(100vw - 32px));
    max-height: min(55vh, 460px);
    overflow-y: auto;
    background: #fff;
    color: #15313a;
    border: 1px solid rgba(21,49,58,.12);
    border-radius: 16px;
    padding: 10px;
    box-shadow: 0 10px 32px rgba(0,0,0,.18);
}
.dwh-sfm__menu[hidden], .dwh-sfm__restore[hidden] {
    display: none !important;
}
.dwh-sfm__action {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px;
    min-height: 48px;
    border-radius: 10px;
    color: #15313a;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
    text-align: start;
}
.dwh-sfm__action:hover, .dwh-sfm__action:focus-visible {
    background: #eff7f5;
    color: #15313a;
}
.dwh-sfm__action-icon {
    display: grid;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 50%;
    background: var(--sfm-icon-bg, #087f76);
    color: #fff;
}
.dwh-sfm__toggle, .dwh-sfm__restore {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 54px;
    min-width: 54px;
    padding: 0 16px;
    border: none;
    border-radius: 30px;
    background: #087f76;
    color: #fff;
    box-shadow: 0 7px 22px rgba(0,0,0,.22);
    cursor: pointer;
    font: 600 14px/1.2 inherit;
}
.dwh-sfm__restore {
    padding: 0;
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    opacity: .86;
}
.dwh-sfm__hide {
    width: 100%;
    min-height: 44px;
    padding: 8px;
    border: 0;
    border-top: 1px solid #e3ecea;
    background: #fff;
    color: #15313a;
    cursor: pointer;
    font: inherit;
    text-align: center;
}
.dwh-sfm button:focus-visible, .dwh-sfm a:focus-visible {
    outline: 3px solid #c79d22;
    outline-offset: 3px;
}
.dwh-sfm__toggle svg, .dwh-sfm__restore svg {
    flex-shrink: 0;
}
@media (max-width: 640px) {
    .dwh-sfm {
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }
    .dwh-sfm__toggle {
        width: 54px;
        height: 54px;
        padding: 0;
    }
    .dwh-sfm__toggle-label {
        display: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dwh-sfm * {
        animation: none !important;
        transition: none !important;
    }
}

/* Phase 2C-3: respect native hidden state */
.dwh-sfm__toggle[hidden],
.dwh-sfm__restore[hidden],
.dwh-sfm__menu[hidden] {
    display: none !important;
}

.dwh-sfm__toggle,
.dwh-sfm__restore {
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}

.dwh-sfm--auto[dir="rtl"] {
    inset-inline-end: max(14px, env(safe-area-inset-left, 0px));
}


/* DWH compact restore edge tab v0.3.1 */
.dwh-sfm.is-hidden.dwh-sfm--auto[dir="rtl"],
.dwh-sfm.is-hidden.dwh-sfm--left {
    left: 0;
    right: auto;
}

.dwh-sfm.is-hidden.dwh-sfm--auto[dir="ltr"],
.dwh-sfm.is-hidden.dwh-sfm--right {
    right: 0;
    left: auto;
}

.dwh-sfm.is-hidden .dwh-sfm__restore {
    width: 32px;
    min-width: 32px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 0 12px 12px 0;
    opacity: .82;
    box-shadow: 0 2px 9px rgba(0,0,0,.14);
}

.dwh-sfm.is-hidden.dwh-sfm--auto[dir="ltr"]
    .dwh-sfm__restore,
.dwh-sfm.is-hidden.dwh-sfm--right
    .dwh-sfm__restore {
    border-radius: 12px 0 0 12px;
}

.dwh-sfm.is-hidden .dwh-sfm__restore svg {
    width: 18px;
    height: 18px;
}

/* DWH Smart Auto-Minimize v0.5.1 */
@media (max-width: 1024px) {
  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open).dwh-sfm--auto[dir="rtl"],
  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open).dwh-sfm--left {
    left: 0;
    right: auto;
  }

  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open).dwh-sfm--auto[dir="ltr"],
  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open).dwh-sfm--right {
    right: 0;
    left: auto;
  }

  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open) .dwh-sfm__toggle {
    width: 32px;
    min-width: 32px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    opacity: .9;
    border-radius: 12px 0 0 12px;
  }

  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open)[dir="rtl"] .dwh-sfm__toggle {
    border-radius: 0 12px 12px 0;
  }

  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open) .dwh-sfm__toggle svg {
    width: 18px;
    height: 18px;
  }
}

/* v0.5: appearance and device controls; original docking rules remain above. */
.dwh-sfm .dwh-sfm__toggle, .dwh-sfm .dwh-sfm__restore {
  background:var(--sfm-launcher-bg,#087f76); color:var(--sfm-launcher-fg,#fff);
}
.dwh-sfm img {width:24px;height:24px;object-fit:contain;display:block}
.dwh-sfm.is-hidden .dwh-sfm__restore img {width:18px;height:18px}
.dwh-sfm--style-circle .dwh-sfm__toggle {width:54px;padding:0;border-radius:50%}
.dwh-sfm--style-circle .dwh-sfm__toggle-label {display:none}
.dwh-sfm--style-rounded:not(.is-auto-docked):not(.is-hidden) .dwh-sfm__toggle {border-radius:14px}
.dwh-sfm.is-device-empty {display:none!important}
@media(max-width:640px) {.dwh-sfm .dwh-sfm--no-mobile {display:none!important}.dwh-sfm.is-auto-docked:not(.is-menu-open) .dwh-sfm__toggle img{width:18px;height:18px}}
@media(min-width:641px) and (max-width:1024px) {.dwh-sfm .dwh-sfm--no-tablet {display:none!important}}
@media(min-width:1025px) {.dwh-sfm .dwh-sfm--no-desktop {display:none!important}}

/* v0.5.1 tablet docking display */
@media (min-width:641px) and (max-width:1024px) {
  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open)
  .dwh-sfm__toggle-label {display:none!important;}
  .dwh-sfm.is-auto-docked:not(.is-hidden):not(.is-menu-open)
  .dwh-sfm__toggle img {width:18px;height:18px;}
}
