
/* ddvn_market */
/* DDVN Market */.page-market ::selection{background:color-mix(in srgb,var(--brand) 28%,transparent)}.page-market{caret-color:var(--brand)}body.page-market.no-left.no-right .page-grid{max-width:1200px}.ddvn-market-page{display:flex;flex-direction:column;gap:20px;min-width:0}.ddvn-market-page h1,.ddvn-market-page h2,.ddvn-market-page p,.ddvn-market-page dd{overflow-wrap:anywhere}.ddvn-market-lede{max-width:68ch;margin:0;color:var(--text-muted);font-size:var(--font-size-md);line-height:1.6}.ddvn-market-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.ddvn-market-page-head>div{display:flex;flex-direction:column;gap:8px;min-width:0}.ddvn-market-head{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.ddvn-market-head-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 22px 0}.ddvn-market-head-icon{flex:none;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--brand-soft);color:var(--brand)}.ddvn-market-head-icon .icon{width:26px;height:26px}.ddvn-market-head-text{flex:1 1 320px;min-width:0}.ddvn-market-head-text h1{margin:0 0 2px;font-size:var(--font-size-2xl);line-height:1.25;letter-spacing:-.015em}.ddvn-market-head-text p{margin:0;max-width:62ch;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.55}.ddvn-market-stats{display:grid;grid-template-columns:repeat(4,minmax(76px,auto));gap:8px}.ddvn-market-stats div{padding:8px 12px;border-radius:var(--radius-sm);background:var(--panel-2);text-align:center}.ddvn-market-stats b{display:block;font-size:var(--font-size-xl);line-height:1.2;color:var(--text);font-variant-numeric:tabular-nums}.ddvn-market-stats span{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.ddvn-market-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px 22px}.ddvn-market-head-actions .btn{height:38px;display:inline-flex;align-items:center;gap:6px}.ddvn-market-head-actions .btn .icon{width:16px;height:16px}.ddvn-market-search{flex:1 1 260px;display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);transition:border-color .15s,box-shadow .15s}.ddvn-market-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.ddvn-market-search-go{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer}.ddvn-market-search-go:hover{color:var(--brand);background:var(--brand-soft)}.ddvn-market-search-go .icon{width:17px;height:17px}.ddvn-market-search input{flex:1;min-width:0;height:100%;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--text)}.ddvn-market-search input:focus{outline:0;box-shadow:none}.ddvn-market-head-tabs{display:flex;gap:6px;margin-top:16px;padding:0 14px;border-top:1px solid var(--line-soft)}.ddvn-market-tab{display:inline-flex;align-items:center;gap:6px;padding:11px 8px;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:550;text-decoration:none;box-shadow:inset 0 -2px 0 transparent;white-space:nowrap}.ddvn-market-tab:hover{color:var(--text);text-decoration:none}.ddvn-market-tab.active{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}.ddvn-market-tab .icon{width:16px;height:16px}.ddvn-market-tab b{font-size:var(--font-size-xs);font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.ddvn-market-tab.active b{color:var(--brand)}.ddvn-market-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:22px;align-items:start}.ddvn-market-cats{position:sticky;top:calc(var(--topbar-h) + 14px);display:flex;flex-direction:column;gap:2px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.ddvn-market-cats h2{margin:4px 10px 8px;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.ddvn-market-cat{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.3;text-decoration:none}.ddvn-market-cat:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.ddvn-market-cat b{flex:none;font-weight:500;font-size:var(--font-size-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.ddvn-market-cat.active{background:var(--brand);color:var(--brand-text);font-weight:650}.ddvn-market-cat.active b{color:var(--brand-text)}.ddvn-market-main{min-width:0}.ddvn-market-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ddvn-market-filters{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel)}.ddvn-market-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;white-space:nowrap}.ddvn-market-filter:hover{color:var(--text);text-decoration:none}.ddvn-market-filter.active{background:var(--brand);color:var(--brand-text)}.ddvn-market-filter b{font-size:var(--font-size-xs);font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.ddvn-market-filter.active b{color:var(--brand-text)}.ddvn-market-sort-label{margin-inline-start:auto;color:var(--text-muted);font-size:var(--font-size-sm)}.ddvn-market-sort{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.ddvn-market-sort a{padding:5px 8px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none;white-space:nowrap}.ddvn-market-sort a:hover{color:var(--text);background:var(--panel-2);text-decoration:none}.ddvn-market-sort a.active{color:var(--brand);font-weight:700}.ddvn-market-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--radius-pill);background:var(--panel-2);color:var(--text);font-size:var(--font-size-xs);font-weight:750;letter-spacing:.02em;line-height:1.7;white-space:nowrap}.ddvn-market-badge .icon{width:12px;height:12px}.ddvn-market-badge.is-certified{background:#15803d;color:#fff}.ddvn-market-badge.is-community{background:var(--info);color:#fff}.ddvn-market-badge.is-off{background:var(--danger-soft);color:var(--danger)}.ddvn-market-badge.is-type{background:var(--brand);color:var(--brand-text)}.ddvn-market-cat{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600;min-width:0}.ddvn-market-cat .icon{width:14px;height:14px;flex:none}.ddvn-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.ddvn-market-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:transform .15s cubic-bezier(.2,.8,.2,1),border-color .15s,box-shadow .15s}.ddvn-market-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 32%,var(--line));box-shadow:var(--shadow-md)}.ddvn-market-card-cover{display:block;height:132px;margin-bottom:2px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2)}.ddvn-market-cover{display:block;width:100%;height:100%}.ddvn-market-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.ddvn-market-card:hover .ddvn-market-cover img{transform:scale(1.035)}.ddvn-market-art{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--brand-soft);color:var(--brand)}.ddvn-market-art .icon{width:36px;height:36px}.ddvn-market-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.ddvn-market-card-head h2{flex:1;min-width:0;margin:0;font-size:var(--font-size-md);line-height:1.35}.ddvn-market-card-head h2 a{color:var(--text)}.ddvn-market-card-head h2 a:hover{color:var(--brand)}.ddvn-market-card-head .ddvn-market-badge{flex:none}.ddvn-market-card-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;text-wrap:pretty}.ddvn-market-card-meta{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:auto;padding-top:4px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:550}.ddvn-market-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px;padding-top:9px;border-top:1px solid var(--line-soft)}.ddvn-market-card-foot .ddvn-market-cat{min-width:0;font-size:var(--font-size-xs)}.ddvn-market-card-foot .ddvn-market-cat>span{overflow-wrap:anywhere}.ddvn-market-card-foot .ddvn-market-badge{flex:none}.ddvn-market-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 20px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--panel);text-align:center;color:var(--text-muted)}.ddvn-market-empty>.icon{width:38px;height:38px;opacity:.4}.ddvn-market-empty h2{margin:4px 0 0;font-size:var(--font-size-xl);color:var(--text)}.ddvn-market-empty p{margin:0 0 10px}.ddvn-market-foot{display:flex;align-items:flex-start;gap:8px;margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}.ddvn-market-foot .icon{width:15px;height:15px;margin-top:2px;flex:none}.ddvn-market-card a:focus-visible,.ddvn-market-tab:focus-visible,.ddvn-market-cat:focus-visible,.ddvn-market-filter:focus-visible,.ddvn-market-sort a:focus-visible,.ddvn-market-search-go:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ddvn-market-item-hero{display:flex;flex-direction:column;gap:16px;padding:clamp(16px,2.4vw,26px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.ddvn-market-item-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,264px);gap:clamp(18px,3vw,36px);align-items:stretch}.ddvn-market-item-copy{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}.ddvn-market-item-copy h1{margin:2px 0 0;font-size:var(--font-size-3xl);line-height:1.18;letter-spacing:-.02em}.ddvn-market-item-badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ddvn-market-item-badges .ddvn-market-cat.is-link{padding:2px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:650;transition:border-color .15s,color .15s,background .15s}.ddvn-market-item-badges .ddvn-market-cat.is-link .icon{width:13px;height:13px}.ddvn-market-item-badges .ddvn-market-cat.is-link:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:var(--brand-soft);color:var(--brand);text-decoration:none}.ddvn-market-item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.ddvn-market-item-actions .btn{height:38px;display:inline-flex;align-items:center;gap:6px}.ddvn-market-item-actions .btn .icon{width:16px;height:16px}.ddvn-market-item-plate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;height:100%;min-height:232px;align-self:stretch;border:1px solid var(--line);border-radius:calc(var(--radius) * 1.2);background-color:var(--brand-soft);background-image:linear-gradient(color-mix(in srgb,var(--brand) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--brand) 12%,transparent) 1px,transparent 1px);background-size:22px 22px}.ddvn-market-item-mark{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px solid color-mix(in srgb,var(--brand) 26%,var(--line));border-radius:16px;background:var(--panel);color:var(--brand);box-shadow:var(--shadow-md)}.ddvn-market-item-mark .icon{width:30px;height:30px}.ddvn-market-item-slug{padding:3px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--text-muted);font-family:var(--mono);font-size:var(--font-size-xs);line-height:1.5}.ddvn-market-cover.is-hero{width:100%;height:100%;min-height:232px;border:1px solid var(--line);border-radius:calc(var(--radius) * 1.2);overflow:hidden;box-shadow:var(--shadow);align-self:stretch}.ddvn-market-item-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px;margin:0;padding-top:16px;border-top:1px solid var(--line-soft);align-items:stretch}.ddvn-market-item-facts div{min-width:0;height:100%;align-self:stretch;padding:8px 12px;border-radius:var(--radius-sm);background:var(--panel-2)}.ddvn-market-item-facts dt{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600;line-height:1.4}.ddvn-market-item-facts dd{margin:1px 0 0;font-size:var(--font-size-md);font-weight:650;line-height:1.35;overflow-wrap:anywhere}.ddvn-market-item-facts dd code{font-size:var(--font-size-sm)}.ddvn-market-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px 18px;margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.ddvn-market-facts.is-wide{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.ddvn-market-facts div{min-width:0}.ddvn-market-facts dt{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600}.ddvn-market-facts dd{margin:1px 0 0;font-size:var(--font-size-md);font-weight:550}.ddvn-market-facts dd code{font-size:var(--font-size-sm)}.ddvn-market-shots{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity;scrollbar-width:thin}.ddvn-market-shot{flex:none;display:block;width:272px;aspect-ratio:16/10;scroll-snap-align:start;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.ddvn-market-shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.ddvn-market-shot:hover img{transform:scale(1.02)}.ddvn-market-item-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:18px;align-items:start}.ddvn-market-readme{min-width:0}.ddvn-market-readme .card-head h2{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--font-size-md)}.ddvn-market-readme .card-head h2 .icon{width:16px;height:16px}.ddvn-market-version-chip{flex:none;padding:2px 9px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);background:var(--panel-2);color:var(--text-muted);font-family:var(--mono);font-size:var(--font-size-xs);font-weight:600;line-height:1.5}.ddvn-market-readme .card-body{padding:clamp(18px,2.4vw,26px)}.ddvn-market-doc{font-size:15px;line-height:1.72}.ddvn-market-doc h2{font-size:1.28rem;font-weight:700;letter-spacing:-.012em;line-height:1.3;margin:2em 0 .55em;color:var(--text)}.ddvn-market-doc h3{font-size:1.04rem;font-weight:650;line-height:1.4;margin:1.6em 0 .4em;color:var(--text)}.ddvn-market-doc h4{font-size:var(--font-size-md);font-weight:650;letter-spacing:0;text-transform:none;color:var(--text);margin:1.4em 0 .35em}.ddvn-market-doc h2:first-child,.ddvn-market-doc h3:first-child,.ddvn-market-doc h4:first-child{margin-top:0}.ddvn-market-doc>p,.ddvn-market-doc>ul,.ddvn-market-doc>ol,.ddvn-market-doc>blockquote{max-width:72ch}.ddvn-market-doc p{margin:0 0 .95em}.ddvn-market-doc ul,.ddvn-market-doc ol{margin:0 0 1.05em;padding-inline-start:1.35em}.ddvn-market-doc li{margin:.32em 0}.ddvn-market-doc li::marker{color:var(--brand)}.ddvn-market-doc li>ul,.ddvn-market-doc li>ol{margin:.3em 0 .2em}.ddvn-market-doc a{color:var(--brand);text-decoration-thickness:1px;text-underline-offset:3px}.ddvn-market-doc a:hover{text-decoration-thickness:2px}.ddvn-market-doc code{padding:.1em .35em;border:1px solid var(--line-soft);border-radius:6px;background:var(--panel-2);font-size:.88em}.ddvn-market-doc pre{margin:0 0 1.15em;padding:13px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--text) 4%,var(--panel-2));font-size:var(--font-size-sm);line-height:1.65;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text) 24%,transparent) transparent}.ddvn-market-doc pre code{padding:0;border:0;background:none;font-size:inherit}.ddvn-market-doc pre::-webkit-scrollbar{height:8px}.ddvn-market-doc pre::-webkit-scrollbar-thumb{border-radius:99px;background:color-mix(in srgb,var(--text) 24%,transparent)}.ddvn-market-doc blockquote{margin:0 0 1.1em;padding:11px 15px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text-muted)}.ddvn-market-doc blockquote>:last-child{margin-bottom:0}.ddvn-market-doc img{margin:.4em 0 1em;border:1px solid var(--line);border-radius:var(--radius-sm)}.ddvn-market-doc hr{margin:2em 0;border:0;border-top:1px solid var(--line)}.ddvn-market-doc .table-wrap{margin:0 0 1.2em;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);overflow-x:auto}.ddvn-market-doc table{width:100%;min-width:max-content;font-size:var(--font-size-sm)}.ddvn-market-doc th,.ddvn-market-doc td{padding:9px 12px;border:0;border-bottom:1px solid var(--line-soft);vertical-align:top}.ddvn-market-doc th{background:var(--panel-2);font-weight:650;text-align:start}.ddvn-market-doc tr:last-child td{border-bottom:0}.ddvn-market-aside{position:sticky;top:calc(var(--topbar-h) + 14px);display:flex;flex-direction:column;gap:14px;min-width:0}.ddvn-market-install{scroll-margin-top:calc(var(--topbar-h) + 16px)}.ddvn-market-install .card-head h3{display:flex;align-items:center;gap:6px}.ddvn-market-install .btn-block{margin-bottom:8px}.ddvn-market-endpoint{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:var(--font-size-sm)}.ddvn-market-endpoint>span:first-child{font-weight:700}.ddvn-market-endpoint code{display:block;padding:8px 10px;overflow-wrap:anywhere;white-space:normal;line-height:1.5}.ddvn-market-versions .ddvn-market-changelog{display:block;max-width:52ch;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}.ddvn-market-versions .table-wrap{background:transparent;border:0;border-radius:0}.ddvn-market-connect{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:660px;margin:0 auto;padding:clamp(22px,4vw,40px);border:1px solid var(--line);border-radius:calc(var(--radius) * 1.5);background:var(--panel);box-shadow:var(--shadow)}.ddvn-market-connect-mark{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius);background:var(--brand);color:var(--brand-text)}.ddvn-market-connect-mark .icon{width:26px;height:26px}.ddvn-market-connect h1{margin:0}.ddvn-market-connect .ddvn-market-facts{width:100%}.ddvn-market-connect-ops{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.ddvn-market-connect-ops form{margin:0}.ddvn-market-dev-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:16px;align-items:start}.ddvn-market-token-form{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.ddvn-market-token-form label{font-size:var(--font-size-sm);font-weight:600}.ddvn-market-token-form .btn{align-self:flex-start}.ddvn-market-tokenbox{border-color:color-mix(in srgb,var(--success) 40%,var(--line))}.ddvn-market-token{display:block;padding:12px 14px;overflow-wrap:anywhere;white-space:normal;border-radius:var(--radius-sm);background:var(--panel-2);font-size:var(--font-size-md);font-weight:600;letter-spacing:.01em;user-select:all}.ddvn-market-method{display:inline-block;padding:1px 7px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--info) 14%,var(--panel));color:var(--info);font-family:var(--mono);font-size:var(--font-size-xs);font-weight:700}.ddvn-market-admin-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.ddvn-market-admin-filter form{display:flex;align-items:center;gap:8px;margin:0}.ddvn-market-admin-filter select{width:auto;min-width:170px}.ddvn-market-admin-filter .search-form input{width:220px}.ddvn-market-admin-name{display:flex;align-items:center;gap:10px;min-width:200px}.ddvn-market-admin-name>div{min-width:0}.ddvn-market-admin-name code{font-size:var(--font-size-xs)}.ddvn-market-cover.is-thumb{flex:none;width:64px;height:40px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.ddvn-market-admin-shots{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.ddvn-market-admin-shot{display:block;width:120px;height:75px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}.ddvn-market-admin-shot img{display:block;width:100%;height:100%;object-fit:cover}.ddvn-market-dash{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}.ddvn-market-dash span{display:flex;flex-direction:column;gap:0;min-width:56px}.ddvn-market-dash b{font-size:var(--font-size-xl);line-height:1.2}.ddvn-market-dash small{color:var(--text-muted);font-size:var(--font-size-xs)}.ddvn-market-dash-ops{display:flex;gap:8px;flex-wrap:wrap}@media (max-width:900px){.ddvn-market-layout{grid-template-columns:minmax(0,1fr);gap:14px}.ddvn-market-cats{position:relative;top:auto;flex-direction:row;gap:6px;overflow-x:auto;padding:2px;background:none;border:0;border-radius:0;scrollbar-width:none}.ddvn-market-cats::-webkit-scrollbar{display:none}.ddvn-market-cats h2{display:none}.ddvn-market-cat{flex:none;padding:6px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);white-space:nowrap}.ddvn-market-cat.active{border-color:var(--brand)}.ddvn-market-cat.is-zero:not(.active){display:none}.ddvn-market-item-hero-grid{grid-template-columns:minmax(0,1fr)}.ddvn-market-item-plate{display:none}.ddvn-market-item-hero-grid .ddvn-market-cover.is-hero{order:-1;min-height:0}.ddvn-market-item-body{grid-template-columns:minmax(0,1fr)}.ddvn-market-aside{position:static}.ddvn-market-dev-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.ddvn-market-head-top{padding:16px 16px 0;gap:12px}.ddvn-market-stats{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.ddvn-market-stats div{padding:6px 4px}.ddvn-market-stats b{font-size:var(--font-size-lg)}.ddvn-market-head-actions{padding:14px 16px}.ddvn-market-search{flex-basis:100%}.ddvn-market-head-actions .btn{flex:1;justify-content:center}.ddvn-market-head-tabs{margin-top:12px;padding:0 8px;overflow-x:auto;scrollbar-width:none}.ddvn-market-head-tabs::-webkit-scrollbar{display:none}.ddvn-market-toolbar{flex-direction:column;align-items:stretch;gap:8px}.ddvn-market-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.ddvn-market-filters::-webkit-scrollbar{display:none}.ddvn-market-sort-label{display:none}.ddvn-market-sort{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.ddvn-market-sort::-webkit-scrollbar{display:none}.ddvn-market-grid{grid-template-columns:minmax(0,1fr)}.ddvn-market-shot{width:216px}.ddvn-market-item-hero{padding:16px;gap:14px}.ddvn-market-item-copy h1{font-size:var(--font-size-2xl)}.ddvn-market-item-actions .btn{flex:1 1 200px;justify-content:center}.ddvn-market-readme .card-body{padding:16px}.ddvn-market-doc{font-size:var(--font-size-md)}.ddvn-market-admin-filter .search-form,.ddvn-market-admin-filter .search-form input{width:100%}.ddvn-market-admin-filter select{width:100%}}@media (prefers-reduced-motion:reduce){.ddvn-market-card,.ddvn-market-cover img,.ddvn-market-shot img{transition:none}.ddvn-market-card:hover{transform:none}.ddvn-market-card:hover .ddvn-market-cover img,.ddvn-market-shot:hover img{transform:none}}

/* market */
.market-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.market-filter-row .tabs{margin:0}.market-search{margin-inline-start:auto;width:200px;height:32px;padding:0 10px}.market-search input{font-size:var(--font-size-sm)}.market-filter-row .icon-btn{width:32px;height:32px}.market-cat-form select{width:auto;max-width:220px;height:32px;padding:0 8px;font-size:var(--font-size-sm)}@media(max-width:640px){.market-search{width:100%;margin-inline-start:0;order:2}.market-filter-row .icon-btn{order:3}}.market-connect{padding:18px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);text-align:center}.market-connect p:first-child{max-width:520px;margin:0 auto 12px}.market-connect .btn-lg{margin:4px 0 8px}.market-token-fold{margin-top:14px}.market-token-fold summary{cursor:pointer}.market-token-fold .admin-form{margin-top:10px}@media(max-width:640px){.plugin-item{flex-direction:column;gap:10px}.plugin-ops{justify-content:flex-start}.market-account-card .btn-row{margin-inline-start:0}.admin-toolbar form.inline{margin:0}}.market-other{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:0 0 14px;border-radius:var(--radius-sm);background:var(--warning-soft,var(--info-soft));color:var(--text)}.market-other svg{width:20px;height:20px;flex:none;margin-top:2px;color:var(--warning,var(--info))}.market-other p{margin:0 0 6px}.market-other-stop{background:var(--danger-soft)}.market-other-stop svg{color:var(--danger)}.market-tabs{margin-bottom:12px}.market-free{background:var(--success-soft,#dcfce7);color:var(--success,#15803d)}.market-paid{background:#fff1e6;color:#c2410c}[data-theme=dark] .market-paid{background:rgba(194,65,12,.25);color:#fdba74}.market-account{display:inline-flex;align-items:center;gap:6px;margin-inline-start:auto;color:var(--text-muted);font-size:var(--font-size-sm);white-space:nowrap}.market-account svg{width:16px;height:16px}.market-account b{color:var(--text)}.market-account-card{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2)}.market-account-card>svg{width:28px;height:28px;color:var(--brand);flex:none}.market-account-card>div:first-of-type{flex:1;min-width:200px}.market-account-card .btn-row{margin-inline-start:auto}.plugin-ops small{display:block;text-align:right;margin-top:4px}.plugin-ops .btn[disabled]{opacity:.5;cursor:default}.market-foot{margin-top:14px}.market-theme-blank{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-subtle)}.market-theme-blank .icon{width:40px;height:40px}.market-theme-badges{margin:2px 0}.theme-ops small{display:block;width:100%}.market-publish-themes{margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2)}.market-publish-themes h3{margin:0 0 4px;font-size:var(--font-size-md)}.market-publish-themes p{margin:0}.market-publish-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.market-publish-list .muted{font-weight:400}

/* market */
.market-shots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.market-shot{position:relative;aspect-ratio:3/2;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel-2);user-select:none;-webkit-user-select:none}.market-shot img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}.market-shots.is-js .market-shot{cursor:grab}.market-shot.is-dragging{opacity:.45;pointer-events:none;outline:2px dashed var(--brand);outline-offset:-2px}.market-shots.is-sorting,.market-shots.is-sorting *{cursor:grabbing}.market-shot:first-child{border:2px solid var(--brand)}.market-shot-cover{display:none;position:absolute;left:5px;bottom:5px;padding:1px 7px;border-radius:4px;background:var(--brand);color:var(--brand-text,#fff);font-size:11px;font-weight:600;line-height:1.5}.market-shot:first-child .market-shot-cover{display:block}.market-shot-x,.market-shot-grip{position:absolute;top:5px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-size:16px;line-height:1;cursor:pointer}.market-shot-x{right:5px}.market-shot-x:hover{background:var(--danger,#dc2626)}.market-shot-grip{left:5px;cursor:grab;touch-action:none}.market-shot-grip:hover{background:rgba(0,0,0,.8)}.market-shot-x:focus-visible,.market-shot-grip:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.market-shot-keep{position:absolute;left:5px;top:5px;display:flex;gap:4px;align-items:center;margin:0;padding:1px 6px;border-radius:4px;background:var(--panel);font-size:var(--font-size-xs)}.market-shots.is-js .market-shot-keep,.market-shots:not(.is-js) .market-shot-x,.market-shots:not(.is-js) .market-shot-grip{display:none}.market-shot-add{position:relative;aspect-ratio:3/2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;margin:0;border:1px dashed var(--text-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.market-shot-add:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.market-shot-add .icon{width:20px;height:20px}.market-shot-add[hidden],.market-shots-error[hidden]{display:none}.market-shots.is-js .market-shot-add input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.market-shots:not(.is-js) .market-shot-add{grid-column:1/-1;aspect-ratio:auto;align-items:stretch;border:0;cursor:default}.market-shots:not(.is-js) .market-shot-add .icon,.market-shots:not(.is-js) .market-shot-add span{display:none}.market-shots-error{margin:6px 0 0;color:var(--danger,#dc2626);font-size:var(--font-size-sm)}

/* tabre_ai */
.tabre-ai-suggest{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0}.tabre-ai-hint{font-size:var(--font-size-sm);color:var(--text-muted)}.tabre-ai-hint[hidden]{display:none}.tabre-ai-box{margin:10px 0;padding:12px 14px;border:1px solid var(--line);border-inline-start:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--panel-2)}.tabre-ai-box-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:var(--font-size-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.tabre-ai-box-head .icon{width:13px;height:13px}.tabre-ai-box .tabre-ai-text{white-space:pre-wrap;overflow-wrap:anywhere}.tabre-ai-box .tabre-ai-close{padding:0 6px;border:0;background:transparent;color:var(--text-muted);font-size:17px;line-height:1;cursor:pointer}.tabre-ai-box .tabre-ai-close:hover{color:var(--danger)}.post-content.tabre-ai-hidden{display:none}.tabre-ai-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tabre-ai-stats .card-body{display:flex;flex-direction:column;gap:2px}.tabre-ai-stats b{font-size:var(--font-size-2xl)}.tabre-ai-stats span{color:var(--text-muted);font-size:var(--font-size-sm)}

/* tabre_announce */
.tabre-announce{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--text);font-size:var(--font-size-sm)}.tabre-announce-icon{display:flex;flex:none;color:var(--brand)}.tabre-announce-icon .icon{width:17px;height:17px}.tabre-announce-body{flex:1;min-width:0}.tabre-announce-item{display:none}.tabre-announce-item.is-on{display:block}.tabre-announce-item a{color:var(--text);text-decoration:underline;text-decoration-color:var(--brand)}.tabre-announce-nav{flex:none;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--text-muted);cursor:pointer}.tabre-announce-nav:hover{color:var(--brand);border-color:var(--brand)}.tabre-announce-nav .icon{width:15px;height:15px}

/* tabre_antispam */
.tabre-antispam-cap{margin:14px 0;display:flex;justify-content:center}

/* tabre_avatarpack */
.tabre-avp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 12px; margin: 16px 0; max-width: 620px; }
.settings-form:has(> .tabre-avp-tab) > .form-actions { display: none; }
.tabre-avp-btn { display: block; width: 64px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 50%; background: none; cursor: pointer; line-height: 0; transition: border-color .15s, transform .15s; }
.tabre-avp-btn:hover, .tabre-avp-btn:focus-visible { border-color: var(--brand); transform: scale(1.06); outline: none; }
.tabre-avp-btn img { display: block; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; background: var(--panel-2); }
.tabre-avp-upload { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 14px 0; }
.tabre-avp-input { max-width: 320px; font-size: var(--font-size-sm); color: var(--text-muted); }
.tabre-avp-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 14px; margin: 18px 0; max-width: 780px; }
.tabre-avp-admin-item { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.tabre-avp-admin-item img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; background: var(--panel-2); }
.tabre-avp-admin-item form { margin: 0; }


