.gif-message{display:block;width:auto;height:auto;max-width:min(100px,100%);max-height:100px;margin:5px 0;border-radius:7px;object-fit:contain;cursor:zoom-in}
.gif-preview{position:absolute;inset:0;z-index:270;display:grid;place-items:center;padding:0;background:#000b;cursor:zoom-out}
.gif-preview.hidden{display:none}
.gif-preview-dialog{position:relative;display:grid;place-items:center;max-width:100%;max-height:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.gif-preview-image{display:block;width:auto;height:auto;max-width:100vw;max-height:100dvh;object-fit:contain}
.gif-picker{position:absolute;inset:0;z-index:260;display:grid;place-items:center;padding:16px;background:#0009}
.gif-picker.hidden{display:none}
.gif-picker-dialog{position:relative;display:grid;grid-template-rows:48px 68px minmax(0,1fr);width:min(760px,100%);height:min(620px,100%);overflow:hidden;border:1px solid #8d979c;border-radius:6px;background:#fff;box-shadow:0 16px 48px #0007}
.gif-picker-header{display:flex;min-height:40px;align-items:center;justify-content:space-between;padding:5px 10px 5px 15px;background:#07343b;color:#fff}
.gif-picker-header strong{font-size:15px}
.gif-picker-close{width:28px;height:28px;padding:0;background:transparent;color:#fff;font-size:22px;line-height:1}
.gif-picker-search-label{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #d8dfe2;color:#596268;font-size:12px;font-weight:600}
.gif-picker-search{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid #cad3d6;border-radius:5px;background:#fff;color:#25343a;font:inherit}
.gif-picker-search:focus{border-color:#08a9ca;outline:2px solid #08a9ca33}
.gif-picker-status{position:absolute;top:50%;left:50%;z-index:1;width:calc(100% - 30px);margin:0;transform:translate(-50%,-50%);color:#66747a;font-size:13px;text-align:center;pointer-events:none}
.gif-picker-status[hidden]{display:none}
.gif-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:8px;min-height:0;overflow:auto;padding:12px;background:#f4f6f7}
.gif-picker-item{display:grid;place-items:center;min-width:0;min-height:120px;padding:5px;border:1px solid #e1e6e8;border-radius:5px;background:#fff;transition:border-color .15s,background .15s}
.gif-picker-item:hover,.gif-picker-item:focus-visible{border-color:#08a9ca;background:#e8f9fc}
.gif-picker-item img{display:block;width:100%;height:125px;object-fit:contain}
.gif-upload-form{margin:14px 0}
.gif-upload-status{min-height:16px;color:#596268;font-size:12px}
.gif-upload-form input[type=file],.gif-upload-form input[type=text]{width:100%;padding:8px;border:1px solid #d7dfe2;border-radius:4px;font-size:12px}
.gif-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:16px}
.gif-admin-card{min-width:0;overflow:hidden;border:1px solid #dfe4e6;border-radius:5px;background:#fff}
.gif-admin-card>img{display:block;width:100%;height:140px;object-fit:contain;background:#f2f4f5}
.gif-admin-card>div{display:grid;gap:4px;padding:9px}
.gif-admin-card b,.gif-admin-card small{overflow:hidden;text-overflow:ellipsis}
.gif-admin-card b{font-size:11px;white-space:nowrap}
.gif-admin-card small{color:#68757a;font-size:10px}
.gif-admin-keywords{white-space:normal}
.gif-admin-empty{grid-column:1/-1;color:#68757a;font-size:13px}
@media(max-width:700px){.gif-picker{padding:8px}.gif-picker-dialog{width:100%;height:min(620px,100%)}.gif-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px}.gif-picker-item{min-height:100px}.gif-picker-item img{height:105px}}
@media(max-width:480px){.gif-picker-dialog{grid-template-rows:44px 64px minmax(0,1fr)}.gif-picker-search-label{grid-template-columns:1fr;gap:5px;padding:7px 10px}.gif-picker-search{height:34px}.gif-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gif-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gif-admin-card>img{height:100px}.gif-admin-card>div{padding:6px}}
@media(max-width:480px){.gif-preview{padding:8px}.gif-preview-image{max-width:calc(100vw - 40px);max-height:calc(100dvh - 56px)}}
