.cat-gallery{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1.25rem}.cat-gallery-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.78);cursor:pointer}.cat-gallery-frame{position:relative;z-index:1;width:min(980px,100%);max-height:calc(100vh - 2.5rem);background:#0f172a;color:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.45)}.cat-gallery-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}.cat-gallery-head strong{display:block;font-size:1rem}.cat-gallery-head span{display:block;margin-top:.15rem;font-size:.78rem;color:#94a3b8}.cat-gallery-close{border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;border-radius:10px;padding:.45rem .75rem;font:inherit;font-weight:700;cursor:pointer}.cat-gallery-stage{position:relative;min-height:280px;max-height:68vh;overflow:auto;display:flex;align-items:center;justify-content:center;background:#020617}.cat-gallery-stage img{max-width:100%;max-height:68vh;object-fit:contain;cursor:zoom-in;transition:transform .2s ease;user-select:none}.cat-gallery-stage img.is-zoomed{max-height:none;width:160%;max-width:none;cursor:zoom-out}.cat-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(15,23,42,.72);color:#fff;font-size:1.6rem;cursor:pointer;z-index:2}.cat-gallery-nav.prev{left:.7rem}.cat-gallery-nav.next{right:.7rem}.cat-gallery-hint{margin:0;padding:.45rem 1rem 0;text-align:center;font-size:.75rem;color:#94a3b8}.cat-gallery-thumbs{display:flex;gap:.45rem;padding:.75rem 1rem 1rem;overflow-x:auto}.cat-gallery-thumbs button{flex:0 0 64px;width:64px;height:48px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#1e293b;cursor:pointer}.cat-gallery-thumbs button.active{border-color:#93c5fd}.cat-gallery-thumbs img{width:100%;height:100%;object-fit:cover;display:block}