.zek-toc{width:auto;max-width: 100%; margin:0 0 24px;padding:16px;border:1px solid #ddd;background:#fff;color:#222;box-sizing:border-box;display: inline-flex;flex-direction: column;}
.zek-toc__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.zek-toc__title{font-size:18px;font-weight:700;line-height:1.4}
.zek-toc__toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:4px;border:0;background:transparent;cursor:pointer}
.zek-toc__toggle img{display:block;width:24px;height:24px;transition:transform .2s ease}
.zek-toc.is-collapsed .zek-toc__head{margin-bottom:0}
.zek-toc.is-collapsed .zek-toc__toggle img{transform:rotate(180deg)}
.zek-toc.is-collapsed .zek-toc__list{display:none}
.zek-toc__list,.zek-toc__child{display:flex;flex-direction:column;gap:8px;margin:0;padding:0 !important;list-style:none}
.zek-toc__child{margin-top:8px}
.zek-toc__item{position:relative;margin:0;padding:0 0 0 18px;font-size:15px;line-height:1.5}
.zek-toc__item:before{content:"";position:absolute;left:2px;top:.75em;width:5px;height:5px;background:#222;transform:translateY(-50%)}
.zek-toc__item--level-1:before{border-radius:50%}
.zek-toc__item a{display:block;color:inherit;text-decoration:none}
.zek-toc__item a:hover{text-decoration:underline}
.zek-toc__item.current>a{font-weight:700;text-decoration:underline}
.zek-toc-float-button{position:fixed;z-index:9998;display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:10px;border:1px solid #222;background:#fff;color:#222;box-shadow:0 6px 18px rgba(0,0,0,.14);cursor:pointer;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.zek-toc-float-button.is-visible{opacity:1;visibility:visible}
.zek-toc-float-button img{display:block;width:24px;height:24px}
.zek-toc-float-panel{position:fixed;z-index:9999;inset:0;visibility:hidden;pointer-events:none}
.zek-toc-float-panel.is-open{visibility:visible;pointer-events:auto}
.zek-toc-float-panel__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);opacity:0;transition:opacity .2s ease}
.zek-toc-float-panel.is-open .zek-toc-float-panel__backdrop{opacity:0}
.zek-toc-float-panel__dialog{position:absolute;right:24px;top:50%;width:min(360px,calc(100vw - 48px));max-height:75vh;padding:20px;overflow:auto;border:1px solid #ddd;background:#fff;color:#222;box-shadow:0 16px 50px rgba(0,0,0,.2);opacity:0;transform:translate(20px,-50%);transition:opacity .2s ease,transform .2s ease;box-sizing:border-box}
.zek-toc-float-panel--left .zek-toc-float-panel__dialog{right:auto;left:24px;transform:translate(-20px,-50%)}
.zek-toc-float-panel.is-open .zek-toc-float-panel__dialog{opacity:1;transform:translate(0,-50%)}
.zek-toc-float-panel__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #ddd}
.zek-toc-float-panel__title{font-size:18px;font-weight:700}
.zek-toc-float-panel__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:7px;border:1px solid #ddd;background:#fff;cursor:pointer}
.zek-toc-float-panel__close img{display:block;width:18px;height:18px}
.zek-toc-float-panel .zek-toc__list{margin:0}
.zek-toc__toggle:focus-visible,.zek-toc-float-button:focus-visible,.zek-toc-float-panel__close:focus-visible,.zek-toc__item a:focus-visible{outline:2px solid #222;outline-offset:2px}
@media(max-width:767px){.zek-toc{padding:16px}.zek-toc__child{margin-left:12px}.zek-toc-float-button{width:42px;height:42px;padding:9px}.zek-toc-float-panel__dialog,.zek-toc-float-panel--left .zek-toc-float-panel__dialog{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:75vh;padding:16px;transform:translateY(20px)}.zek-toc-float-panel.is-open .zek-toc-float-panel__dialog{transform:translateY(0)}}
