:root{--bg:#f3f3f7;--card:#ffffff;--card-soft:#fbfcff;--text:#16181d;--muted:#667085;--border:#d8dce6;--line:#e1e7f3;--accent:#2b74ff;--tag-bg:#e7ecff;--tag-text:#2b4cd3}
body{font-family:"Trebuchet MS","Lucida Sans",Verdana,sans-serif;font-size:15px;background:var(--bg);color:var(--text);margin:0}
body.theme-dark{--bg:#11151d;--card:#18202b;--card-soft:#1d2734;--text:#edf2f7;--muted:#a9b6c8;--border:#2d3a4d;--line:#33455d;--accent:#63a3ff;--tag-bg:#243958;--tag-text:#d8e7ff}
.snagchat-wrap{max-width:1380px;margin:0 auto;padding:14px 18px}
.snagchat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.snagchat-brand{font-weight:700;letter-spacing:0.2px}
.snagchat-grid{display:grid;grid-template-columns:3fr 1fr;gap:16px}
@media (max-width:980px){.snagchat-grid{grid-template-columns:1fr}}
.card{background:var(--card);border-radius:12px;padding:14px;border:1px solid var(--border);box-shadow:0 2px 16px rgba(20,30,70,.06);margin-bottom:12px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px}
.danger{background:#d73a49;color:white}
.msg-list{max-height:70vh;overflow:auto;padding-right:4px}
.msg{padding:12px 13px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--card-soft)}
.msg-system{background:color-mix(in srgb, var(--accent) 8%, var(--card-soft));border-color:color-mix(in srgb, var(--accent) 28%, var(--line))}
.msg-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:14px}
.msg-author{font-weight:700}
.msg-meta{color:var(--muted);font-size:12px}
.msg-body{line-height:1.58}
.msg-body img{max-width:100%;border-radius:8px}
.msg-attachment{display:inline-block;padding:6px 10px;border-radius:8px;background:#eef4ff;margin-top:6px}
select[multiple]{min-height:130px}
.field{margin:8px 0}
.field label{display:block;margin-bottom:5px;font-size:13px;color:var(--text)}
.input, textarea, button, select, input[type=file]{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid #ccd4e4;padding:9px 10px;background:var(--card);color:var(--text)}
textarea{field-sizing:content;min-height:3.2em}
button{cursor:pointer;background:var(--accent);color:#fff;border:none}
button:hover{filter:brightness(.95)}
nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--card-soft);border:1px solid var(--line);text-decoration:none;color:var(--text);margin-right:0}
nav a:hover{filter:brightness(.98)}
ul{padding-left:18px}
.muted{color:var(--muted)}
.footer-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.footer-powered{margin-left:auto;white-space:nowrap}
.error{background:#fee7e8;padding:8px;border-radius:8px;color:#771a1f;margin-bottom:10px}
.ok{background:#eaf8f0;padding:8px;border-radius:8px;color:#11411f;margin-bottom:10px}
.emote{margin-left:6px;font-size:13px}
.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--tag-bg);color:var(--tag-text);font-size:11px;margin-right:5px}
.room-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.room-card{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
.room-name{font-size:17px;font-weight:700}
.small{font-size:12px}
input[type=color]{padding:3px;height:38px}
.warning{color:#7d2a0e}
.websocket{background:#eef1f6;border-left:3px solid #4b67a3;padding:8px;border-radius:6px;margin:8px 0}
.group-card{margin-top:12px;padding-top:12px;border-top:1px solid #e6eaf2}
.group-toggle{display:block;margin:6px 0}
.perm-list{margin:8px 0 12px}
.perm-item{display:block;padding:6px 0;border-bottom:1px solid #eef2f8}
.perm-item:last-child{border-bottom:none}
.iframe-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:12px}
.iframe-tools a{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--card-soft);border:1px solid var(--line);text-decoration:none;color:var(--text)}
.iframe-tools a:hover{filter:brightness(.98)}
.iframe-tools a.active{background:var(--accent);color:#fff;border-color:transparent}
.js-room-shell{display:none}
html.js-enhanced .room-nojs-shell{display:none!important}
html.js-enhanced .js-room-shell{display:block}
.js-room-alerts:empty{display:none}
.js-admin-alerts:empty{display:none}
.admin-live-status{display:none;margin:0 0 10px 0;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card-soft);font-size:12px;color:var(--muted)}
.admin-live-status.is-busy,.admin-live-status.is-done,.admin-live-status.is-error{display:block}
.admin-live-status.is-busy{color:var(--muted)}
.admin-live-status.is-done{color:#0f766e}
.admin-live-status.is-error{color:#b91c1c}
.composer-shell{overflow:hidden}
.composer-card{padding:10px;background:transparent;border:none;box-shadow:none}
.composer-card h3{margin:0 0 8px;font-size:14px}
.compose-inline{display:flex;align-items:center;gap:8px}
.compose-inline .input,.compose-inline textarea{flex:1 1 auto;margin:0;background:transparent}
.compose-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.compose-actions .compose-tags{margin:0;flex:1 1 260px}
.compose-actions .compose-inline{margin-left:auto;flex:0 0 auto}
.compose-upload{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--text);text-decoration:none;cursor:pointer;flex:0 0 56px;padding:0;position:relative}
.compose-upload-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:36px;line-height:1;transform:rotate(45deg);transform-origin:center center;position:absolute;inset:0}
.compose-upload input{display:none}
.compose-submit{width:auto;min-width:110px;flex:0 0 auto}
.compose-meta{display:none}
.compose-notice{margin:6px 0 0 0;padding-left:2px;font-size:12px;line-height:1.35}
.compose-notice-error{color:#c2410c}
.compose-notice-ok{color:#0f766e}
.user-table{width:100%;border-collapse:separate;border-spacing:0 12px}
.user-table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 12px 4px;text-align:left}
.user-table tbody td{padding:0 12px;vertical-align:top}
.user-row td{background:var(--card-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.user-row td:first-child{border-left:1px solid var(--line);border-radius:12px 0 0 12px}
.user-row td:last-child{border-right:1px solid var(--line);border-radius:0 12px 12px 0}
.user-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;justify-content:space-between;margin-bottom:12px}
.user-filter-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.user-filter-form .field{margin:0;min-width:220px}
.user-filter-form button,.user-filter-form a{width:auto}
.user-alpha{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.user-alpha a{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--text);font-size:11px}
.user-alpha a.active{background:var(--accent);color:#fff;border-color:transparent}
.user-alpha .disabled{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--card-soft);color:var(--muted);font-size:11px;opacity:.55;cursor:not-allowed}
.user-summary{font-size:12px;color:var(--muted);margin-bottom:8px}
.user-name{font-size:16px;font-weight:700;display:block;margin-bottom:4px}
.user-meta{font-size:11px;color:var(--muted);letter-spacing:.04em}
.user-ident{display:flex;align-items:center;gap:10px}
.user-groups{font-size:12px;line-height:1.5}
.user-groups-list{display:flex;flex-wrap:wrap;gap:6px}
.user-chip{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:11px}
.user-actions{min-width:280px}
.user-action-block{padding:10px 0;border-bottom:1px solid var(--line)}
.user-action-block:last-child{border-bottom:0;padding-bottom:0}
.user-action-title{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}
.user-group-form{font-size:12px;margin:0}
.user-group-choice{display:block;padding:4px 0}
.user-group-save{margin-top:8px;font-size:12px;padding:7px 10px;width:auto;display:inline-block}
.user-ban-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.user-empty{font-size:12px;color:var(--muted)}
.user-pager{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.user-pager a,.user-pager span{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:12px;text-decoration:none;color:var(--text)}
.user-pager .active{background:var(--accent);color:#fff;border-color:transparent}
.user-pager .disabled{background:var(--card-soft);color:var(--muted);opacity:.6}
.admin-inline button,.admin-inline .danger{width:auto;display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;font-size:12px}
.admin-trash{width:34px;min-width:34px;height:34px;padding:0 !important;border-radius:10px;font-size:15px;line-height:1}
.admin-trash span{display:block;transform:translateY(-1px)}
.admin-manage-list{list-style:none;padding:0;margin:10px 0 0}
.admin-manage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.admin-manage-row:last-child{border-bottom:0}
.admin-manage-main{min-width:0}
.admin-manage-title{font-size:13px;font-weight:700;line-height:1.35}
.admin-manage-meta{font-size:11px;color:var(--muted);line-height:1.45;margin-top:2px}
.admin-manage-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.admin-tag-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.admin-tag-select{min-width:170px;font-weight:700}
.admin-toggle{font-size:11px;color:var(--muted);white-space:nowrap}
.admin-delete-toggle{font-size:11px;color:#b91c1c;white-space:nowrap}
.tag-choice{display:inline-block;margin:0 8px 8px 0;font-size:12px}
.tag-line{margin-bottom:6px;font-size:12px}
.compose-tags{margin:8px 0 6px;font-size:11px;color:var(--muted)}
.compose-tags-label{display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:.08em}
.compose-tag-list{display:flex;flex-wrap:wrap;gap:6px}
.compose-tag-option{position:relative;display:inline-block}
.compose-tag-option input{position:absolute;opacity:0;pointer-events:none}
.compose-tag-chip{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;font-size:11px;line-height:1.3}
.compose-tag-option input:checked + .compose-tag-chip{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset}
.message-tag-prefix{display:inline-flex;flex-wrap:wrap;gap:6px;vertical-align:middle;margin-right:6px}
.message-tag-token{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:11px;line-height:1.3;font-weight:700}
.message-tag-sep{opacity:.75;font-weight:700}
.author-link{text-decoration:none}
.mention{display:inline-block;padding:1px 7px;border-radius:999px;border:1px solid currentColor;font-weight:700;background:color-mix(in srgb, currentColor 12%, transparent)}
.theme-note{font-size:12px;color:var(--muted)}
.pm-list li{margin-bottom:8px}
.pm-item{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-soft)}
.pm-item.unread{border-color:var(--accent)}
.pm-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.pm-actions form{margin:0}
.pm-actions button{width:auto;padding:7px 12px;font-size:12px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.gallery-card{padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--card-soft)}
.gallery-thumb{display:flex;align-items:center;justify-content:center;min-height:180px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;margin-bottom:10px}
.gallery-thumb img{max-width:100%;height:auto;display:block}
.gallery-meta{font-size:12px;color:var(--muted);line-height:1.45}
.gallery-title{font-size:13px;font-weight:700;margin-bottom:4px;word-break:break-word}
.room-frame{width:100%;height:calc(100vh - 260px);min-height:520px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:block}
.room-sidebar-frame{width:100%;height:260px;min-height:260px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:block}
.room-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.room-tabs a{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:var(--card-soft);border:1px solid var(--line);text-decoration:none;color:var(--text);font-size:12px}
.room-tabs a.active{background:var(--accent);color:#fff;border-color:transparent}
.room-tab-pill{display:inline-flex;align-items:center;gap:4px;padding:0 6px 0 0;border-radius:999px;background:var(--card-soft);border:1px solid var(--line);box-shadow:0 1px 0 rgba(255,255,255,.35) inset}
.room-tab-pill.active{background:var(--accent);border-color:transparent}
.room-tab-pill.active a{background:transparent;color:#fff;border-color:transparent}
.room-tab-close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.25);color:inherit;font-size:12px;font-weight:700;line-height:1;padding:0;min-width:20px;transition:filter .12s ease, background .12s ease}
.room-tab-close:hover{filter:brightness(.96);background:rgba(255,255,255,.45)}
.room-tab-pill.active .room-tab-close{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#fff}
.room-tab-pill.active .room-tab-close:hover{background:rgba(255,255,255,.24)}
body.snagchat-has-room .snagchat-wrap{max-width:1540px;padding-top:10px;padding-bottom:10px}
body.snagchat-has-room .card{margin-bottom:10px}
body.snagchat-has-room .snagchat-grid{align-items:start}
body.snagchat-has-room aside .card{padding:13px 14px;border-radius:14px}
body.snagchat-has-room aside .card h3{margin:0 0 10px;font-size:15px}
body.snagchat-has-room aside .card p{margin:0;line-height:1.55}
body.snagchat-has-room aside .card .small{line-height:1.5}
body.snagchat-has-room aside .card code{font-size:12px}
body.snagchat-has-room .room-sidebar-frame{border-radius:14px}
@media (max-height:900px){.room-frame{height:calc(100vh - 230px);min-height:460px}.msg-list{max-height:66vh}}
@media (max-width:980px){body.snagchat-has-room .snagchat-wrap{max-width:100%;padding:12px}.room-frame{height:68vh;min-height:420px}.room-sidebar-frame{height:220px;min-height:220px}.compose-inline{flex-wrap:wrap}.compose-actions{align-items:stretch}.compose-actions .compose-inline{margin-left:0;width:100%}.compose-submit{width:100%}}
.{--sc-room:1}