/* tabre_backtop */
.tabre-backtop{position:fixed;bottom:22px;z-index:60;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--text);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18));cursor:pointer;opacity:0;transition:opacity .18s ease,transform .18s ease}.tabre-backtop-right{inset-inline-end:22px}.tabre-backtop-left{inset-inline-start:22px}.tabre-backtop.is-on{opacity:1}.tabre-backtop:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-2px)}.tabre-backtop .icon{width:19px;height:19px}@media(max-width:640px){.tabre-backtop-right{inset-inline-end:14px}.tabre-backtop-left{inset-inline-start:14px}.tabre-backtop{bottom:16px;width:38px;height:38px}}

/* tabre_bank */
.tabre-bank-balance{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:var(--radius-pill,999px);background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:var(--font-size-sm)}.tabre-bank-balance .icon{width:14px;height:14px}.tabre-bank-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:16px}.tabre-bank-grid .card-head h3{display:flex;align-items:center;gap:6px;margin:0}.tabre-bank-grid .card-head .icon{width:16px;height:16px}.tabre-bank-amount{display:flex;align-items:baseline;gap:8px;margin:0 0 6px}.tabre-bank-amount b{font-size:var(--font-size-2xl)}.tabre-bank-amount span{color:var(--text-muted);font-size:var(--font-size-sm)}.tabre-bank-amount .icon{width:16px;height:16px;color:var(--brand)}.tabre-bank-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.tabre-bank-two .form-row{margin:0 0 8px}.tabre-bank-results{position:absolute;z-index:40;inset-inline:0;top:calc(100% + 2px);max-height:240px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18))}.tabre-bank-results[hidden]{display:none}.tabre-bank-results button{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 9px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);text-align:start;cursor:pointer}.tabre-bank-results button:hover{background:var(--panel-2);color:var(--brand)}.tabre-bank-results small{color:var(--text-muted)}@media(max-width:520px){.tabre-bank-two{grid-template-columns:1fr}}

/* tabre_bestanswer */
/* TabRe Best Answer — solved banner, list mark and the chosen reply. */
.tabre-ba-banner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 0 0 2px;
    padding: 9px 12px;
    background: var(--success-soft);
    border: 1px solid color-mix(in srgb, var(--success) 22%, transparent);
    border-radius: var(--radius-sm, 8px);
    font-size: var(--font-size-sm);
}
.tabre-ba-banner a {
    color: var(--text);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tabre-ba-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--success) 80%, #000);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: .01em;
}
.tabre-ba-badge .icon {
    width: 12px;
    height: 12px;
}
.row-ba {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-inline-start: 6px;
    padding: 1px 7px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--success) 80%, #000);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: 700;
    vertical-align: 2px;
}
.row-ba .icon {
    width: 11px;
    height: 11px;
}
.flag.tabre-ba-flag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: color-mix(in srgb, var(--success) 80%, #000);
    color: #fff;
    font-weight: 700;
    white-space: nowrap;
}
.flag.tabre-ba-flag .icon {
    width: 12px;
    height: 12px;
}
.post:has(.tabre-ba-flag) {
    border-color: color-mix(in srgb, var(--success) 45%, var(--line));
}
@media (max-width: 560px) {
    /* the author line is narrow: the check alone marks the reply, the banner above already says "Solved" */
    .tabre-ba-flag .tabre-ba-label {
        display: none;
    }
    .flag.tabre-ba-flag {
        padding: 2px 5px;
    }
}


/* tabre_chatroom */
[hidden]{display:none!important}
.tabre-cr{display:flex;flex-direction:column;gap:14px;max-width:1000px}
.tabre-cr-pagehead{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.tabre-cr-title{display:flex;align-items:center;gap:12px;min-width:0}
.tabre-cr-glyph{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none;border-radius:14px;background:var(--brand-soft);color:var(--brand)}
.tabre-cr-glyph .icon{width:24px;height:24px}
.tabre-cr-title h1{margin:0;font-size:var(--font-size-2xl);line-height:1.15}
.tabre-cr-title p{margin:2px 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}
.tabre-cr-live{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}
.tabre-cr-live i{width:7px;height:7px;border-radius:50%;background:var(--text-muted);flex:none}
.tabre-cr-live[data-state="live"]{color:color-mix(in srgb,var(--success) 70%,var(--text));border-color:color-mix(in srgb,var(--success) 38%,var(--line))}
.tabre-cr-live[data-state="live"] i{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 18%,transparent)}
.tabre-cr-live[data-state="wait"] i{background:var(--warning)}
.tabre-cr-stage{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);overflow:hidden}
.tabre-cr-feed{position:relative;height:clamp(340px,calc(100dvh - 300px),640px);overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 20px;background:var(--bg);scrollbar-width:thin;scroll-behavior:smooth}
.tabre-cr-stream{display:flex;flex-direction:column;gap:2px;min-height:100%}
.tabre-cr-msg{position:relative;display:flex;align-items:flex-start;gap:10px;padding:3px 6px;border-radius:10px}
.tabre-cr-msg.is-start{margin-top:12px}
.tabre-cr-msg:first-child.is-start{margin-top:0}
.tabre-cr-msg.is-mine{flex-direction:row-reverse}
.tabre-cr-av{display:inline-flex;align-items:center;justify-content:center;width:34px;flex:none;align-self:flex-start;text-decoration:none;border-radius:50%}
.tabre-cr-msg:not(.is-start) .tabre-cr-av{visibility:hidden}
.tabre-cr-body{position:relative;min-width:0;flex:0 1 auto;max-width:min(76%,640px)}
.tabre-cr-msg.is-mine .tabre-cr-body{margin-inline-start:auto}
.tabre-cr-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-height:21px}
.tabre-cr-msg:not(.is-start) .tabre-cr-head{display:none}
.tabre-cr-msg.is-mine .tabre-cr-head{justify-content:flex-end}
.tabre-cr-name{font-weight:700;font-size:var(--font-size-sm);color:var(--text);text-decoration:none}
.tabre-cr-name:hover{text-decoration:underline}
.tabre-cr-clock{flex:none;margin-inline-start:auto;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}
.tabre-cr-msg.is-mine .tabre-cr-clock{margin-inline-start:0}
.tabre-cr-text{width:fit-content;max-width:100%;padding:6px 12px;border:1px solid var(--line-soft);border-radius:14px;background:var(--panel-2);color:var(--text);font-size:var(--font-size-md);line-height:1.5;overflow-wrap:anywhere}
.tabre-cr-msg.is-start .tabre-cr-text{border-start-start-radius:5px}
.tabre-cr-msg.is-mine.is-start .tabre-cr-text{border-start-start-radius:14px;border-start-end-radius:5px}
.tabre-cr-msg.is-mine .tabre-cr-text{border-color:transparent;background:var(--brand);color:#2b1602}
.tabre-cr-text p{margin:0 0 5px}
.tabre-cr-text p:last-child{margin-bottom:0}
.tabre-cr-text a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.tabre-cr-text pre{margin:5px 0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow-x:auto;max-width:100%;font-size:var(--font-size-xs)}
.tabre-cr-text code{font-family:var(--mono);font-size:.92em}
.tabre-cr-text :not(pre)>code{padding:1px 5px;border-radius:5px;background:var(--panel);border:1px solid var(--line-soft)}
.tabre-cr-text blockquote{margin:5px 0;padding-left:10px;border-left:2px solid var(--line);color:var(--text-muted)}
.tabre-cr-text img{max-width:100%;height:auto;border-radius:8px}
.tabre-cr-msg.is-mine .tabre-cr-text a{color:inherit}
.tabre-cr-msg.is-mine .tabre-cr-text :not(pre)>code{background:color-mix(in srgb,#fff 34%,transparent);border-color:transparent}
.tabre-cr-msg.is-mine .tabre-cr-text pre{background:color-mix(in srgb,#fff 34%,transparent);border-color:transparent}
.tabre-cr-msg.is-mine .tabre-cr-text blockquote{border-left-color:color-mix(in srgb,#2b1602 45%,transparent);color:color-mix(in srgb,#2b1602 82%,transparent)}
.tabre-cr-del{margin-top:2px;opacity:0;transition:opacity .12s}
.tabre-cr-msg.is-mine .tabre-cr-del{display:flex;justify-content:flex-end}
.tabre-cr-msg:hover .tabre-cr-del,.tabre-cr-del:focus-within{opacity:1}
.tabre-cr-delbtn{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 4px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font-size:11px;font-weight:700;cursor:pointer}
.tabre-cr-delbtn:hover{background:var(--danger-soft);color:var(--danger)}
.tabre-cr-delbtn .icon{width:14px;height:14px}
.tabre-cr-delbtn.is-armed{padding:0 8px;background:var(--danger-soft);color:var(--danger)}
.tabre-cr-day{display:flex;align-items:center;gap:10px;margin:16px 0 8px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}
.tabre-cr-day::before,.tabre-cr-day::after{content:"";height:1px;flex:1;background:var(--line-soft)}
.tabre-cr-day span{padding:2px 9px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);background:var(--panel)}
.tabre-cr-older{display:flex;margin:0 auto 8px;padding:5px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--text-muted);font:inherit;font-size:var(--font-size-xs);cursor:pointer}
.tabre-cr-older:hover{border-color:var(--brand);color:var(--text)}
.tabre-cr-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;color:var(--text-muted);font-size:var(--font-size-sm)}
.tabre-cr-spin{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:tabre-cr-spin .7s linear infinite}
@keyframes tabre-cr-spin{to{transform:rotate(360deg)}}
.tabre-cr-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;color:var(--text-muted);text-align:center}
.tabre-cr-emptyicon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--panel-2);color:var(--brand)}
.tabre-cr-emptyicon .icon{width:24px;height:24px}
.tabre-cr-error{margin:10px auto;padding:8px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-sm);text-align:center}
.tabre-cr-jump{position:absolute;left:50%;bottom:98px;z-index:3;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:0;border-radius:var(--radius-pill);background:var(--brand);color:var(--brand-text);font:inherit;font-size:var(--font-size-xs);font-weight:700;cursor:pointer;box-shadow:var(--shadow-md)}
.tabre-cr-jump .icon{width:14px;height:14px}
.tabre-cr-composer{display:grid;grid-template-columns:1fr auto;gap:8px 10px;padding:12px 14px 9px;border-top:1px solid var(--line);background:var(--panel)}
.tabre-cr-field{min-width:0}
.tabre-cr-input{display:block;width:100%;min-height:40px;max-height:120px;padding:9px 12px;resize:none;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--text);font:inherit;font-size:var(--font-size-md);line-height:1.45}
.tabre-cr-input::placeholder{color:var(--text-muted)}
.tabre-cr-input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
.tabre-cr-send{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:50%;background:var(--brand);color:var(--brand-text);cursor:pointer;transition:background .15s,opacity .15s}
.tabre-cr-send:hover{background:var(--brand-hover)}
.tabre-cr-send:disabled{background:var(--line);color:var(--text-disabled);cursor:not-allowed}
.tabre-cr-send .icon{width:18px;height:18px}
.tabre-cr-foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;color:var(--text-muted);font-size:11px}
.tabre-cr-count{font-variant-numeric:tabular-nums}
.tabre-cr-count.is-near{color:var(--warning);font-weight:600}
.tabre-cr-notice{margin:0;padding:12px 16px;border-top:1px solid var(--line);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);text-align:center}
.tabre-cr-guest{max-width:640px;margin:24px auto}
.tabre-cr-guestcard{display:flex;flex-direction:column;align-items:center;gap:12px;padding:44px 28px;border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);background:var(--panel);box-shadow:var(--shadow);text-align:center}
.tabre-cr-guestcard .tabre-cr-glyph{width:60px;height:60px;border-radius:18px}
.tabre-cr-guestcard h1{margin:0;font-size:var(--font-size-2xl)}
.tabre-cr-guestcard p{margin:0;max-width:42ch;color:var(--text-muted);line-height:1.6}
.tabre-cr-guestbtns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}
.tabre-cr :focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media (hover:none){.tabre-cr-del{opacity:.55}}
@media (max-width:640px){
  .tabre-cr-pagehead{gap:10px}
  .tabre-cr-title h1{font-size:var(--font-size-xl)}
  .tabre-cr-glyph{width:40px;height:40px;border-radius:12px}
  .tabre-cr-stage{border-radius:var(--radius)}
  .tabre-cr-feed{height:calc(100dvh - 300px);min-height:300px;padding:12px 10px 16px}
  .tabre-cr-composer{padding:10px 10px 8px}
  .tabre-cr-body{max-width:84%}
  .tabre-cr-input{font-size:16px}
  .tabre-cr-foot span:first-child{display:none}
  .tabre-cr-foot{justify-content:flex-end}
  .tabre-cr-jump{bottom:92px}
  .tabre-cr-guestcard{padding:32px 20px}
}
@media (prefers-reduced-motion:reduce){
  .tabre-cr-feed{scroll-behavior:auto}
  .tabre-cr-send,.tabre-cr-del{transition:none}
  .tabre-cr-spin{animation-duration:2.4s}
}


