/* Icon-only toggle: render SVG exactly as provided. No forced size, background, or shape. */
.fm-btn{position:fixed;display:inline-block;background:transparent;border:0;padding:0;margin:0;cursor:pointer;z-index:9999;line-height:0;touch-action:manipulation;outline:none}
.fm-btn:focus{outline:none}

.fm-btn .fm-icon {display:block;transition:filter .3s ease-in-out .05s}
.fm-btn:hover .fm-icon {filter:brightness(.85)}
/*
.fm-btn .fm-icon svg{display:block;transition:filter .3s ease-in-out .05s}
.fm-btn:hover .fm-icon svg{filter:brightness(.85);transition:filter .3s ease-in-out 0s}
*/


.fm-pos-bottom-right{right:20px;bottom:20px}
.fm-pos-bottom-left{left:20px;bottom:20px}
.fm-pos-top-right{right:20px;top:20px}
.fm-pos-top-left{left:20px;top:20px}

.fm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity var(--fm-anim-ms,.3s) ease;z-index:9998}

.fm-panel{position:fixed;top:0;left:0;height:100vh;width:86vw;max-width:var(--fm-panel-width,360px);background:#fff;transform:translateX(-100%);transition:transform var(--fm-anim-ms,.3s) ease;/*box-shadow:2px 0 24px rgba(0,0,0,.18);*/z-index:9999;display:flex;flex-direction:column}
.fm-close{align-self:flex-end;margin:10px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:#111;cursor:pointer}

.fm-menu{list-style:none;margin:20px;padding:0}
.fm-menu li a{display:block;padding:12px 8px;text-decoration:none;color:#111}
.fm-menu li a:focus,.fm-menu li a:hover{text-decoration:underline}

html.fm-open .fm-overlay{opacity:1;pointer-events:auto}
html.fm-open .fm-panel{transform:translateX(0)}
html.fm-open{overflow:hidden}