/* tabre_checkin */
.tabre-checkin-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:22px;background:linear-gradient(135deg,var(--brand-soft,#fff1e8),var(--surface,#fff));border:1px solid var(--border,#e5e7eb)}.tabre-checkin-hero-main{display:flex;align-items:center;gap:16px;min-width:0}.tabre-checkin-flame{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:var(--radius-pill,999px);background:var(--brand,#e7672e);color:#fff}.tabre-checkin-flame .icon{width:26px;height:26px}.tabre-checkin-hero-main b{display:block;font-size:var(--font-size-2xl,26px);line-height:1.2}.tabre-checkin-hero-main p{margin:4px 0 0;color:var(--text-muted)}.tabre-checkin-hero-stats{display:flex;gap:22px}.tabre-checkin-hero-stats div{text-align:center}.tabre-checkin-hero-stats b{display:block;font-size:var(--font-size-xl,20px)}.tabre-checkin-hero-stats small{color:var(--text-muted);font-size:var(--font-size-xs)}.tabre-checkin-pill{display:inline-flex;align-items:center;gap:5px;padding:1px 10px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:700;line-height:1.75;color:#fff}.tabre-checkin-pill .icon{width:13px;height:13px}.tabre-checkin-pill.is-done{background:var(--success,#16a34a)}.tabre-checkin-pill.is-ready{background:var(--brand,#e7672e)}.tabre-checkin-pill.is-off{background:var(--text-subtle,#6b7280)}.tabre-checkin-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 20px;padding:0}.tabre-checkin-day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-md,10px);background:var(--surface,#fff)}.tabre-checkin-day small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.tabre-checkin-day span{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-pill,999px);background:var(--surface-2,#f3f4f6);color:var(--text-muted)}.tabre-checkin-day.is-on span{background:var(--success,#16a34a);color:#fff}.tabre-checkin-day.is-on{border-color:var(--success,#16a34a)}.tabre-checkin-day.is-today{box-shadow:0 0 0 2px var(--brand-soft,#ffe1cf) inset}.tabre-checkin-day span .icon{width:15px;height:15px}.tabre-checkin-action{display:flex;justify-content:center}.tabre-checkin-form{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.tabre-checkin-form .icon{width:16px;height:16px;vertical-align:-3px;margin-right:4px}.tabre-checkin-note{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--text-muted)}.tabre-checkin-note .icon{width:16px;height:16px}@media(max-width:560px){.tabre-checkin-hero-stats{width:100%;justify-content:flex-start}.tabre-checkin-day small{font-size:10px}}

/* tabre_collapse */
.tabre-collapse-wrap{position:relative}.tabre-collapsed{max-height:var(--tabre-collapse-h,720px);overflow:hidden}.tabre-collapsed::after{content:"";position:absolute;inset-inline:0;bottom:0;height:90px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--card-bg,var(--panel)))}.tabre-collapse-btn{display:block;margin:8px auto 0;padding:5px 14px;border:1px solid var(--line);border-radius:var(--radius-pill,999px);background:var(--panel-2);color:var(--text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.tabre-collapse-btn:hover{border-color:var(--brand);color:var(--brand)}

/* tabre_embed */
.tabre-embed{max-width:760px;margin:14px 0}.tabre-embed-frame{position:relative;width:100%;padding-top:56.25%;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.tabre-embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* tabre_events */
/* TabRe Events — the event card under the topic title and its date in topic lists. */
.tabre-event {
    margin: 0 0 2px;
    padding: 14px;
    background: var(--brand-soft);
    border-radius: var(--radius-sm, 8px);
}
.tabre-event-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-bottom: 10px;
}
.tabre-event-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 10px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--brand) 80%, #000);
    color: var(--brand-text, #fff);
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.tabre-event-badge .icon {
    width: 13px;
    height: 13px;
}
.tabre-event-seats {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: color-mix(in srgb, var(--text-muted) 70%, var(--text));
    font-size: var(--font-size-xs);
    font-weight: 600;
}
.tabre-event-seats .icon {
    width: 13px;
    height: 13px;
}
.tabre-event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 16px;
}
.tabre-event-item {
    min-width: 0;
}
.tabre-event-item b {
    display: block;
    margin-bottom: 2px;
    color: color-mix(in srgb, var(--text-muted) 70%, var(--text));
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.tabre-event-item span {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.tabre-event-people {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 11px;
}
.tabre-event-person {
    display: inline-flex;
}
.tabre-event-person .avatar {
    width: 26px;
    height: 26px;
    font-size: 11px;
}
.tabre-event-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    min-width: 26px;
    padding: 0 6px;
    border-radius: var(--radius-pill);
    background: var(--panel-2);
    color: color-mix(in srgb, var(--text-muted) 70%, var(--text));
    font-size: var(--font-size-xs);
    font-weight: 700;
}
.tabre-event-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.tabre-event-actions .flag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.tabre-event .btn-primary {
    background: color-mix(in srgb, var(--brand) 80%, #000);
    border-color: transparent;
}
.tabre-event .btn-primary:hover {
    background: color-mix(in srgb, var(--brand) 70%, #000);
}
.tabre-event-meta .icon {
    width: 12px;
    height: 12px;
}
@media (max-width: 640px) {
    .tabre-event {
        padding: 12px;
    }
    .tabre-event-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}


/* tabre_excerpt */
.topic-row{flex-wrap:wrap}.tabre-excerpt{flex-basis:100%;order:50;margin-top:6px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;overflow-wrap:anywhere}.tabre-excerpt:not(.tabre-excerpt-full){display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tabre-excerpt-full{max-height:320px;overflow:hidden;position:relative;color:var(--text)}.tabre-excerpt-full::after{content:"";position:absolute;inset-inline:0;bottom:0;height:60px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--panel))}.tabre-excerpt-full img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.tabre-excerpt-opts{display:flex;flex-wrap:wrap;gap:12px}

/* tabre_featured */
.tabre-feat-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:700;line-height:1.7;letter-spacing:.02em;white-space:nowrap;vertical-align:middle;margin-inline-end:6px;background:var(--tabre-feat-color,#e11d48);color:var(--tabre-feat-text,#fff)}.tabre-feat-title{color:var(--tabre-feat-color,#e11d48);font-weight:650}.tabre-feat-set .dropdown-menu{min-width:170px}.tabre-feat-set .dropdown-menu button.active{color:var(--brand);font-weight:700}.tabre-feat-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:6px;vertical-align:middle}

/* tabre_follow */
.tabre-follow-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.tabre-follow-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border,#e5e7eb)}.tabre-follow-row:last-child{border-bottom:0}.tabre-follow-who{display:flex;flex-direction:column;min-width:0;line-height:1.3}.tabre-follow-who .user-link{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabre-follow-who small{color:var(--text-muted);font-size:var(--font-size-xs)}.tabre-follow-unfollow{margin-left:auto;flex:none}.tabre-follow-unfollow .icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px}.tabre-follow-row .btn{white-space:nowrap}

/* tabre_gallery */
.tabre-gallery{display:grid;grid-template-columns:repeat(var(--tabre-gallery-cols,3),minmax(0,1fr));gap:8px;margin:12px 0}.tabre-gallery img{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:var(--radius-sm)}.tabre-gallery[data-ratio="square"] img{aspect-ratio:1}.tabre-gallery[data-ratio="landscape"] img{aspect-ratio:4/3}.tabre-gallery[data-ratio="portrait"] img{aspect-ratio:3/4}@media(max-width:640px){.tabre-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}.tabre-lb-on .post-content img{cursor:zoom-in}.tabre-gallery-menu{padding:10px;min-width:210px}.tabre-gallery-menu-label{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:2px 0 6px}.tabre-gallery-menu-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tabre-gallery-menu-row button{min-width:38px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);font-size:var(--font-size-sm);cursor:pointer}.tabre-gallery-menu-row button:hover{border-color:var(--brand);color:var(--brand)}.tb-gallery .dropdown-menu{inset-inline-start:0}.tabre-lightbox{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.92);padding:24px;touch-action:none}.tabre-lightbox img{max-width:min(96vw,1600px);max-height:92vh;object-fit:contain;border-radius:var(--radius-sm);user-select:none;-webkit-user-drag:none}.tabre-lb-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer}.tabre-lb-btn:hover{background:rgba(255,255,255,.28)}.tabre-lb-close{top:16px;inset-inline-end:16px;font-size:22px}.tabre-lb-prev{inset-inline-start:16px;top:50%;transform:translateY(-50%)}.tabre-lb-next{inset-inline-end:16px;top:50%;transform:translateY(-50%)}.tabre-lb-count{position:absolute;bottom:18px;inset-inline-start:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font-size:var(--font-size-sm)}body.tabre-lb-open{overflow:hidden}

/* tabre_guard */
/* TabRe Guard — member security tab, the second-step page and the admin check-up. */

/* member settings */
.tabre-guard-settings > .muted { margin: 0 0 16px; }
.tabre-guard-status { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: var(--radius); background: var(--panel-2); border: 1px solid var(--line); margin: 0 0 18px; }
.tabre-guard-status.is-on { border-color: color-mix(in srgb, var(--success) 45%, var(--line)); background: color-mix(in srgb, var(--success) 9%, var(--panel-2)); }
.tabre-guard-status > svg { flex: none; width: 26px; height: 26px; color: var(--success); }
.tabre-guard-status div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tabre-guard-status b { font-size: var(--font-size-md); }
.tabre-guard-status span { color: var(--text-muted); font-size: var(--font-size-sm); }
.tabre-guard-block { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 18px; }
.tabre-guard-block h3, .tabre-guard-setup h3 { margin: 0 0 6px; font-size: var(--font-size-md); }
.tabre-guard-block .btn { margin-top: 4px; }
.tabre-guard-setup { border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; margin: 0 0 18px; }
.tabre-guard-steps { margin: 8px 0 14px; padding-inline-start: 20px; display: flex; flex-direction: column; gap: 6px; }
.tabre-guard-secret { display: inline-block; padding: 3px 8px; margin-top: 4px; border-radius: 6px; background: var(--panel-2); border: 1px dashed var(--line); cursor: pointer; letter-spacing: .06em; font-size: var(--font-size-sm); word-break: break-all; }
.tabre-guard-secret.is-copied { border-color: var(--success); color: var(--success); }
.tabre-guard-qr { width: 176px; max-width: 100%; padding: 10px; margin: 0 0 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.tabre-guard-qr svg { display: block; width: 100%; height: auto; }
.tabre-guard-qr:empty { display: none; }

/* recovery codes page */
.tabre-guard-recovery { max-width: 640px; }
.tabre-guard-codes { list-style: none; margin: 18px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
.tabre-guard-codes code { display: block; padding: 9px 12px; border-radius: var(--radius-sm); background: var(--panel-2); border: 1px solid var(--line); font-size: var(--font-size-md); letter-spacing: .08em; text-align: center; }

/* staff banner */
.tabre-guard-banner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; margin: 0 0 16px; border-radius: var(--radius); border: 1px solid color-mix(in srgb, var(--warning) 45%, var(--line)); background: color-mix(in srgb, var(--warning) 10%, var(--panel)); }
.tabre-guard-banner svg { flex: none; color: var(--warning); }
.tabre-guard-banner span { flex: 1 1 220px; font-size: var(--font-size-sm); }

/* second step */
.tabre-guard-auth .muted { margin: 0 0 14px; }
.tabre-guard-auth .form-row input { width: 100%; font-size: 20px; letter-spacing: .35em; text-align: center; }

/* admin */
.tabre-guard-checks { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.tabre-guard-check { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.tabre-guard-check .dot { flex: none; width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: var(--text-muted); }
.tabre-guard-check.is-ok .dot { background: var(--success); }
.tabre-guard-check.is-warn .dot { background: var(--warning); }
.tabre-guard-check.is-bad .dot { background: var(--danger); }
.tabre-guard-check b { display: block; font-size: var(--font-size-sm); }
.tabre-guard-check p { margin: 2px 0 0; color: var(--text-muted); font-size: var(--font-size-sm); }
.tabre-guard-gap { margin-top: 28px; }
.tabre-guard-tools { display: flex; justify-content: flex-end; margin: 0 0 10px; }
.tabre-guard-cidr, .tabre-guard-path { font-size: var(--font-size-sm); word-break: break-all; }

@media (max-width: 640px) {
    .tabre-guard-codes { grid-template-columns: repeat(2, 1fr); }
    .tabre-guard-qr { width: 148px; }
}


/* tabre_infinite */
.tabre-infinite-more { display: flex; justify-content: center; margin: 16px 0 4px; }
.tabre-infinite-more .btn { min-width: 140px; }
.tabre-infinite-more.is-end { justify-content: flex-start; padding: 8px 4px; color: var(--text-muted); font-size: var(--font-size-sm, 13px); }


/* tabre_leaderboard */
/* TabRe Leaderboard 1.1.5 */.tabre-leaderboard-headright{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tabre-leaderboard-headright .small{display:inline-flex;align-items:center;gap:5px}.tabre-leaderboard-headright .icon{width:15px;height:15px}.tabre-leaderboard-tabs{display:inline-flex;gap:4px;max-width:100%;margin:2px 0 16px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text) 4%,transparent);overflow-x:auto;scrollbar-width:none}.tabre-leaderboard-tabs a{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;white-space:nowrap}.tabre-leaderboard-tabs a:hover{color:var(--text)}.tabre-leaderboard-tabs a.active{background:var(--brand);color:var(--brand-text);box-shadow:var(--shadow)}.tabre-leaderboard-tabs a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tabre-leaderboard-tabs .icon{width:16px;height:16px}.tabre-leaderboard-podiums{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.14fr) minmax(0,1fr);gap:14px;align-items:center}.tabre-leaderboard-podiums.count-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin-inline:auto}.tabre-leaderboard-podiums.count-2 .tabre-leaderboard-podium.is-1{order:1}.tabre-leaderboard-podiums.count-2 .tabre-leaderboard-podium.is-2{order:2}.tabre-leaderboard-podiums.count-1{grid-template-columns:minmax(0,1fr);max-width:340px;margin-inline:auto}.tabre-leaderboard-podium{--rk:#94a3b8;--rk-ink:color-mix(in oklab,var(--rk) 55%,var(--text));position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;padding:18px 14px;border-radius:18px;text-align:center;overflow:hidden}.tabre-leaderboard-podiums>.tabre-leaderboard-podium{border-color:color-mix(in srgb,var(--rk) 32%,var(--line))}.tabre-leaderboard-podium::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% -12%,color-mix(in srgb,var(--rk) 26%,transparent),transparent 72%);pointer-events:none}.tabre-leaderboard-podium>*{position:relative}.tabre-leaderboard-podium.is-1{--rk:#f59e0b;order:2;padding:24px 14px 22px}.tabre-leaderboard-podium.is-2{--rk:#3b82f6;order:1}.tabre-leaderboard-podium.is-3{--rk:#ec4899;order:3}.tabre-leaderboard-crown{position:relative;display:inline-flex;align-items:center;justify-content:center;width:46px;height:34px;color:var(--rk)}.tabre-leaderboard-crown .icon{width:46px;height:34px;stroke-width:1.7}.tabre-leaderboard-crown b{position:absolute;top:13px;left:0;right:0;color:var(--text);font-size:13px;font-weight:800;line-height:1;text-align:center}.tabre-leaderboard-pmedal{display:inline-flex;border-radius:50%;padding:3px;background:linear-gradient(160deg,var(--rk),color-mix(in srgb,var(--rk) 35%,transparent));box-shadow:0 10px 22px -14px var(--rk)}.tabre-leaderboard-podium.is-1 .tabre-leaderboard-pmedal{padding:4px}.tabre-leaderboard-pmedal .avatar{display:block}.tabre-leaderboard-pname{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rk-ink);font-size:15px;font-weight:700;text-decoration:none}.tabre-leaderboard-podium.is-1 .tabre-leaderboard-pname{font-size:17px}.tabre-leaderboard-pvalue{display:inline-flex;align-items:baseline;gap:5px;color:var(--rk-ink);font-weight:800;font-variant-numeric:tabular-nums}.tabre-leaderboard-pvalue b{font-size:20px;line-height:1.1}.tabre-leaderboard-podium.is-1 .tabre-leaderboard-pvalue b{font-size:24px}.tabre-leaderboard-pvalue small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.tabre-leaderboard-rest{overflow:hidden}.tabre-leaderboard-list{list-style:none;margin:0;padding:0}.tabre-leaderboard-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line-soft)}.tabre-leaderboard-row:first-child{border-top:0}.tabre-leaderboard-row:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.tabre-leaderboard-pos{flex:none;width:26px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums}.tabre-leaderboard-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.tabre-leaderboard-value{display:inline-flex;align-items:baseline;gap:4px;margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:800}.tabre-leaderboard-value small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.tabre-leaderboard-rank{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:24px;height:22px;padding:0 7px;border-radius:var(--radius-pill,999px);background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:800;line-height:1}.tabre-leaderboard-rank.is-1{background:#d4a017;color:#111827}.tabre-leaderboard-rank.is-2{background:#94a3b8;color:#0f172a}.tabre-leaderboard-rank.is-3{background:#b45309;color:#fff}.tabre-leaderboard-mini{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.tabre-leaderboard-mini li{display:flex;align-items:center;gap:8px;min-width:0}.tabre-leaderboard-mini .user-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabre-leaderboard-mini b{margin-left:auto;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.tabre-leaderboard-mini .icon{width:14px;height:14px;vertical-align:-2px;margin-right:5px}.tabre-leaderboard-mini .tabre-ranks-after,.tabre-leaderboard-mini .tabre-titles-after{flex:none;margin-inline-start:4px}.tabre-leaderboard-mini .tabre-ranks-chip,.tabre-leaderboard-mini .tabre-titles-chip{width:20px;height:20px;padding:0;gap:0;justify-content:center;border-radius:50%}.tabre-leaderboard-mini .tabre-ranks-chip-name,.tabre-leaderboard-mini .tabre-titles-chip-name{display:none}.tabre-leaderboard-mini .tabre-ranks-chip .tabre-ranks-img,.tabre-leaderboard-mini .tabre-ranks-chip .icon,.tabre-leaderboard-mini .tabre-titles-chip .tabre-titles-img,.tabre-leaderboard-mini .tabre-titles-chip .icon{width:13px;height:13px;padding:0;box-shadow:none}@media(max-width:760px){.tabre-leaderboard-podiums{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tabre-leaderboard-podiums.count-2{max-width:none}.tabre-leaderboard-podiums.count-2 .tabre-leaderboard-podium.is-1{grid-column:auto;order:1;padding:18px 10px 16px}.tabre-leaderboard-podium.is-1{grid-column:1/-1;order:0;padding:20px 12px 18px}.tabre-leaderboard-podium.is-2{order:1}.tabre-leaderboard-podium.is-3{order:2}.tabre-leaderboard-podium{padding:16px 10px;border-radius:16px}.tabre-leaderboard-row{padding:10px 12px;gap:10px}.tabre-leaderboard-pos{width:20px}.tabre-leaderboard-headright{gap:10px}}

/* tabre_loginread */
.tabre-loginread-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;margin-inline-start:6px;vertical-align:middle;border-radius:var(--radius-pill,999px);background:var(--info,#2563eb);color:#fff;font-size:var(--font-size-xs);font-weight:700;line-height:1.75;white-space:nowrap}.tabre-loginread-pill svg{width:12px;height:12px}

/* tabre_messages */
/* TabRe Messages 1.1 — Messenger-style dock and two-pane inbox.
 * Colours come from the theme tokens; own bubbles use the soft brand tint with body text, never white on brand
 * (that pair is under 4.5:1). Counts use a darkened brand so white stays readable. */

.tabre-msgr [hidden] { display: none !important; }
.tabre-msgr { --msgr-panel-2: var(--panel-2); font-size: var(--font-size-md); }
.tabre-msgr a:focus-visible,
.tabre-msgr button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

/* ---------- launcher ---------- */
.tabre-msgr-launch {
  position: fixed; inset-inline-end: 22px; bottom: 76px; z-index: 80;
  display: flex; align-items: center; justify-content: center; width: 54px; height: 54px;
  border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--text);
  box-shadow: 0 10px 28px rgba(16, 24, 40, .22);
  transition: transform .16s ease, color .16s ease, border-color .16s ease;
}
.tabre-msgr-launch:hover { color: var(--brand); border-color: var(--brand); transform: translateY(-2px); }
.tabre-msgr-launch[aria-expanded="true"] { color: var(--brand); border-color: var(--brand); }
.tabre-msgr-launch .icon { width: 23px; height: 23px; }
.tabre-msgr-launch-badge {
  position: absolute; top: -4px; inset-inline-end: -4px;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 20px; padding: 0 5px; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--brand) 78%, #000); color: #fff;
  font-size: var(--font-size-xs); font-weight: 700; line-height: 1;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .28);
}

/* ---------- dock panel ---------- */
.tabre-msgr-panel {
  position: fixed; inset-inline-end: 22px; bottom: 144px; z-index: 81;
  display: flex; flex-direction: column;
  width: 372px; max-width: calc(100vw - 28px); height: min(620px, calc(100dvh - 168px));
  min-height: min(360px, calc(100dvh - 168px));
  background: var(--panel); border: 1px solid var(--line); border-radius: 18px;
  box-shadow: 0 22px 56px rgba(16, 24, 40, .26); overflow: hidden;
}
.tabre-msgr-panel:not([hidden]) { animation: tabre-msgr-in .16s ease-out; }
@keyframes tabre-msgr-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.tabre-msgr-head { display: flex; align-items: center; gap: 8px; flex: none; min-height: 56px; padding: 9px 10px 9px 12px; border-bottom: 1px solid var(--line); background: var(--panel); }
.tabre-msgr-head-title { flex: 1; min-width: 0; font-size: var(--font-size-md); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-peer { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; color: var(--text); }
.tabre-msgr-peer:hover { color: var(--text); }
.tabre-msgr-peer b { min-width: 0; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-peer-av { display: inline-flex; flex: none; }
.tabre-msgr-head-actions { display: flex; align-items: center; gap: 2px; margin-inline-start: auto; flex: none; }
.tabre-msgr-iconbtn {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0;
  border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--text-muted);
  cursor: pointer; transition: background .12s, color .12s;
}
.tabre-msgr-iconbtn:hover { background: var(--panel-2); color: var(--text); }
.tabre-msgr-iconbtn .icon { width: 18px; height: 18px; }

.tabre-msgr-view { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* ---------- conversation list ---------- */
.tabre-msgr-listwrap { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.tabre-msgr-list { display: flex; flex-direction: column; }
.tabre-msgr-row {
  display: flex; align-items: center; gap: 11px; padding: 10px 12px;
  border-bottom: 1px solid var(--line-soft); color: inherit; text-decoration: none;
  transition: background .12s;
}
.tabre-msgr-row:last-child { border-bottom: 0; }
.tabre-msgr-row:hover { background: var(--panel-2); color: inherit; }
.tabre-msgr-row.is-active { background: var(--brand-soft); }
.tabre-msgr-row-av { display: inline-flex; flex: none; }
.tabre-msgr-row-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.tabre-msgr-row-top { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.tabre-msgr-row-top b { flex: 1; min-width: 0; font-size: var(--font-size-md); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-row.is-unread .tabre-msgr-row-top b { font-weight: 700; }
.tabre-msgr-row-top time { flex: none; font-size: var(--font-size-xs); color: var(--text-muted); }
.tabre-msgr-row-sub { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tabre-msgr-row-excerpt { flex: 1; min-width: 0; font-size: var(--font-size-sm); color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-row.is-unread .tabre-msgr-row-excerpt { color: var(--text); }
.tabre-msgr-badge {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  min-width: 19px; height: 19px; padding: 0 6px; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--brand) 78%, #000); color: #fff;
  font-size: var(--font-size-xs); font-weight: 700; line-height: 1;
}
.tabre-msgr-listfoot { flex: none; padding: 9px 12px; border-top: 1px solid var(--line); text-align: center; font-size: var(--font-size-sm); }
.tabre-msgr-listfoot a { font-weight: 550; }

/* ---------- shared states ---------- */
.tabre-msgr-loading { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 26px 16px; color: var(--text-muted); font-size: var(--font-size-sm); }
.tabre-msgr-spin { width: 15px; height: 15px; border: 2px solid var(--line); border-top-color: var(--brand); border-radius: 50%; animation: tabre-msgr-spin .7s linear infinite; }
@keyframes tabre-msgr-spin { to { transform: rotate(360deg); } }
.tabre-msgr-empty { display: flex; flex-direction: column; align-items: center; gap: 5px; margin: auto; padding: 42px 22px; text-align: center; color: var(--text-muted); }
.tabre-msgr-empty > .icon { width: 30px; height: 30px; padding: 12px; box-sizing: content-box; border-radius: 50%; background: var(--brand-soft); color: var(--brand); margin-bottom: 6px; }
.tabre-msgr-empty b { color: var(--text); font-size: var(--font-size-md); font-weight: 650; }
.tabre-msgr-empty p { margin: 0 0 10px; max-width: 28ch; font-size: var(--font-size-sm); }
.tabre-msgr-error,
.tabre-msgr-chat-error,
.tabre-msgr-compose-error { margin: 10px 12px; padding: 9px 11px; border-radius: var(--radius-sm); background: var(--danger-soft); color: var(--danger); font-size: var(--font-size-sm); }

/* ---------- chat ---------- */
.tabre-msgr-chat { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.tabre-msgr-feed {
  flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  padding: 12px 14px 8px; background: var(--bg);
  scrollbar-width: thin; scrollbar-color: var(--line) transparent;
}
.tabre-msgr-feed::-webkit-scrollbar,
.tabre-msgr-listwrap::-webkit-scrollbar,
.tabre-msgr-suggest::-webkit-scrollbar,
.tabre-msgr-list::-webkit-scrollbar { width: 8px; }
.tabre-msgr-feed::-webkit-scrollbar-thumb,
.tabre-msgr-listwrap::-webkit-scrollbar-thumb,
.tabre-msgr-suggest::-webkit-scrollbar-thumb,
.tabre-msgr-list::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
.tabre-msgr-stream { display: flex; flex-direction: column; min-height: 100%; }
.tabre-msgr-older {
  display: block; margin: 2px auto 10px; padding: 5px 13px;
  border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--panel);
  color: var(--text-muted); font: inherit; font-size: var(--font-size-sm); cursor: pointer;
}
.tabre-msgr-older:hover { color: var(--text); border-color: var(--text-subtle); }
.tabre-msgr-older:disabled { opacity: .6; cursor: default; }
.tabre-msgr-day { display: flex; justify-content: center; margin: 15px 0 11px; }
.tabre-msgr-day span {
  padding: 3px 10px; border: 1px solid var(--line-soft); border-radius: var(--radius-pill);
  background: var(--panel); color: var(--text-muted);
  font-size: var(--font-size-xs); font-weight: 600; line-height: 1.4;
}
.tabre-msgr-msg { display: flex; align-items: flex-end; gap: 7px; margin-top: 2px; max-width: 100%; }
.tabre-msgr-msg.is-tail { margin-top: 12px; }
.tabre-msgr-msg.is-mine { flex-direction: row-reverse; }
.tabre-msgr-msg-av { width: 28px; flex: none; align-self: flex-end; }
.tabre-msgr-msg-av .avatar { width: 28px; height: 28px; }
.tabre-msgr-msg-main { display: flex; flex-direction: column; min-width: 0; max-width: min(78%, 520px); }
.tabre-msgr-msg.is-mine .tabre-msgr-msg-main { align-items: flex-end; }
.tabre-msgr-bubble { padding: 7px 11px; border: 1px solid var(--line-soft); border-radius: 14px; background: var(--panel); color: var(--text); }
.tabre-msgr-msg.is-mine .tabre-msgr-bubble { border-color: transparent; background: var(--brand-soft); }
.tabre-msgr-msg.is-tail:not(.is-mine) .tabre-msgr-bubble { border-end-start-radius: 5px; }
.tabre-msgr-msg.is-tail.is-mine .tabre-msgr-bubble { border-end-end-radius: 5px; }
.tabre-msgr-text { font-size: var(--font-size-md); line-height: 1.45; overflow-wrap: anywhere; }
.tabre-msgr-text p { margin: 0 0 .5em; }
.tabre-msgr-text p:last-child { margin-bottom: 0; }
.tabre-msgr-text ul, .tabre-msgr-text ol { margin: .3em 0; padding-inline-start: 18px; }
.tabre-msgr-text blockquote { margin: .4em 0; padding-inline-start: 10px; border-inline-start: 2px solid var(--line); color: var(--text-muted); }
.tabre-msgr-text pre { max-width: 100%; margin: .4em 0; padding: 8px 10px; overflow: auto; font-size: var(--font-size-sm); }
.tabre-msgr-text img { border-radius: var(--radius-sm); }
.tabre-msgr-meta { margin-top: 3px; color: var(--text-muted); font-size: var(--font-size-xs); line-height: 1; }

.tabre-msgr-jump {
  position: absolute; left: 50%; bottom: 78px; z-index: 2; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px;
  border: 0; border-radius: var(--radius-pill); background: var(--text); color: var(--bg);
  font: inherit; font-size: var(--font-size-sm); font-weight: 600; cursor: pointer;
  box-shadow: var(--shadow-md);
}
.tabre-msgr-jump .icon { width: 15px; height: 15px; }

/* ---------- composer ---------- */
.tabre-msgr-composer { display: flex; align-items: flex-end; gap: 8px; flex: none; padding: 10px 12px; border-top: 1px solid var(--line); background: var(--panel); }
.tabre-msgr-input {
  flex: 1; min-width: 0; min-height: 38px; max-height: 120px; margin: 0; padding: 8px 12px;
  border: 1px solid var(--line); border-radius: 18px; background: var(--bg); color: var(--text);
  font: inherit; font-size: var(--font-size-md); line-height: 1.4; resize: none; overflow-y: auto;
}
.tabre-msgr-input:focus { outline: 2px solid var(--brand-soft); border-color: var(--brand); }
.tabre-msgr-input::placeholder { color: var(--text-muted); opacity: 1; }
.tabre-msgr-send {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%;
  background: var(--text); color: var(--bg); cursor: pointer;
  transition: background .12s, transform .12s, opacity .12s;
}
.tabre-msgr-send .icon { width: 18px; height: 18px; }
.tabre-msgr-send:hover { background: var(--brand); color: var(--brand-text); transform: translateY(-1px); }
.tabre-msgr-send:disabled { background: var(--line-soft); color: var(--text-muted); cursor: default; transform: none; }
.tabre-msgr-nosend { flex: none; margin: 0; padding: 13px 12px; border-top: 1px solid var(--line); color: var(--text-muted); font-size: var(--font-size-sm); text-align: center; }

/* ---------- compose (new conversation) ---------- */
.tabre-msgr-compose { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto; padding: 14px; }
.tabre-msgr-hint { margin: 0 0 12px; color: var(--text-muted); font-size: var(--font-size-sm); }
.tabre-msgr-start { display: flex; flex-direction: column; gap: 10px; }
.tabre-msgr-start .tabre-msgr-input { min-height: 84px; max-height: 200px; border-radius: var(--radius); }
.tabre-msgr-pick { position: relative; }
.tabre-msgr-suggest {
  position: absolute; inset-inline: 0; top: calc(100% + 4px); z-index: 3;
  max-height: 216px; overflow-y: auto; padding: 4px;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow-md);
}
.tabre-msgr-suggest-row { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 8px; border: 0; border-radius: 6px; background: none; color: var(--text); font: inherit; text-align: start; cursor: pointer; }
.tabre-msgr-suggest-row:hover,
.tabre-msgr-suggest-row.is-on { background: var(--panel-2); }
.tabre-msgr-suggest-row img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; flex: none; }
.tabre-msgr-suggest-row span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-suggest-row small { margin-inline-start: 6px; color: var(--text-muted); font-size: var(--font-size-xs); }
.tabre-msgr-suggest-empty { padding: 8px 9px; color: var(--text-muted); font-size: var(--font-size-sm); }
.tabre-msgr-chosen { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-2); }
.tabre-msgr-chosen-who { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tabre-msgr-chosen-who > span { display: flex; flex-direction: column; min-width: 0; }
.tabre-msgr-chosen-who small { color: var(--text-muted); font-size: var(--font-size-xs); }
.tabre-msgr-compose-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; }

/* ---------- page: two panes ---------- */
body.page-messages.no-left.no-right .page-grid { max-width: 1240px; }
.tabre-msgr-page { width: 100%; }
.tabre-msgr-shell {
  display: grid; grid-template-columns: minmax(280px, 352px) minmax(0, 1fr);
  height: min(820px, calc(100dvh - 130px)); min-height: 480px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 16px;
  box-shadow: var(--shadow); overflow: hidden;
}
.tabre-msgr-side { display: flex; flex-direction: column; min-height: 0; border-inline-end: 1px solid var(--line); background: var(--panel); }
.tabre-msgr-sidehead { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex: none; flex-wrap: wrap; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.tabre-msgr-sidehead h1 { margin: 0; font-size: var(--font-size-xl); }
.tabre-msgr-side .tabre-msgr-list { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.tabre-msgr-side .tabre-msgr-empty { margin: auto; }
.tabre-msgr-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--panel); }
.tabre-msgr-threadhead { display: flex; align-items: center; gap: 10px; flex: none; min-height: 56px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.tabre-msgr-threadpeer { display: flex; align-items: center; gap: 9px; min-width: 0; color: var(--text); }
.tabre-msgr-threadpeer:hover { color: var(--text); }
.tabre-msgr-threadpeer > span { display: flex; flex-direction: column; min-width: 0; }
.tabre-msgr-threadpeer b { font-size: var(--font-size-md); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabre-msgr-threadpeer small { color: var(--text-muted); font-size: var(--font-size-xs); line-height: 1.2; }
.tabre-msgr-openfull { margin-inline-start: auto; }
.tabre-msgr-back { display: none; }
.tabre-msgr-main .tabre-msgr-chat { flex: 1; min-height: 0; }
.tabre-msgr-welcome { display: flex; flex-direction: column; align-items: center; gap: 5px; margin: auto; padding: 40px 24px; text-align: center; color: var(--text-muted); }
.tabre-msgr-welcome > .icon { width: 34px; height: 34px; padding: 14px; box-sizing: content-box; border-radius: 50%; background: var(--brand-soft); color: var(--brand); margin-bottom: 4px; }
.tabre-msgr-welcome b { color: var(--text); font-size: var(--font-size-lg); }
.tabre-msgr-welcome p { margin: 0 0 10px; max-width: 36ch; font-size: var(--font-size-sm); }
.tabre-msgr-pill {
  position: fixed; left: 50%; bottom: 26px; z-index: 70; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px;
  border: 0; border-radius: var(--radius-pill); background: var(--text); color: var(--bg);
  font: inherit; font-size: var(--font-size-sm); font-weight: 600; cursor: pointer; box-shadow: var(--shadow-md);
}
.tabre-msgr-pill .icon { width: 15px; height: 15px; }

/* ---------- page: new conversation ---------- */
.tabre-msgr-newpage { padding-top: 6px; }
.tabre-msgr-newcard { max-width: 640px; margin: 0 auto; padding: 16px 18px 18px; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.tabre-msgr-newhead { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.tabre-msgr-newhead h1 { margin: 0; font-size: var(--font-size-xl); }

.tabre-msgr-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- phones: the dock becomes a sheet, the page one pane at a time ---------- */
@media (max-width: 640px) {
  body.page-messages.no-left.no-right .page-grid { max-width: none; padding-top: 0; }
  .tabre-msgr-launch { inset-inline-end: 14px; bottom: 68px; width: 50px; height: 50px; }
  .tabre-msgr-launch .icon { width: 21px; height: 21px; }
  .tabre-msgr-panel { inset: 0; width: auto; max-width: none; height: 100dvh; min-height: 0; border: 0; border-radius: 0; z-index: 130; }
  .tabre-msgr-panel:not([hidden]) { animation: none; }
  .tabre-msgr-head { padding-top: max(9px, env(safe-area-inset-top)); }
  .tabre-msgr-composer { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
  .tabre-msgr-jump { bottom: calc(80px + env(safe-area-inset-bottom)); }
  .tabre-msgr-msg-main { max-width: min(82%, 520px); }
  .tabre-msgr-shell { display: block; height: auto; min-height: 0; background: none; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
  .tabre-msgr-side { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--panel); height: calc(100dvh - 150px); }
  .tabre-msgr-main { display: none; }
  .tabre-msgr-page.is-chat .tabre-msgr-side { display: none; }
  .tabre-msgr-page.is-chat .tabre-msgr-main { display: flex; height: calc(100dvh - 120px); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--panel); }
  .tabre-msgr-back { display: inline-flex; }
  .tabre-msgr-welcome { display: none; }
  .tabre-msgr-newcard { border: 0; border-radius: 0; box-shadow: none; padding: 4px 2px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .tabre-msgr-launch, .tabre-msgr-send { transition: none; }
  .tabre-msgr-panel:not([hidden]) { animation: none; }
  .tabre-msgr-spin { animation-duration: 2s; }
}


/* tabre_nsfw */
.tabre-nsfw-pill{display:inline-flex;align-items:center;padding:1px 9px;margin-inline-start:6px;vertical-align:middle;border-radius:var(--radius-pill,999px);background:var(--danger,#dc2626);color:#fff;font-size:var(--font-size-xs);font-weight:700;line-height:1.75;letter-spacing:.02em;white-space:nowrap}.tabre-nsfw-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid var(--danger,#dc2626);border-radius:var(--radius);background:var(--danger-soft,rgba(220,38,38,.1))}.tabre-nsfw-banner-icon{display:inline-flex;color:var(--danger,#dc2626)}.tabre-nsfw-banner-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 220px}.tabre-nsfw-banner-text b{font-size:var(--font-size-sm)}.tabre-nsfw-banner-text span{font-size:var(--font-size-xs);color:var(--text-muted)}.tabre-nsfw-show{flex:none}.topic-page:has(.tabre-nsfw-banner[data-mode="blur"]):not(.tabre-nsfw-shown) .post-content,.topic-page.tabre-nsfw-locked.tabre-nsfw-blur:not(.tabre-nsfw-shown) .post-content{filter:blur(12px);pointer-events:none;user-select:none}.topic-page:has(.tabre-nsfw-banner[data-mode="hide"]):not(.tabre-nsfw-shown) .post-content,.topic-page.tabre-nsfw-locked.tabre-nsfw-hide:not(.tabre-nsfw-shown) .post-content{visibility:hidden;pointer-events:none;user-select:none}.topic-page.tabre-nsfw-shown .post-content{filter:none!important;visibility:visible!important;pointer-events:auto!important;user-select:auto!important}.tabre-nsfw-shown .tabre-nsfw-show{display:none}

/* tabre_pages */
.tabre-pages-body{line-height:1.75}.tabre-pages-body>:first-child{margin-top:0}.tabre-pages-body>:last-child{margin-bottom:0}

/* tabre_payread */
.tabre-payread-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;margin-inline-start:6px;vertical-align:middle;border-radius:var(--radius-pill,999px);background:#b45309;color:#fff;font-size:var(--font-size-xs);font-weight:700;line-height:1.75;white-space:nowrap}.tabre-payread-pill .icon{width:12px;height:12px}.tabre-payread-buy{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:4px}.tabre-payread-buy .icon{width:14px;height:14px;vertical-align:-2px}.tabre-payread-set{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.tabre-payread-set form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}.tabre-payread-set label{font-size:var(--font-size-sm);font-weight:600}.tabre-payread-set input{width:120px}.tabre-payread-set p{width:100%;margin:0}

/* tabre_poll */
.tabre-poll{margin-top:14px;border-color:var(--line)}.tabre-poll-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.tabre-poll-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.tabre-poll-eyebrow .icon{width:14px;height:14px}.tabre-poll-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tabre-poll-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:700;line-height:1.75;color:#fff}.tabre-poll-pill .icon{width:12px;height:12px}.tabre-poll-pill.is-voted{background:var(--brand,#e7672e)}.tabre-poll-pill.is-closed{background:var(--text-subtle,#6b7280)}.tabre-poll-question{margin:0 0 12px;font-size:var(--font-size-lg);line-height:1.4}.tabre-poll-options{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.tabre-poll-choice{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:var(--panel)}.tabre-poll-choice:hover{border-color:var(--brand);background:var(--panel-2)}.tabre-poll-choice input{accent-color:var(--brand);margin:0}.tabre-poll-choice-label{line-height:1.35}.tabre-poll-form .form-help{margin-top:7px}.tabre-poll-results{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.tabre-poll-result{position:relative;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)}.tabre-poll-result-fill{position:absolute;inset:0 auto 0 0;background:var(--brand-soft);z-index:0}.tabre-poll-result-line{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px}.tabre-poll-result-label{display:inline-flex;align-items:center;gap:5px;min-width:0}.tabre-poll-result-label .icon{width:13px;height:13px;color:var(--brand);flex:none}.tabre-poll-result-count{font-weight:700;font-size:var(--font-size-sm);white-space:nowrap;color:var(--text-muted)}.tabre-poll-result.is-mine{border-color:var(--brand)}.tabre-poll-result.is-mine .tabre-poll-result-label{font-weight:700;color:var(--brand)}.tabre-poll-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:var(--font-size-sm);color:var(--text-muted)}.tabre-poll-meta span{display:inline-flex;align-items:center;gap:4px}.tabre-poll-meta .icon{width:13px;height:13px}

/* tabre_props */
.tabre-props-top{display:flex;align-items:center;gap:10px}.tabre-props-balance{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:var(--radius-pill,999px);background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:var(--font-size-sm)}.tabre-props-balance .icon{width:14px;height:14px}.tabre-props-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.tabre-props-head{display:flex;align-items:flex-start;gap:12px}.tabre-props-glyph{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--brand-soft);color:var(--brand)}.tabre-props-glyph .icon{width:19px;height:19px}.tabre-props-glyph .tabre-props-img{width:23px;height:23px}.tabre-props-menu .tabre-props-img{width:18px;height:18px}.tabre-props-img{display:block;object-fit:contain}.tabre-props-copy{flex:1;min-width:0}.tabre-props-copy h3{margin:0;font-size:15px}.tabre-props-copy p{margin:2px 0 0}.tabre-props-price{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-pill,999px);background:#111827;color:#fff;font-weight:800;font-size:var(--font-size-xs);white-space:nowrap}.tabre-props-price .icon{width:12px;height:12px}.tabre-props-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.tabre-props-owned{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill,999px);background:var(--success,#16a34a);color:#fff;font-size:var(--font-size-xs);font-weight:800}.tabre-props-hl{font-weight:650}.tabre-props-set .dropdown-menu{min-width:200px}.tabre-props-menu button{display:flex;align-items:center;gap:8px;width:100%}.tabre-props-pick{position:relative}.tabre-props-pick input{width:100%}.tabre-props-results{position:absolute;z-index:40;inset-inline:0;top:calc(100% + 2px);max-height:260px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18))}.tabre-props-results[hidden]{display:none}.tabre-props-results button{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 9px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);text-align:start;cursor:pointer}.tabre-props-results button:hover{background:var(--panel-2);color:var(--brand)}.tabre-props-results small{color:var(--text-muted)}

/* tabre_ranks */
/* TabRe Ranks 1.0.5 */.tabre-ranks-after{display:inline-flex;margin-inline-start:6px;vertical-align:middle}.tabre-ranks-chip{position:relative;display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 10px 0 2px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ti) 22%,transparent);background:linear-gradient(180deg,var(--tc) 0%,var(--tc2) 100%);color:var(--ti);font-size:12px;font-weight:800;line-height:1;letter-spacing:.01em;white-space:nowrap;vertical-align:middle;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(0,0,0,.14),0 1px 2px rgba(0,0,0,.22);text-shadow:0 1px 0 rgba(255,255,255,.18)}.tabre-ranks-chip.is-ink-light{text-shadow:0 1px 1px rgba(0,0,0,.35)}.tabre-ranks-chip .tabre-ranks-img,.tabre-ranks-chip .icon{width:15px;height:15px;padding:1px;border-radius:50%;box-sizing:content-box;flex:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--ti) 30%,transparent),0 1px 2px rgba(0,0,0,.3)}.tabre-ranks-chip-name{display:block}.tabre-ranks-chip.is-lg{height:28px;padding:0 13px 0 3px;gap:7px;font-size:14px}.newest-item .tabre-ranks-after{display:none}@media(max-width:640px){.post-name:has(.tabre-ranks-after){flex-wrap:wrap;row-gap:5px}.post-name:has(.tabre-ranks-after) .user-link{flex:0 0 auto;max-width:100%}}.tabre-ranks-chip.is-lg .tabre-ranks-img,.tabre-ranks-chip.is-lg .icon{width:20px;height:20px;padding:1px}.tabre-ranks-img{display:block;object-fit:contain;flex:none}.tabre-ranks-headright{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tabre-ranks-headright .small{display:inline-flex;align-items:center;gap:5px}.tabre-ranks-headright .icon{width:15px;height:15px}.tabre-ranks-hero{position:relative;margin:0 0 18px;border-radius:16px;border-color:color-mix(in srgb,var(--tc) 42%,var(--line));background:radial-gradient(100% 170% at 4% 0%,color-mix(in srgb,var(--tc) 26%,transparent) 0%,transparent 55%),linear-gradient(140deg,color-mix(in srgb,var(--tc) 9%,var(--panel)) 0%,var(--panel) 58%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.18),0 20px 44px -32px color-mix(in srgb,var(--tc) 85%,#000)}.tabre-ranks-hero::before{content:"";position:absolute;top:0;left:28px;right:28px;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tc) 65%,transparent),transparent);opacity:.7}.tabre-ranks-progress{display:flex;align-items:center;gap:14px}.tabre-ranks-progress-art,.tabre-ranks-art,.tabre-ranks-guest-art{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex:none;border-radius:15px;background:radial-gradient(120% 120% at 32% 18%,color-mix(in srgb,var(--tc) 34%,transparent) 0%,color-mix(in srgb,var(--tc) 12%,var(--panel-2)) 58%,var(--panel-2) 100%);border:1px solid color-mix(in srgb,var(--tc) 36%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px -12px color-mix(in srgb,var(--tc) 80%,#000)}.tabre-ranks-progress-art::before,.tabre-ranks-progress-art::after,.tabre-ranks-art::before,.tabre-ranks-art::after,.tabre-ranks-guest-art::before,.tabre-ranks-guest-art::after{content:"";position:absolute;width:10px;height:10px;pointer-events:none;opacity:.75}.tabre-ranks-progress-art::before,.tabre-ranks-art::before,.tabre-ranks-guest-art::before{top:-5px;left:-5px;border-top:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-left:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-top-left-radius:7px}.tabre-ranks-progress-art::after,.tabre-ranks-art::after,.tabre-ranks-guest-art::after{bottom:-5px;right:-5px;border-bottom:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-right:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-bottom-right-radius:7px}.tabre-ranks-progress-art .tabre-ranks-img,.tabre-ranks-art .tabre-ranks-img{width:36px;height:36px}.tabre-ranks-progress.is-hero{gap:16px}.tabre-ranks-progress.is-hero .tabre-ranks-progress-art{width:64px;height:64px;border-radius:18px}.tabre-ranks-progress.is-hero .tabre-ranks-progress-art .tabre-ranks-img{width:46px;height:46px}.tabre-ranks-progress-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.tabre-ranks-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tabre-ranks-name{margin:0;font-size:16px;line-height:1.2;letter-spacing:-.01em;text-transform:none;font-weight:800}.tabre-ranks-progress.is-hero .tabre-ranks-name{font-size:21px;line-height:1.15;font-weight:900}.tabre-ranks-total{margin-inline-start:auto;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.tabre-ranks-xp{margin-inline-start:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.tabre-ranks-xp b{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tabre-ranks-xp span{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em}.tabre-ranks-bar{position:relative;height:10px;margin-top:3px;padding:1px;border-radius:999px;background:color-mix(in srgb,var(--text) 9%,transparent);border:1px solid color-mix(in srgb,var(--text) 12%,transparent);overflow:hidden}.tabre-ranks-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 62%,var(--text)) 0%,color-mix(in srgb,var(--tc) 86%,#fff) 58%,var(--tc) 100%);box-shadow:0 0 10px color-mix(in srgb,var(--tc) 55%,transparent),inset 0 1px 0 rgba(255,255,255,.35)}.tabre-ranks-barline{display:flex;align-items:baseline;gap:8px;color:var(--text-muted);font-size:12px}.tabre-ranks-barline span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabre-ranks-barline b{margin-inline-start:auto;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.tabre-ranks-progress:not(.is-hero) .tabre-ranks-barline b{display:none}.tabre-ranks-math{margin:0;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums;text-wrap:balance}.tabre-ranks-guest{--tc:var(--brand);position:relative;margin:0 0 18px;border-radius:15px;border-color:color-mix(in srgb,var(--brand) 30%,var(--line));background:radial-gradient(90% 160% at 4% 0%,color-mix(in srgb,var(--brand) 18%,transparent) 0%,transparent 60%),linear-gradient(130deg,var(--brand-soft),var(--panel) 62%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.16)}.tabre-ranks-guest-body{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tabre-ranks-guest-art .icon{width:26px;height:26px}.tabre-ranks-guest-copy{flex:1;min-width:180px}.tabre-ranks-guest-copy h2{margin:0;font-size:17px;line-height:1.25;letter-spacing:-.01em;text-transform:none;font-weight:800}.tabre-ranks-guest-copy p{margin:2px 0 0}.tabre-ranks-guest-body .btn{margin-inline-start:auto}.tabre-ranks-h2{display:flex;align-items:center;gap:8px;margin:22px 0 12px;font-size:15px;line-height:1.3;letter-spacing:0;text-transform:none}.tabre-ranks-h2 .icon{width:17px;height:17px;color:var(--text-muted);flex:none}.tabre-ranks-h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.tabre-ranks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.tabre-ranks-item{--tc:#64748b;--tc2:#475569;position:relative;border-radius:14px;border-color:color-mix(in srgb,var(--tc) 22%,var(--line));background:radial-gradient(130% 110% at 6% -10%,color-mix(in srgb,var(--tc) 18%,transparent) 0%,transparent 52%),linear-gradient(165deg,color-mix(in srgb,var(--tc) 6%,var(--panel)) 0%,var(--panel) 50%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.14),0 16px 34px -28px color-mix(in srgb,var(--tc) 85%,#000);transition:transform .22s cubic-bezier(.2,.7,.2,1),border-color .22s,box-shadow .22s}.tabre-ranks-item.is-current{border-color:color-mix(in srgb,var(--tc) 55%,var(--line));background:radial-gradient(120% 130% at 0% 0%,color-mix(in srgb,var(--tc) 24%,transparent) 0%,transparent 58%),linear-gradient(160deg,color-mix(in srgb,var(--tc) 10%,var(--panel)) 0%,var(--panel) 55%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.2),0 0 0 1px color-mix(in srgb,var(--tc) 40%,transparent),0 22px 42px -28px color-mix(in srgb,var(--tc) 90%,#000)}.tabre-ranks-item.is-current .tabre-ranks-art{box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 0 0 1px color-mix(in srgb,var(--tc) 48%,transparent),0 0 18px -2px color-mix(in srgb,var(--tc) 55%,transparent)}.tabre-ranks-head{display:flex;align-items:center;gap:13px}.tabre-ranks-copy{flex:1;min-width:0}.tabre-ranks-copy h3{margin:0;font-size:16px;line-height:1.2;letter-spacing:-.01em;text-transform:none;font-weight:800}.tabre-ranks-copy p{margin:3px 0 0}.tabre-ranks-need{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,#f59e0b 18%,var(--panel-2)),color-mix(in srgb,#f59e0b 7%,var(--panel-2)));border:1px solid color-mix(in srgb,#d97706 26%,var(--line));color:color-mix(in srgb,#92400e 60%,var(--text));font-weight:800;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}.tabre-ranks-need .icon{width:12px;height:12px;color:color-mix(in srgb,#b45309 62%,var(--text))}.tabre-ranks-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--tc) 16%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--panel-2) 78%,transparent);box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}.tabre-ranks-state{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text-muted);font-size:12px;font-weight:700;white-space:nowrap}.tabre-ranks-state .icon{width:13px;height:13px}.tabre-ranks-state.is-here{background:color-mix(in srgb,var(--success,#16a34a) 14%,transparent);color:color-mix(in srgb,var(--success,#16a34a) 62%,var(--text))}@media(hover:hover){.tabre-ranks-item:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tc) 44%,var(--line));box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.18),0 22px 40px -26px color-mix(in srgb,var(--tc) 75%,#000)}}.tabre-ranks-top{overflow:hidden;border-radius:14px}.tabre-ranks-toplist{list-style:none;margin:0;padding:0}.tabre-ranks-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line-soft)}.tabre-ranks-row:first-child{border-top:0}.tabre-ranks-row:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.tabre-ranks-row.is-me{background:var(--brand-soft)}.tabre-ranks-pos{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:color-mix(in srgb,var(--text-muted) 65%,var(--text));font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center}.tabre-ranks-pos.is-1{color:#451a03;background:radial-gradient(circle at 32% 26%,#fde68a 0%,#fbbf24 46%,#f59e0b 100%);border:1px solid color-mix(in srgb,#b45309 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 3px rgba(0,0,0,.22)}.tabre-ranks-pos.is-2{color:#1e293b;background:radial-gradient(circle at 32% 26%,#f8fafc 0%,#e2e8f0 45%,#94a3b8 100%);border:1px solid color-mix(in srgb,#64748b 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 3px rgba(0,0,0,.2)}.tabre-ranks-pos.is-3{color:#3b1204;background:radial-gradient(circle at 32% 26%,#ffe3bd 0%,#f6c28b 45%,#d97a2b 100%);border:1px solid color-mix(in srgb,#9a5b2b 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 3px rgba(0,0,0,.2)}.tabre-ranks-who{flex:1;min-width:0;display:flex;align-items:center;overflow:hidden}.tabre-ranks-who .user-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.tabre-ranks-who .tabre-ranks-after{flex:none}.tabre-ranks-value{display:inline-flex;align-items:baseline;gap:4px;margin-inline-start:auto;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:800;font-size:15px}.tabre-ranks-value small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}@media(max-width:560px){.tabre-ranks-grid{grid-template-columns:minmax(0,1fr);gap:12px}.tabre-ranks-item .card-body{padding:13px}.tabre-ranks-head{gap:11px}.tabre-ranks-art{width:46px;height:46px;border-radius:13px}.tabre-ranks-art .tabre-ranks-img{width:31px;height:31px}.tabre-ranks-progress.is-hero{gap:12px}.tabre-ranks-progress.is-hero .tabre-ranks-progress-art{width:54px;height:54px;border-radius:16px}.tabre-ranks-progress.is-hero .tabre-ranks-progress-art .tabre-ranks-img{width:39px;height:39px}.tabre-ranks-xp{margin-inline-start:0;flex-direction:row;align-items:baseline;gap:4px}.tabre-ranks-xp b{font-size:22px}.tabre-ranks-guest-art{width:46px;height:46px;border-radius:13px}.tabre-ranks-guest-art .icon{width:23px;height:23px}.tabre-ranks-row{padding:9px 12px;gap:10px}.tabre-ranks-guest-body .btn{margin-inline-start:0;width:100%}.tabre-ranks-row .tabre-titles-after{display:none}}

/* tabre_rating */
.tabre-rating-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:800;line-height:1.7;margin-inline-start:6px}.tabre-rating-chip .icon{width:11px;height:11px}.tabre-rating-chip.up{background:rgba(22,163,74,.14);color:#16a34a}.tabre-rating-chip.down{background:rgba(220,38,38,.14);color:#dc2626}.tabre-rating-set .dropdown-menu{min-width:130px}.tabre-rating-done{opacity:.85}

/* tabre_reactions */
.tabre-reactions{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.tabre-react-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border:1px solid var(--line);border-radius:var(--radius-pill,999px);background:var(--panel-2);color:var(--text);font-size:var(--font-size-sm);line-height:1.7;cursor:pointer}.tabre-react-pill:hover{border-color:var(--brand)}.tabre-react-pill.is-on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.tabre-react-pill b{font-size:var(--font-size-xs);font-weight:700}.tabre-react-pill.is-static{cursor:default}.tabre-react-add{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px dashed var(--line);border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.tabre-react-add:hover{border-color:var(--brand);color:var(--brand)}.tabre-react-add .icon{width:15px;height:15px}.tabre-react-picker{position:absolute;z-index:20;top:100%;inset-inline-start:0;margin-top:4px;display:none;flex-wrap:wrap;gap:2px;max-width:250px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18))}.tabre-reactions.is-open .tabre-react-picker{display:flex}.tabre-react-picker button{width:32px;height:32px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;font-size:18px;line-height:1;cursor:pointer}.tabre-react-picker button:hover{background:var(--panel-2)}.tabre-react-total{display:inline-flex;align-items:center;gap:3px}.tabre-react-total .icon{width:13px;height:13px}

/* tabre_redpacket */
/* TabRe Red Packet 1.0.2 */.tabre-rp{position:relative;display:flex;align-items:center;gap:14px;margin:12px 0 18px;padding:14px 16px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:radial-gradient(130% 150% at 100% 0%,rgba(255,214,150,.26),rgba(255,214,150,0) 46%),linear-gradient(135deg,#a3161b,#d21f2a 55%,#9f1217);box-shadow:0 18px 34px -24px rgba(120,10,16,.8),inset 0 1px 0 rgba(255,255,255,.22);color:#fff;overflow:hidden}.tabre-rp::after{content:"";position:absolute;right:-40px;bottom:-70px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);pointer-events:none}.tabre-rp-icon{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none;border-radius:50%;border:1px solid rgba(255,255,255,.32);background:linear-gradient(160deg,rgba(255,255,255,.3),rgba(255,255,255,.08));color:#ffe1a6;box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}.tabre-rp-icon .icon{width:22px;height:22px}.tabre-rp-main{position:relative;z-index:1;flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.tabre-rp-title{font-size:15px;font-weight:800;letter-spacing:.01em;line-height:1.25}.tabre-rp-meta{font-size:var(--font-size-sm);color:rgba(255,255,255,.82)}.tabre-rp-progress{display:block;width:100%;max-width:260px;height:5px;margin-top:5px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden}.tabre-rp-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffe1a6,#fff);box-shadow:0 0 10px rgba(255,225,166,.6)}.tabre-rp-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tabre-rp-who{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs);padding:1px 8px;border-radius:var(--radius-pill,999px);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.12);color:#fff}.tabre-rp-action{position:relative;z-index:1;flex:none}.tabre-rp .btn{border:0;border-radius:10px;background:#fff;color:#a3161b;font-weight:700;box-shadow:0 10px 22px -14px rgba(0,0,0,.65)}.tabre-rp .btn:hover{background:#fff3e6;color:#8a1015}.tabre-rp .muted{color:rgba(255,255,255,.78)}.tabre-rp-took{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.16);font-size:var(--font-size-sm);font-weight:700;color:#fff}.tabre-rp-took .icon{width:14px;height:14px}.tabre-rp-open{margin-top:14px}.tabre-rp-open .card-head h3{display:flex;align-items:center;gap:6px;margin:0}@media (max-width:560px){.tabre-rp{flex-wrap:wrap;gap:12px;padding:14px}.tabre-rp-icon{width:42px;height:42px}.tabre-rp-main{flex-basis:calc(100% - 54px)}.tabre-rp-progress{max-width:none}.tabre-rp-action{width:100%}.tabre-rp-action form{display:block;width:100%}.tabre-rp-action .btn{width:100%;justify-content:center}}

/* tabre_report */
.tabre-report-pill,.tabre-report-reason,.tabre-report-kind{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:700;line-height:1.75;white-space:nowrap;color:#fff}.tabre-report-pill.is-new{background:var(--warning,#d97706);color:#111827}.tabre-report-pill.is-handled{background:var(--success,#16a34a)}.tabre-report-pill.is-dismissed{background:var(--text-subtle,#6b7280)}.tabre-report-reason{background:var(--danger,#dc2626)}.tabre-report-kind{background:var(--brand,#e7672e)}.tabre-report-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;align-items:start}.tabre-report-preview-meta{display:flex;gap:6px;margin-bottom:8px}.tabre-report-preview-title{margin:0 0 8px;font-size:var(--font-size-xl)}.tabre-report-excerpt{margin:0 0 12px;color:var(--text-muted)}.tabre-report-form .card-head h3{display:flex;align-items:center;gap:6px;margin:0}.tabre-report-form .card-head .icon{width:16px;height:16px}.tabre-report-cell{display:flex;flex-direction:column;gap:4px;min-width:220px}.tabre-report-title{font-weight:700}.tabre-report-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tabre-report-note{color:var(--text-muted);font-size:var(--font-size-sm);white-space:pre-line}.tabre-report-actions{display:flex;align-items:center;gap:6px}.tabre-report-actions .btn{display:inline-flex;align-items:center;gap:4px}@media(max-width:760px){.tabre-report-grid{grid-template-columns:1fr}}

/* tabre_seasons */
/* TabRe Seasons — in-flow decoration only: nothing is fixed or absolutely positioned, so page content is never covered. */

.tabre-seasons,
.tabre-seasons-foot,
.tabre-seasons-ambient { --tabre-seasons-accent: #92400e; --tabre-seasons-accent-2: #fbbf24; }

.tabre-seasons[data-event="tet"], .tabre-seasons-foot[data-event="tet"], .tabre-seasons-ambient[data-event="tet"] { --tabre-seasons-accent: #b42318; --tabre-seasons-accent-2: #f0b429; }
.tabre-seasons[data-event="valentine"], .tabre-seasons-foot[data-event="valentine"], .tabre-seasons-ambient[data-event="valentine"] { --tabre-seasons-accent: #be123c; --tabre-seasons-accent-2: #fb7185; }
.tabre-seasons[data-event="womens_day"], .tabre-seasons-foot[data-event="womens_day"], .tabre-seasons-ambient[data-event="womens_day"] { --tabre-seasons-accent: #9d174d; --tabre-seasons-accent-2: #f472b6; }
.tabre-seasons[data-event="liberation"], .tabre-seasons-foot[data-event="liberation"], .tabre-seasons-ambient[data-event="liberation"] { --tabre-seasons-accent: #b91c1c; --tabre-seasons-accent-2: #facc15; }
.tabre-seasons[data-event="children"], .tabre-seasons-foot[data-event="children"], .tabre-seasons-ambient[data-event="children"] { --tabre-seasons-accent: #0369a1; --tabre-seasons-accent-2: #38bdf8; }
.tabre-seasons[data-event="mid_autumn"], .tabre-seasons-foot[data-event="mid_autumn"], .tabre-seasons-ambient[data-event="mid_autumn"] { --tabre-seasons-accent: #b45309; --tabre-seasons-accent-2: #fbbf24; }
.tabre-seasons[data-event="womens_vn"], .tabre-seasons-foot[data-event="womens_vn"], .tabre-seasons-ambient[data-event="womens_vn"] { --tabre-seasons-accent: #9f1239; --tabre-seasons-accent-2: #f9a8d4; }
.tabre-seasons[data-event="halloween"], .tabre-seasons-foot[data-event="halloween"], .tabre-seasons-ambient[data-event="halloween"] { --tabre-seasons-accent: #5b21b6; --tabre-seasons-accent-2: #84cc16; }
.tabre-seasons[data-event="teachers"], .tabre-seasons-foot[data-event="teachers"], .tabre-seasons-ambient[data-event="teachers"] { --tabre-seasons-accent: #1d4ed8; --tabre-seasons-accent-2: #fbbf24; }
.tabre-seasons[data-event="christmas"], .tabre-seasons-foot[data-event="christmas"], .tabre-seasons-ambient[data-event="christmas"] { --tabre-seasons-accent: #b91c1c; --tabre-seasons-accent-2: #22c55e; }
.tabre-seasons[data-event="new_year"], .tabre-seasons-foot[data-event="new_year"], .tabre-seasons-ambient[data-event="new_year"] { --tabre-seasons-accent: #5b21b6; --tabre-seasons-accent-2: #a78bfa; }
.tabre-seasons[data-event="spring"], .tabre-seasons-foot[data-event="spring"], .tabre-seasons-ambient[data-event="spring"] { --tabre-seasons-accent: #15803d; --tabre-seasons-accent-2: #86efac; }
.tabre-seasons[data-event="summer"], .tabre-seasons-foot[data-event="summer"], .tabre-seasons-ambient[data-event="summer"] { --tabre-seasons-accent: #c2410c; --tabre-seasons-accent-2: #fdba74; }
.tabre-seasons[data-event="autumn"], .tabre-seasons-foot[data-event="autumn"], .tabre-seasons-ambient[data-event="autumn"] { --tabre-seasons-accent: #92400e; --tabre-seasons-accent-2: #fbbf24; }
.tabre-seasons[data-event="winter"], .tabre-seasons-foot[data-event="winter"], .tabre-seasons-ambient[data-event="winter"] { --tabre-seasons-accent: #1e40af; --tabre-seasons-accent-2: #93c5fd; }

.tabre-seasons {
  margin: 0 0 16px;
  border: 1px solid color-mix(in srgb, var(--tabre-seasons-accent) 24%, var(--line));
  border-radius: var(--radius);
  background: linear-gradient(180deg, color-mix(in srgb, var(--tabre-seasons-accent) 7%, var(--panel)), var(--panel) 62%);
  overflow: hidden;
}

.tabre-seasons::before {
  content: "";
  display: block;
  height: 4px;
  background: repeating-linear-gradient(90deg, var(--tabre-seasons-accent) 0 6px, color-mix(in srgb, var(--tabre-seasons-accent-2) 72%, var(--panel)) 6px 12px);
}

.tabre-seasons-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  padding: 12px 16px 14px;
}

.tabre-seasons-copy { flex: 1 1 250px; min-width: 0; }

.tabre-seasons-head {
  margin: 0 0 3px;
}

.tabre-seasons-name {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.012em;
  color: var(--text);
}

.tabre-seasons-name::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 7px;
  background: var(--tabre-seasons-accent);
  vertical-align: 2px;
}

.tabre-seasons-year {
  margin-left: 8px;
  font-size: var(--font-size-xs);
  font-weight: 600;
  line-height: 1.4;
  color: color-mix(in srgb, var(--tabre-seasons-accent) 22%, var(--text-muted));
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  white-space: nowrap;
}

.tabre-seasons-note {
  margin: 0 0 8px;
  max-width: 48ch;
  font-size: 13px;
  line-height: 1.5;
  color: color-mix(in srgb, var(--tabre-seasons-accent) 22%, var(--text-muted));
}

.tabre-seasons-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 0;
  font-size: var(--font-size-xs);
  line-height: 1.4;
  color: color-mix(in srgb, var(--tabre-seasons-accent) 22%, var(--text-muted));
  font-variant-numeric: tabular-nums;
}

.tabre-seasons-sep { color: var(--text-subtle); }

.tabre-seasons-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: var(--tabre-seasons-accent);
  color: #fff;
  font-size: var(--font-size-xs);
  font-weight: 700;
  line-height: 1.45;
  white-space: nowrap;
}

.tabre-seasons-pill::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #fff;
  opacity: .9;
}

.tabre-seasons-art {
  display: flex;
  flex: none;
  align-items: flex-start;
  gap: 6px;
  margin-left: auto;
  padding-top: 2px;
}

.tabre-seasons-tile {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid color-mix(in srgb, var(--tabre-seasons-accent) 20%, var(--line));
  border-radius: 10px;
  background: color-mix(in srgb, var(--tabre-seasons-accent) 9%, var(--panel));
}

.tabre-seasons-tile:nth-child(2n) { margin-top: 5px; }

.tabre-seasons-tile img {
  display: block;
  width: 34px;
  height: 34px;
  image-rendering: pixelated;
}

.tabre-seasons-foot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-muted);
  font-size: var(--font-size-xs);
  line-height: 1;
  white-space: nowrap;
}

.tabre-seasons-foot img {
  flex: none;
  width: 18px;
  height: 18px;
  image-rendering: pixelated;
}

.tabre-seasons-foot::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--tabre-seasons-accent);
}

/* Full-page ambient layer: fixed behind the page at z-index -1, so drifting art never covers content. */
.tabre-seasons-ambient {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.tabre-seasons-glow,
.tabre-seasons-drift,
.tabre-seasons-twinkle {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.tabre-seasons-mote {
  position: absolute;
  top: 0;
  left: var(--tabre-seasons-x);
  width: var(--tabre-seasons-size);
  max-width: calc(100% - 4px);
  opacity: 0;
  animation: tabre-seasons-fall var(--tabre-seasons-duration) linear var(--tabre-seasons-delay) infinite;
}

.tabre-seasons-mote img {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: pixelated;
}

.tabre-seasons-glint {
  position: absolute;
  top: var(--tabre-seasons-y);
  left: var(--tabre-seasons-x);
  width: var(--tabre-seasons-size);
  height: var(--tabre-seasons-size);
  background: color-mix(in srgb, var(--tabre-seasons-accent-2) 78%, #fff);
  clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%);
  -webkit-clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%);
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--tabre-seasons-accent-2) 60%, transparent));
  opacity: 0;
  animation: tabre-seasons-twinkle var(--tabre-seasons-duration) ease-in-out var(--tabre-seasons-delay) infinite;
}

/* Glows: the layer is behind the frosted panels, so a sprite only reads as a soft moving shape there. These carry the
   atmosphere on screens with no gutters, where the crisp sprites have nowhere to fall. */
.tabre-seasons-orb {
  --tabre-seasons-orb-c: var(--tabre-seasons-accent);
  position: absolute;
  top: 0;
  left: var(--tabre-seasons-x);
  width: var(--tabre-seasons-size);
  height: var(--tabre-seasons-size);
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, var(--tabre-seasons-orb-c) 0%, color-mix(in srgb, var(--tabre-seasons-orb-c) 34%, transparent) 46%, transparent 70%);
  opacity: 0;
  animation: tabre-seasons-glow var(--tabre-seasons-duration) linear var(--tabre-seasons-delay) infinite;
}

.tabre-seasons-orb-alt { --tabre-seasons-orb-c: var(--tabre-seasons-accent-2); }

[data-theme="dark"] .tabre-seasons-orb { --tabre-seasons-orb-c: color-mix(in srgb, var(--tabre-seasons-accent) 58%, #fff); }
[data-theme="dark"] .tabre-seasons-orb-alt { --tabre-seasons-orb-c: color-mix(in srgb, var(--tabre-seasons-accent-2) 72%, #fff); }

@media (prefers-color-scheme: dark) {
  [data-theme="auto"] .tabre-seasons-orb { --tabre-seasons-orb-c: color-mix(in srgb, var(--tabre-seasons-accent) 58%, #fff); }
  [data-theme="auto"] .tabre-seasons-orb-alt { --tabre-seasons-orb-c: color-mix(in srgb, var(--tabre-seasons-accent-2) 72%, #fff); }
}

/* Edges: the rail ends where the page padding begins, so the visible sprites stay outside the content column. */
.tabre-seasons-ambient[data-mode="edges"] .tabre-seasons-rail {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: min(120px, max(14px, calc((100vw - var(--container, 1280px)) / 2 + var(--page-x, 20px))));
  overflow: hidden;
  pointer-events: none;
}

.tabre-seasons-ambient[data-mode="edges"] .tabre-seasons-rail-end {
  left: auto;
  right: 0;
}

.tabre-seasons-ambient[data-event="children"] .tabre-seasons-mote,
.tabre-seasons-ambient[data-event="summer"] .tabre-seasons-mote {
  animation-name: tabre-seasons-ascend;
}

@keyframes tabre-seasons-fall {
  0% { transform: translate3d(0, -12vh, 0) rotate(0deg); opacity: 0; }
  8%, 92% { opacity: var(--tabre-seasons-opacity); }
  50% { transform: translate3d(var(--tabre-seasons-sway), 50vh, 0) rotate(var(--tabre-seasons-spin)); }
  100% { transform: translate3d(calc(var(--tabre-seasons-sway) * -.6), 112vh, 0) rotate(calc(var(--tabre-seasons-spin) * -1)); opacity: 0; }
}

@keyframes tabre-seasons-glow {
  0% { transform: translate3d(0, -55vh, 0); opacity: 0; }
  14%, 86% { opacity: var(--tabre-seasons-opacity); }
  100% { transform: translate3d(0, 128vh, 0); opacity: 0; }
}

@keyframes tabre-seasons-ascend {
  0% { transform: translate3d(0, 112vh, 0) rotate(0deg); opacity: 0; }
  8%, 92% { opacity: var(--tabre-seasons-opacity); }
  50% { transform: translate3d(var(--tabre-seasons-sway), 50vh, 0) rotate(var(--tabre-seasons-spin)); }
  100% { transform: translate3d(calc(var(--tabre-seasons-sway) * -.6), -12vh, 0) rotate(calc(var(--tabre-seasons-spin) * -1)); opacity: 0; }
}

@keyframes tabre-seasons-twinkle {
  0%, 100% { opacity: 0; transform: scale(.35); }
  45%, 55% { opacity: var(--tabre-seasons-opacity); transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .tabre-seasons-mote, .tabre-seasons-glint { display: none; }
  /* Still decorated, just still: the glows rest where their animation would have left them. */
  .tabre-seasons-orb { animation: none; opacity: var(--tabre-seasons-opacity); transform: translate3d(0, var(--tabre-seasons-rest), 0); }
}

@media print {
  .tabre-seasons-ambient { display: none; }
}

/* Below this width the page has no gutters left, so the crisp sprites would only be cut in half; the glows carry the scene. */
@media (max-width: 1359px) {
  .tabre-seasons-ambient[data-mode="edges"] .tabre-seasons-rail { display: none; }
}

@media (prefers-reduced-motion: no-preference) {
  .tabre-seasons-tile { animation: tabre-seasons-rise .45s cubic-bezier(.2, .7, .3, 1) both; }
  .tabre-seasons-tile:nth-child(2) { animation-delay: .05s; }
  .tabre-seasons-tile:nth-child(3) { animation-delay: .1s; }
  .tabre-seasons-tile:nth-child(4) { animation-delay: .15s; }
  .tabre-seasons-tile:nth-child(5) { animation-delay: .2s; }
}

@keyframes tabre-seasons-rise {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 560px) {
  .tabre-seasons-inner { gap: 9px 12px; padding: 11px 13px 13px; }
  .tabre-seasons-copy { flex-basis: 100%; }
  .tabre-seasons-name { font-size: 16px; }
  .tabre-seasons-note { margin-bottom: 7px; font-size: var(--font-size-sm); }
  .tabre-seasons-art { gap: 4px; margin-left: 0; }
  .tabre-seasons-tile { width: 36px; height: 36px; border-radius: 8px; }
  .tabre-seasons-tile:nth-child(2n) { margin-top: 4px; }
  .tabre-seasons-tile img { width: 28px; height: 28px; }
  .tabre-seasons-ambient[data-mode="background"] .tabre-seasons-twinkle { display: none; }
  .tabre-seasons-ambient[data-mode="background"] .tabre-seasons-drift > .tabre-seasons-mote:nth-child(n+7) { display: none; }
  .tabre-seasons-glow > .tabre-seasons-orb:nth-child(n+5) { display: none; }
  .tabre-seasons-orb { width: min(var(--tabre-seasons-size), 78vw); height: min(var(--tabre-seasons-size), 78vw); }
  /* The edge lanes exist for wide gutters; on a phone they would only be cut in half by the viewport. */
  .tabre-seasons-mote { left: clamp(10px, var(--tabre-seasons-x), calc(100% - var(--tabre-seasons-size) - 10px)); }
}


/* tabre_seo */
.tabre-seo-path{word-break:break-all;font-size:var(--font-size-sm)}
.tabre-seo-gap{margin-top:28px}
.tabre-seo-tools{display:flex;justify-content:flex-end;margin:0 0 10px}


/* tabre_share */
.tabre-share-menu{padding:4px;min-width:180px}.tabre-share-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);text-decoration:none;cursor:pointer;white-space:nowrap}.tabre-share-item:hover{background:var(--panel-2);color:var(--brand)}.tabre-share-item .icon{width:15px;height:15px;flex:none;color:var(--text-muted)}.tabre-share-item[hidden]{display:none}

/* tabre_sidebar */
/* TabRe Sidebar 1.0.1 */body:not(.page-admin) .col-left .side-link{gap:9px;min-height:34px;padding:7px 9px;border-radius:8px;font-size:var(--font-size-sm);font-weight:500}body:not(.page-admin) .col-left .side-link .icon{width:17px;height:17px;flex:none;color:var(--text-muted)}body:not(.page-admin) .col-left .side-link:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}body:not(.page-admin) .col-left .side-link:hover .icon{color:var(--text)}body:not(.page-admin) .col-left .side-link.active{background:var(--brand-soft);color:var(--text);font-weight:600}body:not(.page-admin) .col-left .side-link.active .icon{color:var(--brand)}body:not(.page-admin) .col-left .side-link small{color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}body:not(.page-admin) .col-left .side-group{display:flex;align-items:center;gap:8px;margin:12px 9px 3px;padding:0;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em}body:not(.page-admin) .col-left .side-group::after{content:"";flex:1;height:1px;background:var(--line-soft)}body:not(.page-admin) .col-left .side-nav>.side-group:first-child{margin-top:3px}body:not(.page-admin) .col-left .side-section>h4{display:flex;align-items:center;gap:8px;margin:1px 0 3px;padding:1px 9px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}body:not(.page-admin) .col-left .side-section>h4::after{content:"";flex:1;height:1px;background:var(--line-soft)}@media(min-width:993px){body:not(.page-admin) .col-left .side-nav,body:not(.page-admin) .col-left .side-section{padding:7px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);margin-bottom:12px}body:not(.page-admin) .col-left .side-section{padding-bottom:5px}body:not(.page-admin) .col-left .side-link{min-height:32px;padding:6px 9px}}.tabre-sidebar-all{display:flex;justify-content:flex-end;margin:-6px 2px 14px}.tabre-sidebar-all-link{display:inline-flex;align-items:center;gap:2px;padding:3px 8px;border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.tabre-sidebar-all-link:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);text-decoration:none}.tabre-sidebar-all-link.is-active{color:var(--text);font-weight:700}.tabre-sidebar-all-link .icon{width:12px;height:12px}

/* tabre_signature */
.tabre-signature{margin-top:12px;padding:8px 12px;background:var(--panel-2);border-color:var(--line-soft);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.65}.tabre-signature-body>:first-child{margin-top:0}.tabre-signature-body>:last-child{margin-bottom:0}.tabre-signature-body img{max-width:100%;height:auto}

/* tabre_space */
.tabre-space-blog{display:flex;flex-direction:column;gap:12px}.tabre-space-post h3{margin:0 0 2px;font-size:16px}.tabre-space-post p{margin:0}.tabre-space-excerpt{margin:6px 0;color:var(--text-muted);font-size:var(--font-size-sm)}.tabre-space-entry .card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.tabre-space-entry h1{margin:0;font-size:22px}.tabre-space-newalbum{display:flex;gap:8px;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.tabre-space-newalbum input{flex:1;background:var(--panel)}.tabre-space-albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.tabre-space-album{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--text)}.tabre-space-cover{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--radius-sm);background:var(--panel-2);overflow:hidden;color:var(--text-muted)}.tabre-space-cover img{width:100%;height:100%;object-fit:cover}.tabre-space-cover .icon{width:30px;height:30px}.tabre-space-album small{color:var(--text-muted);font-size:var(--font-size-xs)}.tabre-space-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tabre-space-photo{position:relative;margin:0;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--panel-2)}.tabre-space-photo img{width:100%;height:100%;object-fit:cover;display:block}.tabre-space-del{position:absolute;inset-inline-end:6px;top:6px;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:15px;line-height:1;cursor:pointer}.tabre-space-upload{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.tabre-space-composer{margin-bottom:16px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.tabre-space-composer-head{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:var(--font-size-sm);font-weight:650;color:var(--text)}.tabre-space-composer-field textarea{width:100%;min-height:64px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical}.tabre-space-composer-field textarea:focus{border-color:var(--brand);outline:3px solid var(--brand-soft)}.tabre-space-composer-foot{display:flex;justify-content:flex-end;margin-top:10px}.tabre-space-wall,.tabre-space-feed{display:flex;flex-direction:column;gap:10px}.tabre-space-wallitem,.tabre-space-status{position:relative;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2)}.tabre-space-wallitem p,.tabre-space-status p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.tabre-space-wallwho{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm)}.tabre-space-wallwho small{color:var(--text-muted)}.tabre-space-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.tabre-space-link{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text)}.tabre-space-link:hover{background:var(--panel-2);color:var(--brand)}.tabre-space-link small{margin-inline-start:auto;color:var(--text-muted)}.tabre-space-links{display:flex;flex-direction:column;gap:4px}

/* tabre_status */
.tabre-status{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:var(--radius-pill,999px);font-size:var(--font-size-xs);font-weight:700;line-height:1.75;letter-spacing:.01em;white-space:nowrap;vertical-align:middle;margin-inline-end:8px;text-decoration:none;color:var(--tabre-status-text,#fff);background:var(--tabre-status-color,#6b7280)}.tabre-status .icon{width:13px;height:13px;flex:none}.tabre-status .icon-emoji{font-size:12px;line-height:1}.row-title .tabre-status{position:relative;top:-1px}.topic-title .tabre-status{margin-inline-end:10px}.tabre-status-set .dropdown-menu{min-width:190px}.tabre-status-set .dropdown-menu button.active{color:var(--brand);font-weight:700}

/* tabre_store */
/* TabRe Store — catalogue, item pages, collection, avatar frames and profile covers. */

.tabre-store-page {
  --store-radius: calc(var(--radius) * 1.15);
  --store-line: color-mix(in srgb, var(--text) 8%, transparent);
  --store-card: color-mix(in srgb, var(--card-bg, var(--panel)) 94%, transparent);
  --store-soft: var(--panel-2, var(--panel));
  display: flex;
  flex-direction: column;
  gap: 26px;
  min-width: 0;
}
.tabre-store-page h1,
.tabre-store-page h2,
.tabre-store-page p { overflow-wrap: anywhere; }

/* ---------- rarity ---------- */
[data-rarity="common"] { --rarity: #64748b; }
[data-rarity="uncommon"] { --rarity: #15803d; }
[data-rarity="rare"] { --rarity: #1d4ed8; }
[data-rarity="epic"] { --rarity: #7e22ce; }
[data-rarity="legendary"] { --rarity: #b45309; }
.tabre-store-rarity {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--rarity, #64748b);
  color: #fff;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .03em;
  line-height: 1.65;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ---------- hero ---------- */
.tabre-store-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(270px, .85fr);
  gap: clamp(18px, 3vw, 36px);
  align-items: center;
  padding: clamp(22px, 4vw, 44px);
  border: 1px solid color-mix(in srgb, var(--brand) 16%, var(--line));
  border-radius: calc(var(--radius) * 1.7);
  background:
    radial-gradient(110% 140% at 100% 0%, color-mix(in srgb, var(--brand) 15%, transparent), transparent 55%),
    linear-gradient(150deg, color-mix(in srgb, var(--panel) 94%, transparent), color-mix(in srgb, var(--panel-2, var(--panel)) 90%, transparent));
  box-shadow: var(--shadow-md, 0 18px 44px -30px rgba(15, 23, 42, .45));
  overflow: hidden;
}
.tabre-store-hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 13px; min-width: 0; }
.tabre-store-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.4;
  box-shadow: 0 8px 18px -14px color-mix(in srgb, var(--brand) 70%, transparent);
}
.tabre-store-kicker .icon { width: 13px; height: 13px; }
.tabre-store-hero h1 {
  margin: 0;
  max-width: 15ch;
  font-size: clamp(29px, 4.6vw, 46px);
  line-height: 1.05;
  letter-spacing: -.04em;
}
.tabre-store-hero-copy > p { margin: 0; max-width: 54ch; color: var(--text-muted); font-size: var(--font-size-md, 15px); line-height: 1.6; }
.tabre-store-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 2px; }
.tabre-store-hero-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 440px;
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--store-line);
}
.tabre-store-hero-stats span {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 0 16px;
  border-left: 1px solid var(--store-line);
  color: var(--text-muted);
  font-size: var(--font-size-xs, 12px);
  line-height: 1.6;
}
.tabre-store-hero-stats span:first-child { padding-left: 0; border-left: 0; }
.tabre-store-hero-stats span:last-child { padding-right: 0; }
.tabre-store-hero-stats b { color: var(--text); font-size: 15px; font-weight: 750; letter-spacing: -.01em; }
.tabre-store-balance {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  background: #b45309;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 10px 20px -14px rgba(180, 83, 9, .7);
}
.tabre-store-balance .icon { width: 15px; height: 15px; color: #fff; }
.tabre-store-balance b { font-size: var(--font-size-sm, 13px); }
.tabre-store-balance small { color: #fff; font-size: 12px; font-weight: 600; opacity: .78; }

.tabre-store-hero-art { position: relative; display: grid; place-items: center; min-height: 300px; }
.tabre-store-hero-stage { position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(12px, 2vw, 20px); padding: 10px; }
.tabre-store-hero-stage::before {
  content: "";
  position: absolute;
  inset: -8% -12%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--brand) 20%, transparent), transparent 62%);
  filter: blur(8px);
}
.tabre-store-hero-cover {
  position: relative;
  z-index: 1;
  display: block;
  width: min(168px, 40%);
  flex: none;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, #fff 25%, transparent);
  border-radius: 16px;
  box-shadow: 0 26px 48px -26px rgba(15, 23, 42, .55);
}
.tabre-store-hero-cover img { display: block; width: 100%; height: auto; }
.tabre-store-hero-frames { position: relative; z-index: 1; display: flex; flex-direction: column; gap: clamp(10px, 1.6vw, 15px); }
.tabre-store-hero-frame {
  display: block;
  width: clamp(84px, 10vw, 116px);
  aspect-ratio: 1;
  padding: 8%;
  border: 1px solid var(--store-line);
  border-radius: 50%;
  background: color-mix(in srgb, var(--panel) 88%, transparent);
  box-shadow: 0 16px 30px -20px rgba(15, 23, 42, .5);
}
.tabre-store-hero-frame.is-2 { margin-left: 16px; }
.tabre-store-hero-frame img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* ---------- shelves and headings ---------- */
.tabre-store-shelf { display: flex; flex-direction: column; gap: 13px; }
.tabre-store-shelf-head,
.tabre-store-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.tabre-store-shelf-head h2 { margin: 0; font-size: clamp(20px, 2.3vw, 26px); letter-spacing: -.02em; }
.tabre-store-shelf-head p { margin: 4px 0 0; color: var(--text-muted); font-size: var(--font-size-sm, 13px); }
.tabre-store-shelf-head > a { display: inline-flex; align-items: center; gap: 4px; color: var(--brand); font-weight: 650; font-size: var(--font-size-sm, 13px); white-space: nowrap; }
.tabre-store-shelf-head > a .icon { width: 14px; height: 14px; }
.tabre-store-shelf-note { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; color: var(--brand); font-size: var(--font-size-xs, 12px); font-weight: 650; }
.tabre-store-shelf-note .icon { width: 13px; height: 13px; }
.tabre-store-page-head { align-items: flex-start; }
.tabre-store-page-head h1 { margin: 7px 0 0; font-size: clamp(28px, 4vw, 40px); line-height: 1.1; letter-spacing: -.035em; }
.tabre-store-page-head p { margin: 7px 0 0; max-width: 70ch; color: var(--text-muted); }
.tabre-store-back { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; color: var(--text-muted); font-size: var(--font-size-sm, 13px); font-weight: 600; }
.tabre-store-back:hover { color: var(--brand); }
.tabre-store-back .icon { width: 15px; height: 15px; }

/* ---------- catalogue controls ---------- */
.tabre-store-controls {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--store-line);
  border-radius: calc(var(--radius) * 1.4);
  background: color-mix(in srgb, var(--store-card) 88%, transparent);
  box-shadow: 0 14px 34px -30px rgba(15, 23, 42, .5);
}
.tabre-store-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tabre-store-toolbar > .tabs { flex-wrap: wrap; }
.tabre-store-toolbar-end { display: flex; align-items: center; gap: 8px; }
.tabre-store-cat-tabs { min-width: 0; }

/* The catalogue switch and the collection filters: one quiet segmented pill. */
.tabre-store-seg {
  display: inline-flex;
  gap: 3px;
  padding: 4px;
  border: 1px solid var(--store-line);
  border-radius: 999px;
  background: var(--store-card);
  max-width: 100%;
}
.tabre-store-seg .tab {
  padding: 7px 15px;
  border-radius: 999px;
  color: var(--text-muted);
  font-size: var(--font-size-sm, 13px);
  font-weight: 650;
  line-height: 1.3;
}
.tabre-store-seg .tab .icon { width: 15px; height: 15px; }
.tabre-store-seg .tab:hover { background: var(--store-soft); color: var(--text); }
.tabre-store-seg .tab.active {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 6px 14px -10px color-mix(in srgb, var(--brand) 70%, transparent);
}
.tabre-store-seg .tab.active:hover { background: var(--brand); color: #fff; }
.tabre-store-seg .tab.active .badge { background: rgba(255, 255, 255, .22); color: #fff; }

.tabre-store-search {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px 3px 3px 12px;
  border: 1px solid var(--store-line);
  border-radius: 999px;
  background: var(--store-card);
}
.tabre-store-search input[type="search"] {
  width: min(230px, 52vw);
  height: 32px;
  padding: 0 4px;
  border: 0;
  background: transparent;
  box-shadow: none;
  outline: none;
}
.tabre-store-search input[type="search"]::placeholder { color: #6b6b6b; opacity: 1; }
.tabre-store-search .btn { height: 32px; padding-inline: 11px; border-radius: 999px; }
.tabre-store-filterrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--store-line); }
.tabre-store-rarity-tabs { display: flex; flex-wrap: wrap; gap: 6px; overflow: visible; padding: 0; margin: 0; }
.tabre-store-rarity-tabs .tab {
  flex: none;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--store-line);
  border-radius: 999px;
  background: var(--store-card);
  color: var(--text-muted);
  font-size: var(--font-size-xs, 12px);
  font-weight: 650;
  line-height: 1.4;
}
.tabre-store-rarity-tabs .tab[data-rarity]::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: none;
  border-radius: 50%;
  background: var(--rarity, #64748b);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rarity, #64748b) 18%, transparent);
}
.tabre-store-rarity-tabs .tab:hover { border-color: color-mix(in srgb, var(--rarity, var(--brand)) 45%, var(--store-line)); color: var(--text); }
.tabre-store-rarity-tabs .tab.active {
  border-color: var(--rarity, var(--brand));
  background: var(--rarity, var(--brand));
  color: #fff;
  box-shadow: 0 8px 16px -12px color-mix(in srgb, var(--rarity, var(--brand)) 70%, transparent);
}
.tabre-store-filterend { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.tabre-store-afford {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border: 1px solid var(--store-line);
  border-radius: 999px;
  background: var(--store-card);
  color: var(--text-muted);
  font-size: var(--font-size-xs, 12px);
  font-weight: 650;
  line-height: 1.4;
}
.tabre-store-afford .icon { width: 14px; height: 14px; color: #b45309; }
.tabre-store-afford:hover { border-color: color-mix(in srgb, var(--brand) 45%, var(--store-line)); color: var(--text); }
.tabre-store-afford.active { border-color: var(--brand); background: var(--brand); color: #fff; }
.tabre-store-afford.active .icon { color: #fff; }
.tabre-store-sortbar { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.tabre-store-sort-label { margin-right: 5px; color: var(--text-subtle); font-size: var(--font-size-xs, 12px); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.tabre-store-sort { padding: 4px 9px; border-radius: 999px; color: var(--text-muted); font-size: var(--font-size-xs, 12px); font-weight: 650; line-height: 1.5; }
.tabre-store-sort:hover { background: var(--store-soft); color: var(--text); }
.tabre-store-sort.active { background: var(--store-soft); color: var(--text); box-shadow: inset 0 0 0 1px var(--store-line); }
.tabre-store-rarity-tabs .tab.active::before { background: #fff; box-shadow: none; }
.tabre-store-count { margin: 0; color: var(--text-muted); font-size: var(--font-size-xs, 12px); white-space: nowrap; }
.tabre-store-signin,
.tabre-store-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 15px 18px;
  border: 1px solid var(--store-line);
  border-radius: var(--store-radius);
  background: var(--store-card);
}
.tabre-store-signin { justify-content: flex-start; color: var(--text-muted); }
.tabre-store-signin p { margin: 0; }
.tabre-store-signin .icon { width: 22px; height: 22px; color: var(--brand); flex: none; }
.tabre-store-note { background: linear-gradient(135deg, color-mix(in srgb, #f59e0b 10%, transparent), transparent 60%), var(--store-card); }
.tabre-store-note > div { display: flex; align-items: flex-start; gap: 11px; }
.tabre-store-note > div > .icon { width: 23px; height: 23px; color: #b45309; flex: none; margin-top: 2px; }
.tabre-store-note h2 { margin: 0; font-size: var(--font-size-md, 15px); }
.tabre-store-note p { margin: 3px 0 0; color: var(--text-muted); font-size: var(--font-size-sm, 13px); }

/* ---------- item cards ---------- */
.tabre-store-grid { display: grid; gap: 14px; align-items: start; }
.tabre-store-grid.is-covers { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.tabre-store-grid.is-frames { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.tabre-store-grid.is-home { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tabre-store-item-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--store-line);
  border-radius: var(--store-radius);
  background: var(--store-card);
  box-shadow: 0 8px 22px -20px rgba(15, 23, 42, .4);
  overflow: hidden;
  color: var(--text);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
a.tabre-store-item-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--rarity, var(--brand)) 45%, var(--line));
  box-shadow: 0 16px 30px -22px rgba(15, 23, 42, .5);
  color: var(--text);
}
.tabre-store-item-art { position: relative; display: grid; place-items: center; overflow: hidden; background: var(--store-soft); }
.tabre-store-item-art > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.tabre-store-item-card:hover .tabre-store-item-art > img { transform: scale(1.025); }
.tabre-store-item-card.is-cover .tabre-store-item-art { aspect-ratio: 450 / 880; }
.tabre-store-item-card.is-frame .tabre-store-item-art {
  aspect-ratio: 1;
  padding: 9%;
  background: radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--rarity, var(--brand)) 14%, transparent), transparent 68%), var(--store-soft);
}
.tabre-store-item-card.is-frame .tabre-store-item-art > img { position: relative; z-index: 1; object-fit: contain; }
.tabre-store-item-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 11px 12px 13px; min-width: 0; }
.tabre-store-item-name {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: var(--text);
  font-size: var(--font-size-sm, 13px);
  font-weight: 700;
  line-height: 1.35;
  min-height: 2.7em;
  overflow-wrap: anywhere;
}
a.tabre-store-item-card:hover .tabre-store-item-name,
a.tabre-store-item-name:hover { color: var(--brand); }
.tabre-store-item-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; flex-wrap: wrap; margin-top: auto; }
.tabre-store-item-meta > .tabre-store-price { margin-left: auto; }
.tabre-store-price { display: inline-flex; align-items: center; gap: 4px; color: var(--text); font-weight: 750; line-height: 1.2; }
.tabre-store-price .icon { width: 14px; height: 14px; color: #b45309; flex: none; }
.tabre-store-price b { font-size: var(--font-size-sm, 13px); font-variant-numeric: tabular-nums; }
.tabre-store-price small { color: var(--text-muted); font-size: 12px; font-weight: 550; }
.tabre-store-price.is-large { gap: 7px; }
.tabre-store-price.is-large .icon { width: 26px; height: 26px; }
.tabre-store-price.is-large b { font-size: clamp(26px, 4vw, 36px); letter-spacing: -.03em; }
.tabre-store-price.is-large small { font-size: var(--font-size-sm, 13px); }
.tabre-store-flag {
  position: absolute;
  z-index: 2;
  top: 8px;
  left: 8px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  box-shadow: 0 4px 10px -5px rgba(15, 23, 42, .5);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .02em;
}
.tabre-store-flag .icon { width: 12px; height: 12px; }
.tabre-store-flag.is-equipped { background: var(--brand); }
.tabre-store-state { display: inline-flex; align-items: center; gap: 5px; color: var(--text-muted); font-size: 12px; font-weight: 650; }
.tabre-store-state.is-equipped { color: var(--brand); }
.tabre-store-state .icon { width: 13px; height: 13px; }
.tabre-store-item-body .action-form { width: 100%; margin-top: 2px; }
.tabre-store-item-body .btn { width: 100%; }

/* ---------- item page ---------- */
.tabre-store-item { gap: 22px; }
.tabre-store-item-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(310px, .95fr); gap: clamp(16px, 3vw, 30px); align-items: start; }
.tabre-store-preview {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 400px;
  padding: clamp(16px, 3vw, 30px);
  border: 1px solid var(--store-line);
  border-radius: calc(var(--radius) * 1.5);
  background:
    radial-gradient(80% 75% at 50% 18%, color-mix(in srgb, var(--rarity, var(--brand)) 13%, transparent), transparent 64%),
    var(--store-soft);
  overflow: hidden;
}
.tabre-store-preview.is-cover img { display: block; width: auto; max-width: 100%; max-height: min(64vh, 620px); border-radius: 14px; box-shadow: 0 26px 50px -28px rgba(15, 23, 42, .6); }
.tabre-store-preview.is-frame { min-height: 360px; }
.tabre-store-frame-demo { position: relative; width: min(340px, 78vw); aspect-ratio: 1; display: grid; place-items: center; }
.tabre-store-frame-demo-avatar { position: relative; z-index: 1; display: inline-flex; filter: drop-shadow(0 12px 24px rgba(15, 23, 42, .2)); }
.tabre-store-frame-demo-art { position: absolute; z-index: 2; left: 50%; top: 50%; width: calc(var(--s, 152px) * var(--f, 1.08)); max-width: none; height: auto; transform: translate(-50%, -50%); filter: drop-shadow(0 10px 18px rgba(15, 23, 42, .2)); pointer-events: none; }
.tabre-store-item-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--store-line);
  border-radius: calc(var(--radius) * 1.5);
  background: var(--store-card);
}
.tabre-store-item-labels { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.tabre-store-kind { display: inline-flex; align-items: center; gap: 4px; color: var(--text-muted); font-size: 12px; font-weight: 650; }
.tabre-store-kind .icon { width: 13px; height: 13px; }
.tabre-store-item-info h1 { margin: 0; font-size: clamp(26px, 3.6vw, 38px); line-height: 1.1; letter-spacing: -.035em; }
.tabre-store-item-desc { margin: 0; color: var(--text-muted); line-height: 1.6; }
.tabre-store-item-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; padding: 13px 0; border-top: 1px solid var(--store-line); border-bottom: 1px solid var(--store-line); }
.tabre-store-item-facts span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tabre-store-item-facts small { color: var(--text-subtle); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.tabre-store-item-facts b { font-size: var(--font-size-sm, 13px); overflow-wrap: anywhere; }
.tabre-store-buybox {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 11px;
  width: 100%;
  padding: 14px 0 0;
  border-top: 1px solid var(--store-line);
}
.tabre-store-buybox > .tabre-store-price { margin: 0 0 2px; }
.tabre-store-buybox .action-form { margin: 0; }
.tabre-store-buybox .btn-block { width: 100%; }
.tabre-store-item-state,
.tabre-store-short { display: flex; align-items: flex-start; gap: 9px; width: 100%; padding: 12px 13px; border-radius: var(--radius); background: color-mix(in srgb, var(--brand) 8%, transparent); color: var(--brand); }
.tabre-store-short { background: color-mix(in srgb, #d97706 9%, transparent); color: #b45309; }
.tabre-store-item-state > .icon,
.tabre-store-short > .icon { width: 19px; height: 19px; flex: none; margin-top: 1px; }
.tabre-store-item-state b,
.tabre-store-short b { display: block; color: var(--text); font-size: var(--font-size-sm, 13px); }
.tabre-store-item-state span,
.tabre-store-short span { display: block; margin-top: 2px; color: var(--text-muted); font-size: var(--font-size-xs, 12px); }
.tabre-store-hint { margin: -2px 0 0; color: var(--text-muted); font-size: var(--font-size-xs, 12px); text-align: center; }
.tabre-store-fine { display: flex; align-items: flex-start; gap: 7px; margin: 2px 0 0; color: var(--text-subtle); font-size: 12px; line-height: 1.5; }
.tabre-store-fine .icon { width: 14px; height: 14px; flex: none; margin-top: 1px; }
.tabre-store-shelf.is-related { padding-top: 4px; }

/* ---------- collection ---------- */
.tabre-store-equipped { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tabre-store-equip-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 15px;
  border: 1px solid var(--store-line);
  border-radius: var(--store-radius);
  background: var(--store-card);
}
.tabre-store-equip-card > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; }
.tabre-store-equip-card > header > span { display: inline-flex; align-items: center; gap: 5px; color: var(--text-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.tabre-store-equip-card > header .icon { width: 14px; height: 14px; }
.tabre-store-equip-card > header > a { color: var(--brand); font-size: var(--font-size-xs, 12px); font-weight: 650; }
.tabre-store-equip-art { position: relative; display: grid; place-items: center; width: 100%; min-height: 150px; }
.tabre-store-equip-card.is-cover .tabre-store-equip-art { min-height: 190px; }
.tabre-store-equip-card.is-cover .tabre-store-equip-art > img { width: auto; max-width: 100%; max-height: 210px; border-radius: 12px; box-shadow: 0 16px 30px -20px rgba(15, 23, 42, .55); }
.tabre-store-equip-avatar { position: relative; z-index: 1; display: inline-flex; }
.tabre-store-equip-frame { position: absolute; z-index: 2; left: 50%; top: 50%; width: calc(var(--s, 84px) * var(--f, 1.08)); max-width: none; height: auto; transform: translate(-50%, -50%); pointer-events: none; }
.tabre-store-equip-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-weight: 650; font-size: var(--font-size-sm, 13px); }
.tabre-store-equip-card .action-form { margin: 0; }
.tabre-store-equip-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 100%; min-height: 150px; border: 1px dashed var(--store-line); border-radius: var(--radius); color: var(--text-subtle); }
.tabre-store-equip-empty .icon { width: 26px; height: 26px; }
.tabre-store-equip-empty p { margin: 0; font-size: var(--font-size-sm, 13px); }

/* ---------- profile collection card ---------- */
.tabre-store-mini-collection { display: flex; flex-direction: column; gap: 9px; }
.tabre-store-mini-cover { display: block; overflow: hidden; border-radius: var(--radius); border: 1px solid var(--store-line); background: var(--store-soft); }
.tabre-store-mini-cover img { display: block; width: 100%; max-height: 150px; object-fit: cover; object-position: center 18%; }
.tabre-store-mini-frame { display: grid; place-items: center; width: 84px; height: 84px; margin-top: -38px; margin-left: 12px; border-radius: 50%; background: color-mix(in srgb, var(--panel) 84%, transparent); border: 1px solid var(--store-line); box-shadow: 0 8px 20px -14px rgba(15, 23, 42, .5); }
.tabre-store-mini-frame img { width: 70px; height: 70px; object-fit: contain; }
.tabre-store-mini-counts { display: flex; gap: 14px; color: var(--text-muted); font-size: var(--font-size-xs, 12px); }
.tabre-store-mini-counts span { display: inline-flex; align-items: baseline; gap: 4px; }
.tabre-store-mini-counts b { color: var(--text); font-size: var(--font-size-md, 15px); }
.tabre-store-mini-note { margin: 0; color: var(--text-muted); font-size: var(--font-size-xs, 12px); }

/* ---------- frames around avatars ---------- */
.tabre-store-avatar-frame {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: calc(var(--s, 32px) * var(--f, 1.08));
  max-width: none;
  height: auto;
  transform: translate(-50%, -50%);
  pointer-events: none;
  filter: drop-shadow(0 2px 5px rgba(15, 23, 42, .2));
  user-select: none;
}
.avatar-link:has(.tabre-store-avatar-frame) .online-dot { z-index: 4; }

/* ---------- admin ---------- */
.tabre-store-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.tabre-store-stat { padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.tabre-store-stat span { display: block; color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.tabre-store-stat b { display: block; margin-top: 2px; font-size: 25px; letter-spacing: -.03em; }
.tabre-store-admin-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.tabre-store-admin-actions .action-form { margin: 0; }
.tabre-store-admin-item { display: flex; align-items: center; gap: 9px; min-width: 190px; }
.tabre-store-admin-item img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; background: var(--panel-2); flex: none; }
.tabre-store-admin-noimg { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: var(--panel-2); color: var(--text-muted); flex: none; }
.tabre-store-admin-item b { display: block; line-height: 1.25; }
.tabre-store-admin-item small { display: block; margin-top: 1px; }
.tabre-store-admin-tip { display: flex; align-items: flex-start; gap: 7px; margin: 14px 0 0; color: var(--text-muted); font-size: var(--font-size-xs, 12px); }
.tabre-store-admin-tip .icon { width: 14px; height: 14px; flex: none; margin-top: 1px; }
.tabre-store-admin-preview { display: grid; place-items: center; min-height: 120px; margin-bottom: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.tabre-store-admin-preview.is-cover img { max-height: 220px; width: auto; max-width: 100%; border-radius: 10px; }
.tabre-store-admin-preview.is-frame img { width: 110px; height: 110px; object-fit: contain; }

/* ---------- motion & phones ---------- */
@media (prefers-reduced-motion: reduce) {
  .tabre-store-item-card,
  .tabre-store-item-art > img { transition: none; }
}
@media (max-width: 1024px) {
  .tabre-store-grid.is-home { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .tabre-store-hero { grid-template-columns: minmax(0, 1fr); }
  .tabre-store-hero-art { min-height: 0; }
  .tabre-store-hero-cover { width: min(122px, 32%); }
  .tabre-store-hero-frame { width: clamp(72px, 18vw, 96px); }
  .tabre-store-item-layout { grid-template-columns: minmax(0, 1fr); }
  .tabre-store-preview { min-height: 300px; }
  .tabre-store-buybox { order: 1; }
  .tabre-store-item-desc { order: 2; }
  .tabre-store-item-facts { order: 3; }
  .tabre-store-fine { order: 4; }
  .tabre-store-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .tabre-store-grid.is-home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tabre-store-page { gap: 18px; }
  .tabre-store-hero { padding: 18px; border-radius: var(--radius); }
  .tabre-store-hero h1 { font-size: clamp(27px, 8.6vw, 36px); }
  .tabre-store-hero-cover { width: min(104px, 30%); border-radius: 13px; }
  .tabre-store-hero-frame { width: 72px; }
  .tabre-store-hero-frame.is-2 { margin-left: 8px; }
  .tabre-store-hero-actions .btn { flex: 1 1 auto; justify-content: center; }
  .tabre-store-hero-stats { flex-wrap: nowrap; max-width: none; }
  .tabre-store-hero-stats span { flex: 1 1 0; min-width: 0; flex-direction: column; align-items: flex-start; gap: 1px; padding: 0 10px; line-height: 1.4; }
  .tabre-store-hero-stats span:first-child { padding-left: 0; }
  .tabre-store-hero-stats span:last-child { padding-right: 0; }
  .tabre-store-hero-stats b { font-size: 16px; }
  .tabre-store-controls { padding: 10px; gap: 9px; }
  .tabre-store-toolbar > .tabre-store-seg,
  .tabre-store-cat-tabs,
  .tabre-store-cat-tabs .tabs { width: 100%; }
  .tabre-store-seg .tab { flex: 1 1 0; justify-content: center; }
  .tabre-store-grid.is-covers { grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 10px; }
  .tabre-store-grid.is-frames { grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; }
  .tabre-store-item-body { padding: 9px 9px 11px; gap: 7px; }
  .tabre-store-item-card.is-frame .tabre-store-item-art { padding: 7%; }
  .tabre-store-item-name { font-size: 12px; }
  .tabre-store-price b { font-size: 12px; }
  .tabre-store-equipped { grid-template-columns: minmax(0, 1fr); }
  .tabre-store-toolbar { align-items: stretch; }
  .tabre-store-toolbar-end { width: 100%; }
  .tabre-store-search { width: 100%; }
  .tabre-store-search input[type="search"] { width: 100%; }
  .tabre-store-filterrow { align-items: flex-start; flex-direction: column; gap: 6px; }
  .tabre-store-filterend { justify-content: flex-start; width: 100%; }
  .tabre-store-page-head { align-items: flex-start; }
  .tabre-store-page-head .tabre-store-balance { align-self: flex-start; }
  .tabre-store-item-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .tabre-store-item-info { padding: 16px; }
  .tabre-store-buybox { padding: 12px 0 0; }
  .tabre-store-frame-demo { width: min(300px, 78vw); }
  .tabre-store-preview.is-cover img { max-height: 54vh; }
  .tabre-store-signin { align-items: flex-start; }
  .tabre-store-signin .btn { width: 100%; }
  .tabre-store-note { align-items: flex-start; }
  .tabre-store-note > .btn { width: 100%; }
  .tabre-store-stat-grid { gap: 7px; }
  .tabre-store-stat { padding: 10px 11px; }
  .tabre-store-stat b { font-size: 20px; }
  .tabre-store-admin-item { min-width: 150px; }
  .tabre-store-item-info h1 { font-size: 28px; }
  .tabre-store-buybox .btn-lg { width: 100%; }
}


/* tabre_tabbar */
.tabre-tabbar{display:none}@media (max-width:720px){.tabre-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset-inline:0;bottom:0;z-index:45;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -2px 12px var(--shadow);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.tabre-tabbar-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:46px;padding:2px;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:var(--font-size-xs);line-height:1.2}.tabre-tabbar-item .icon{width:20px;height:20px;flex:none}.tabre-tabbar-item.active{color:var(--brand);background:var(--brand-soft)}.tabre-tabbar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabre-tabbar-badge{position:absolute;top:0;inset-inline-end:calc(50% - 22px);min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}body:has(.tabre-tabbar){padding-bottom:calc(56px + env(safe-area-inset-bottom))}body:has(.tabre-tabbar) .form-actions.sticky{bottom:calc(56px + env(safe-area-inset-bottom))}body:has(.tabre-tabbar) .toast{bottom:calc(72px + env(safe-area-inset-bottom))}}

/* tabre_tags */
.tabre-tags-field{position:relative;display:block}
.tabre-tags-menu{position:absolute;z-index:60;inset-inline-start:0;top:calc(100% + 4px);width:100%;box-sizing:border-box;max-height:280px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow)}
.tabre-tags-option{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer}
.tabre-tags-option:hover,.tabre-tags-option.is-active{background:var(--brand-soft);color:var(--brand)}
.tabre-tags-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabre-tags-count{flex:none;font-size:var(--font-size-xs);color:var(--text-subtle)}
.tabre-tags-option:hover .tabre-tags-count,.tabre-tags-option.is-active .tabre-tags-count{color:inherit;opacity:.75}


/* tabre_titles */
/* TabRe Titles 1.0.6 */.tabre-titles-after{display:inline-flex;margin-inline-start:6px;vertical-align:middle}.tabre-titles-chip{position:relative;display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 10px 0 2px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ti) 22%,transparent);background:linear-gradient(180deg,var(--tc) 0%,var(--tc2) 100%);color:var(--ti);font-size:12px;font-weight:800;line-height:1;letter-spacing:.01em;white-space:nowrap;vertical-align:middle;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(0,0,0,.14),0 1px 2px rgba(0,0,0,.22);text-shadow:0 1px 0 rgba(255,255,255,.18)}.tabre-titles-chip.is-ink-light{text-shadow:0 1px 1px rgba(0,0,0,.35)}.tabre-titles-chip .tabre-titles-img,.tabre-titles-chip .icon{width:15px;height:15px;padding:1px;border-radius:50%;box-sizing:content-box;flex:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--ti) 30%,transparent),0 1px 2px rgba(0,0,0,.3)}.tabre-titles-chip-name{display:block}.tabre-titles-chip.is-lg{height:28px;padding:0 13px 0 3px;gap:7px;font-size:14px}.me-id .tabre-titles-after{margin-inline-start:5px}.me-id .tabre-titles-chip{width:18px;height:18px;padding:0;gap:0;justify-content:center;border-radius:50%}.me-id .tabre-titles-chip-name{display:none}.me-id .tabre-titles-chip .tabre-titles-img,.me-id .tabre-titles-chip .icon{width:14px;height:14px;padding:0;box-shadow:none}.newest-item .tabre-titles-after{display:none}@media(max-width:640px){.post-name:has(.tabre-titles-after){flex-wrap:wrap;row-gap:5px}.post-name:has(.tabre-titles-after) .user-link{flex:0 0 auto;max-width:100%}}.tabre-titles-chip.is-lg .tabre-titles-img,.tabre-titles-chip.is-lg .icon{width:20px;height:20px;padding:1px}.tabre-titles-img{display:block;object-fit:contain;flex:none}.tabre-titles-headright{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tabre-titles-headright .small{display:inline-flex;align-items:center;gap:5px}.tabre-titles-headright .icon{width:15px;height:15px}.tabre-titles-balance{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,#f59e0b 18%,var(--panel)),color-mix(in srgb,#f59e0b 7%,var(--panel)));border:1px solid color-mix(in srgb,#d97706 28%,var(--line));color:color-mix(in srgb,#92400e 62%,var(--text));font-weight:800;font-size:12px;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}.tabre-titles-balance .icon{width:14px;height:14px;color:color-mix(in srgb,#b45309 62%,var(--text))}.tabre-titles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.tabre-titles-item{--tc:#6366f1;--tc2:#4f46e5;position:relative;border-radius:14px;border-color:color-mix(in srgb,var(--tc) 24%,var(--line));background:radial-gradient(130% 100% at 8% -12%,color-mix(in srgb,var(--tc) 20%,transparent) 0%,transparent 52%),linear-gradient(165deg,color-mix(in srgb,var(--tc) 7%,var(--panel)) 0%,var(--panel) 48%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.16),0 16px 34px -28px color-mix(in srgb,var(--tc) 90%,#000);transition:transform .22s cubic-bezier(.2,.7,.2,1),border-color .22s,box-shadow .22s}.tabre-titles-item.is-worn{border-color:color-mix(in srgb,var(--tc) 55%,var(--line));box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.2),0 0 0 1px color-mix(in srgb,var(--tc) 36%,transparent),0 20px 38px -26px color-mix(in srgb,var(--tc) 85%,#000)}.tabre-titles-item.is-worn .tabre-titles-art{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 1px color-mix(in srgb,var(--tc) 44%,transparent),0 10px 22px -12px color-mix(in srgb,var(--tc) 90%,#000)}.tabre-titles-head{display:flex;align-items:center;gap:13px}.tabre-titles-art,.tabre-titles-worn-icon{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex:none;border-radius:15px;background:radial-gradient(120% 120% at 32% 18%,color-mix(in srgb,var(--tc) 34%,transparent) 0%,color-mix(in srgb,var(--tc) 12%,var(--panel-2)) 58%,var(--panel-2) 100%);border:1px solid color-mix(in srgb,var(--tc) 36%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px -12px color-mix(in srgb,var(--tc) 80%,#000)}.tabre-titles-art::before,.tabre-titles-art::after,.tabre-titles-worn-icon::before,.tabre-titles-worn-icon::after{content:"";position:absolute;width:10px;height:10px;pointer-events:none;opacity:.75}.tabre-titles-art::before,.tabre-titles-worn-icon::before{top:-5px;left:-5px;border-top:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-left:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-top-left-radius:7px}.tabre-titles-art::after,.tabre-titles-worn-icon::after{bottom:-5px;right:-5px;border-bottom:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-right:2px solid color-mix(in srgb,var(--tc) 62%,var(--text));border-bottom-right-radius:7px}.tabre-titles-art .tabre-titles-img,.tabre-titles-worn-icon .tabre-titles-img{width:36px;height:36px}.tabre-titles-copy{flex:1;min-width:0}.tabre-titles-copy h2{margin:0;font-size:16px;line-height:1.2;letter-spacing:-.01em;text-transform:none;font-weight:800}.tabre-titles-copy p{margin:3px 0 0}.tabre-titles-price{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,#f59e0b 20%,var(--panel-2)),color-mix(in srgb,#f59e0b 8%,var(--panel-2)));border:1px solid color-mix(in srgb,#d97706 30%,var(--line));color:color-mix(in srgb,#92400e 62%,var(--text));font-weight:800;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}.tabre-titles-price .icon{width:13px;height:13px;color:color-mix(in srgb,#b45309 62%,var(--text))}.tabre-titles-price.is-gift{background:color-mix(in srgb,var(--text) 6%,transparent);border-color:var(--line);color:var(--text-muted);box-shadow:none}.tabre-titles-price.is-gift .icon{color:var(--text-muted)}.tabre-titles-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--tc) 16%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--panel-2) 78%,transparent);box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}.tabre-titles-foot.is-solo{margin-top:12px;padding:0;border:0;background:none;box-shadow:none}.tabre-titles-do{display:flex;align-items:center;gap:8px;margin-inline-start:auto}.tabre-titles-state{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text-muted);font-size:11px;font-weight:700;white-space:nowrap}.tabre-titles-state .icon{width:13px;height:13px}.tabre-titles-state.is-worn{background:color-mix(in srgb,var(--success,#16a34a) 14%,transparent);color:color-mix(in srgb,var(--success,#16a34a) 62%,var(--text))}.tabre-titles-worn{position:relative;margin:0 0 16px;border-radius:15px;border-color:color-mix(in srgb,var(--tc) 40%,var(--line));background:radial-gradient(90% 160% at 6% 0%,color-mix(in srgb,var(--tc) 24%,transparent) 0%,transparent 58%),linear-gradient(120deg,color-mix(in srgb,var(--tc) 8%,var(--panel)) 0%,var(--panel) 60%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.18)}.tabre-titles-worn::before{content:"";position:absolute;top:0;left:26px;right:26px;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tc) 65%,transparent),transparent);opacity:.6}.tabre-titles-worn-body{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tabre-titles-worn-copy{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.tabre-titles-worn-body form{margin-inline-start:auto}.tabre-titles-wornline{margin:0 0 10px}.tabre-titles-mini{display:flex;flex-wrap:wrap;gap:7px}.tabre-titles-mini-item{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:radial-gradient(110% 110% at 30% 20%,color-mix(in srgb,var(--tc) 28%,transparent) 0%,color-mix(in srgb,var(--tc) 8%,var(--panel-2)) 100%);border:1px solid color-mix(in srgb,var(--tc) 34%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:transform .18s,border-color .18s}.tabre-titles-mini-item .tabre-titles-img{width:22px;height:22px}.tabre-titles-mini-more{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 6px;border-radius:10px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700}@media(hover:hover){.tabre-titles-item:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tc) 46%,var(--line));box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.2),0 22px 40px -26px color-mix(in srgb,var(--tc) 75%,#000)}.tabre-titles-mini-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--tc) 60%,var(--line))}}.tabre-titles-pick{position:relative}.tabre-titles-pick input{width:100%}.tabre-titles-results{position:absolute;z-index:40;inset-inline:0;top:calc(100% + 2px);max-height:260px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18))}.tabre-titles-results[hidden]{display:none}.tabre-titles-results button{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 9px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);text-align:start;cursor:pointer}.tabre-titles-results button:hover{background:var(--panel-2);color:var(--brand)}.tabre-titles-results small{color:var(--text-muted)}@media(max-width:560px){.tabre-titles-grid{grid-template-columns:minmax(0,1fr);gap:12px}.tabre-titles-item .card-body{padding:13px}.tabre-titles-head{gap:11px}.tabre-titles-art,.tabre-titles-worn-icon{width:46px;height:46px;border-radius:13px}.tabre-titles-art .tabre-titles-img,.tabre-titles-worn-icon .tabre-titles-img{width:31px;height:31px}.tabre-titles-foot{flex-wrap:wrap;row-gap:8px}}

/* tabre_verified */
.tabre-verified-mark{position:absolute;inset-inline-end:-2px;bottom:-2px;display:flex;align-items:center;justify-content:center;width:calc(var(--s,14px) + 6px);height:calc(var(--s,14px) + 6px);border-radius:50%;background:color-mix(in srgb,var(--c,#16a34a) 78%,#000);color:#fff;border:2px solid var(--panel,#fff);box-shadow:0 1px 3px rgba(0,0,0,.3);pointer-events:none}.tabre-verified-mark .icon{width:var(--s,14px);height:var(--s,14px);stroke-width:3}.tabre-verified-inline{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:color-mix(in srgb,var(--c,#16a34a) 78%,#000);color:#fff;vertical-align:-2px;margin-inline-start:3px}.tabre-verified-inline .icon{width:11px;height:11px;stroke-width:3.2}.tabre-verified-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-pill,999px);background:color-mix(in srgb,var(--c,#16a34a) 78%,#000);color:#fff;font-size:var(--font-size-xs);font-weight:700;line-height:1.7;margin-inline:4px 0}.tabre-verified-chip .icon{width:12px;height:12px;stroke-width:3}.tabre-verified-hr{border:0;border-top:1px solid var(--line);margin:14px 0}.tabre-verified-box .form-row{margin-top:10px}.tabre-verified-pick{position:relative}.tabre-verified-pick input{width:100%}.tabre-verified-results{position:absolute;z-index:40;inset-inline:0;top:calc(100% + 2px);max-height:260px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.18))}.tabre-verified-results[hidden]{display:none}.tabre-verified-results button{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 9px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);text-align:start;cursor:pointer}.tabre-verified-results button:hover{background:var(--panel-2);color:var(--brand)}.tabre-verified-results small{color:var(--text-muted)}

/* tabre_words */
/* TabRe Words — action pills and the bulk form on the admin page. */

.tabre-words-word { overflow-wrap: anywhere; }
.tabre-words-act {
    display: inline-block;
    padding: 1px 9px;
    border-radius: var(--radius-pill, 999px);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: 700;
    line-height: 1.75;
    white-space: nowrap;
}
.tabre-words-act.is-block { background: color-mix(in srgb, var(--danger) 84%, #000); }
.tabre-words-act.is-replace { background: color-mix(in srgb, var(--info) 80%, #000); }

.tabre-words-bulk { margin-top: 16px; }
.tabre-words-bulk .card-head h2 { margin: 0; font-size: var(--font-size-md); }
.tabre-words-bulk .card-body { padding-top: 12px; }
.tabre-words-bulk .form-actions.sticky { position: static; }

