/* agents_home */
/* 首页主张带：只作用于 .ah-hero，避免污染内核样式 */
.ah-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:26px;align-items:start;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);padding:22px 24px 20px;margin:0 0 12px}
.ah-hero.ah-hero-solo{grid-template-columns:minmax(0,1fr)}
.ah-main{min-width:0}
.ah-eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);letter-spacing:.16em;text-transform:uppercase;color:var(--brand);background:var(--brand-soft);border:1px solid rgba(31,136,61,.22);border-radius:999px;padding:3px 10px}
.ah-dot{width:5px;height:5px;border-radius:50%;background:var(--brand);display:inline-block}
.ah-title{margin:10px 0 6px;font-size:26px;line-height:1.24;font-weight:600;letter-spacing:-.01em;color:var(--text)}
.ah-sub{margin:0;font-size:var(--font-size-sm);line-height:1.7;color:var(--text-muted);max-width:52ch}
.ah-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.ah-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}
.ah-btn:hover{border-color:var(--text-disabled);background:var(--bg)}
.ah-btn.is-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.ah-btn.is-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.ah-metrics{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.ah-metrics b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xs);font-weight:600;color:var(--text)}
.ah-metrics i{font-style:normal;color:var(--text-disabled)}
.ah-entries{display:flex;flex-direction:column;gap:8px;min-width:0}
.ah-entry{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);text-decoration:none;color:var(--text);transition:border-color var(--transition-normal),background var(--transition-normal)}
.ah-entry:hover{border-color:var(--brand);background:var(--brand-soft)}
.ah-entry-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border-radius:var(--radius);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.ah-entry:hover .ah-entry-ico{color:var(--brand);border-color:rgba(31,136,61,.28);background:var(--panel)}
.ah-entry-icon{width:16px;height:16px;display:block}
.ah-entry-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.ah-entry-text b{font-size:var(--font-size-sm);font-weight:600;line-height:1.3}
.ah-entry-text small{font-size:var(--font-size-xxs);color:var(--text-subtle);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ah-entry-arrow{color:var(--text-disabled);font-size:var(--font-size-sm);transition:transform var(--transition-normal),color var(--transition-normal)}
.ah-entry:hover .ah-entry-arrow{color:var(--brand);transform:translateX(2px)}
/* 后台设置页：卡片分区 + 网格表单，紧凑无大留白 */
.ah-admin{max-width:760px}
.ah-admin-hint{margin:0 0 10px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.ah-sec{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);padding:12px 14px;margin:0 0 10px}
.ah-sec-head{margin:0 0 10px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}
.ah-togs{display:flex;gap:18px;flex-wrap:wrap}
.ah-tog{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--font-size-sm);color:var(--text);cursor:pointer}
.ah-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.ah-field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.ah-field--full{grid-column:1/-1}
.ah-field>span{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted)}
.ah-field input[type=text],.ah-field textarea{box-sizing:border-box;width:100%;max-width:none;height:34px;margin:0;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);font-family:inherit;color:var(--text)}
.ah-field textarea{height:auto;min-height:56px;padding:7px 10px;line-height:1.6;resize:vertical}
.ah-field input:focus,.ah-field textarea:focus{outline:none;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--focus-halo)}
.ah-entry-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 0}
.ah-entry-row+.ah-entry-row{border-top:1px dashed var(--line-soft)}
.ah-entry-row:last-child{padding-bottom:0}
.ah-entry-row .ah-tog{flex:0 0 auto;min-width:78px}
.ah-entry-row .ah-tog input{margin:0}
.ah-in{box-sizing:border-box;flex:0 0 130px;width:130px;height:30px;margin:0;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);font-family:inherit;color:var(--text)}
.ah-in:focus{outline:none;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--focus-halo)}
.ah-in-desc{flex:1 1 170px;width:auto}
.ah-in-url{flex:1 1 190px;width:auto}
.ah-actions-bar{display:flex;gap:8px;margin:12px 0 0}
@media (max-width:640px){
  .ah-grid{grid-template-columns:1fr}
  .ah-in{flex-basis:120px}
  .ah-in-desc,.ah-in-url{flex-basis:100%}
}
@media (max-width:760px){
  .ah-hero{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 16px}
  .ah-title{font-size:20px}
  .ah-sub{font-size:var(--font-size-xs)}
  /* 移动端三入口一行三列平铺，不再横向滚动 */
  .ah-entries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;padding-bottom:0}
  .ah-entry{flex-direction:column;gap:6px;min-width:0;padding:10px 6px;text-align:center}
  .ah-entry-ico{width:28px;height:28px;flex-basis:28px}
  .ah-entry-text{align-items:center}
  .ah-entry-text b{font-size:var(--font-size-xs);white-space:nowrap}
  .ah-entry-text small{display:none}
  .ah-entry-arrow{display:none}
}
/* arcade */
.ar-hero{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-bottom:14px}
.ar-hero-main h2{margin:0 0 4px}
.ar-hero-main p{margin:0;color:var(--text-muted)}
.ar-hero-kpis{display:flex;gap:10px;flex-wrap:wrap}
.ar-hero-kpis>div{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);padding:8px 12px;min-width:96px}
.ar-hero-kpis span{display:block;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.ar-hero-kpis b{font-size:var(--font-size-md)}
.ar-hero-kpis em{display:block;font-size:var(--font-size-xxs);color:var(--text-subtle);font-style:normal}
.ar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.ar-card{position:relative;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);padding:12px 10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.ar-card-num{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.ar-card-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;min-height:2.7em}
.ar-badge{font-size:var(--font-size-xxs);color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:1px 8px}
.ar-badge.is-done{color:var(--text-subtle);background:transparent;border:1px solid var(--line-soft)}
.ar-card-btn{font-size:var(--font-size-sm);color:var(--brand);text-decoration:none;font-weight:600}
.ar-card-btn:hover{text-decoration:underline}
.ar-card-btn.is-off{color:var(--text-subtle);font-weight:400}
.ar-side h3,.ar-side-card h3{margin:0 0 8px;font-size:var(--font-size-sm)}
.ar-side p,.ar-side-card p{margin:0 0 6px;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.6}
.ar-side-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.ar-side-head span{font-weight:700}
/* 游玩页 */
.ar-play{display:flex;flex-direction:column;gap:10px}
.ar-play-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ar-play-bar h1{margin:0;font-size:var(--font-size-lg);flex:1;min-width:120px}
.ar-back{font-size:var(--font-size-sm);color:var(--brand);text-decoration:none;white-space:nowrap}
.ar-play-actions{display:flex;gap:8px;flex-wrap:wrap}
.ar-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--brand);background:var(--brand-soft);color:var(--brand);border-radius:var(--radius);padding:6px 12px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}
.ar-btn small{font-weight:400;color:var(--text-subtle)}
.ar-btn.is-done{border-color:var(--line-soft);background:transparent;color:var(--text-subtle);cursor:default}
.ar-btn.go{text-decoration:none}
.ar-btn[disabled]{opacity:.6;cursor:wait}
.ar-frame-wrap{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden}
.ar-frame{display:block;width:100%;height:min(78vh,720px);border:0}
/* 后台 */
.ar-kpis{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 16px}
.ar-form th{text-align:left;padding:6px 12px 6px 0;white-space:nowrap}
.ar-form td{padding:6px 0}
.ar-trend{margin:6px 0 14px;padding-left:18px;color:var(--text-muted);font-size:var(--font-size-sm)}
.ar-admin h2,.ar-admin h3{margin:14px 0 8px}
@media (max-width:640px){
  .ar-grid{grid-template-columns:repeat(2,1fr)}
  .ar-frame{height:min(70vh,560px)}
}
/* auth_theme */
/* 登录/注册页两栏版式：全部限定在 .at-split 内，不影响其他页面 */
.at-split{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:560px}
.at-brand{position:relative;display:flex;flex-direction:column;padding:34px 32px;color:#e6edf3;background-color:#0f172a;background-image:radial-gradient(rgba(255,255,255,.075) 1px,transparent 1px);background-size:20px 20px;background-position:0 0;overflow:hidden}
.at-light .at-brand{background-color:var(--brand-soft);background-image:radial-gradient(rgba(31,136,61,.10) 1px,transparent 1px);color:var(--text)}
.at-brand-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.at-logo{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-lg);font-weight:700;letter-spacing:-.02em}
.at-logo-dot{color:#3fb950}
.at-light .at-logo-dot{color:var(--brand)}
.at-tag{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);letter-spacing:.14em;text-transform:uppercase;color:#8b949e;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:2px 8px}
.at-light .at-tag{color:var(--text-subtle);border-color:rgba(31,136,61,.3)}
.at-brand-title{margin:26px 0 10px;font-size:24px;line-height:1.32;font-weight:600;letter-spacing:-.01em;color:#f0f6fc}
.at-light .at-brand-title{color:var(--text)}
.at-brand-desc{margin:0;font-size:var(--font-size-sm);line-height:1.75;color:#9aa7b4;max-width:34ch}
.at-light .at-brand-desc{color:var(--text-muted)}
.at-points{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.at-points li{display:flex;align-items:flex-start;gap:10px;font-size:var(--font-size-sm);line-height:1.6;color:#c9d4de}
.at-light .at-points li{color:var(--text)}
.at-num{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);color:#3fb950;padding-top:2px;flex:0 0 auto}
.at-light .at-num{color:var(--brand)}
.at-brand-foot{margin-top:auto;padding-top:24px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--font-size-xxs);color:#8b949e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.at-brand-foot b{color:#f0f6fc;font-size:var(--font-size-sm);font-weight:600}
.at-light .at-brand-foot{color:var(--text-subtle)}
.at-light .at-brand-foot b{color:var(--text)}
.at-brand-foot i{font-style:normal;color:#30363d}
.at-light .at-brand-foot i{color:var(--text-disabled)}
/* 右侧：去掉内核外壳与侧栏，只留表单本身 */
.at-form{padding:40px 44px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.at-split .home-shell{background:transparent;border:0;box-shadow:none;padding:0;border-radius:0}
.at-split .forum-layout{display:block}
.at-split .main-panel{background:transparent;overflow:visible}
.at-split .sidebar{display:none}
.at-split .auth-tabs{margin:0 0 18px;padding:0;border-bottom:1px solid var(--line-soft)}
.at-split .auth-tabs .tab{position:relative;padding:0 2px 10px;margin-right:20px;background:none;border:0;color:var(--text-subtle);font-size:var(--font-size-sm)}
.at-split .auth-tabs .tab.active{color:var(--text);font-weight:600}
.at-split .auth-tabs .tab.active::after{content:"";position:absolute;left:0;right:20px;bottom:-1px;height:2px;background:var(--brand)}
.at-split .auth-panel{margin:0;padding:0;border:0;background:transparent;max-width:400px}
.at-split .auth-panel h2{margin:0 0 4px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.at-sub{margin:0 0 20px;font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.6}
.at-split .auth-panel form{display:flex;flex-direction:column;gap:0}
.at-split .auth-panel .grid{grid-template-columns:minmax(0,1fr);gap:6px;margin:0 0 14px;align-items:stretch}
.at-split .auth-panel .grid>span{font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted)}
.at-split .auth-panel .grid>span small{display:block;margin-top:2px;font-weight:400;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.at-split .auth-panel input[type=text],.at-split .auth-panel input[type=password],.at-split .auth-panel input[type=email]{width:100%;height:40px;box-sizing:border-box;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:13px;color:var(--text);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.at-split .auth-panel input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-halo)}
.at-split .auth-panel input::placeholder{color:var(--text-disabled)}
.at-split .auth-panel button{width:100%;height:42px;margin-top:6px;border:1px solid var(--brand);border-radius:var(--radius);background:var(--brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal)}
.at-split .auth-panel button:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:#fff}
.at-tip{margin:16px 0 0;font-size:var(--font-size-xs);line-height:1.7;color:var(--text-subtle)}
.at-tip a{color:var(--brand);text-decoration:none;font-weight:600}
.at-tip a:hover{text-decoration:underline}
/* 后台设置页：卡片分区 + 网格表单，紧凑无大留白 */
.at-admin{max-width:760px}
.at-admin-hint{margin:0 0 10px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6;max-width:none}
.at-sec{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);padding:12px 14px;margin:0 0 10px}
.at-sec-head{margin:0 0 10px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}
.at-togs{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.at-tog{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--font-size-sm);color:var(--text);cursor:pointer}
.at-tog input{margin:0}
.at-tog select{height:30px;margin:0;padding:0 26px 0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);color:var(--text)}
.at-tog-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted)}
.at-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.at-field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.at-field--full{grid-column:1/-1}
.at-field>span{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted)}
.at-field input[type=text],.at-field textarea{box-sizing:border-box;width:100%;max-width:none;height:34px;margin:0;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);font-family:inherit;color:var(--text)}
.at-field textarea{height:auto;min-height:56px;padding:7px 10px;line-height:1.6;resize:vertical}
.at-field input:focus,.at-field textarea:focus{outline:none;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--focus-halo)}
.at-actions-bar{display:flex;gap:8px;margin:12px 0 0}
@media (max-width:640px){
  .at-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .at-split{grid-template-columns:minmax(0,1fr);min-height:0}
  .at-brand{padding:20px;gap:2px}
  .at-brand-title{margin:14px 0 6px;font-size:19px}
  .at-brand-desc{font-size:var(--font-size-xs);max-width:none}
  .at-points{display:none}
  .at-brand-foot{margin-top:12px;padding-top:0}
  .at-form{padding:22px 18px 26px}
  .at-split .auth-panel h2{font-size:19px}
}
/* batch_management */
.batch-management-trash-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:14px}.batch-management-trash-row .admin-row-check{width:38px;height:22px;margin:0}.batch-management-trash-main{gap:9px}.batch-management-trash-title{display:flex;align-items:center;gap:7px;min-width:0}.batch-management-trash-title strong{min-width:0;overflow:hidden;color:var(--text);font-size:var(--font-size-md);line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.batch-management-trash-type{display:inline-flex;align-items:center;flex:0 0 auto;min-height:22px;padding:0 7px;border:1px solid var(--brand-soft);border-radius:5px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:700;line-height:1}.batch-management-trash-id{flex:0 0 auto;color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--font-size-xs)}.batch-management-trash-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.4}.batch-management-trash-meta time:before{content:"·";margin-right:7px;color:var(--text-subtle)}.batch-management-trash-details summary{width:max-content;max-width:100%;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer}.batch-management-trash-details summary:hover{color:var(--brand)}.batch-management-trash-details .admin-trash-data{max-height:320px;margin:9px 0 0;padding:10px;overflow:auto;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.batch-management-trash-ops{align-self:start;margin:0}.batch-management-trash-ops .post-action-form{margin:0}.batch-management-trash-ops button{min-height:32px;margin:0;white-space:nowrap}@media(max-width:720px){.batch-management-trash-row{grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}.batch-management-trash-title{align-items:flex-start;flex-wrap:wrap;gap:6px}.batch-management-trash-title strong{flex:1 1 130px;white-space:normal;overflow-wrap:anywhere}.batch-management-trash-id{margin-top:3px}.batch-management-trash-ops{display:flex!important;grid-column:1!important;align-items:center;gap:8px!important;width:100%;margin:2px 0 0!important;overflow:visible!important}.batch-management-trash-ops .post-action-form{flex:1 1 96px}.batch-management-trash-ops button{width:100%;justify-content:center}.batch-management-trash-ops .admin-row-check{flex:0 0 38px}.batch-management-trash-details .admin-trash-data{max-height:240px;padding:9px}}
/* breakout */
.br-stage{display:flex;flex-direction:column;gap:10px}
.br-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.br-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.br-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.br-wrap{position:relative;display:flex;justify-content:center;border-radius:var(--radius);background:#0b1420;border:1px solid var(--line-soft);overflow:hidden}
.br-canvas{display:block;width:100%;max-width:620px;height:auto;touch-action:none;cursor:none}
.br-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(6,12,20,.74);color:#e6f0fa;font-size:var(--font-size-sm);text-align:center;padding:16px;line-height:1.7}
.br-overlay[hidden]{display:none}
.br-overlay b{font-size:20px}
.br-controls{display:flex;gap:10px;justify-content:center}
.br-dir{appearance:none;width:76px;height:38px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);font-size:16px;cursor:pointer}
.br-dir:active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.br-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.br-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.br-status.is-win{color:var(--success)}.br-status.is-lose{color:var(--danger)}
.br-actions{display:flex;gap:8px}
.br-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;text-decoration:none}
.br-btn:hover{background:var(--brand-hover);color:#fff}
.br-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.br-btn[disabled]{opacity:.5;cursor:not-allowed}
.br-card{overflow:hidden;margin-bottom:12px}
.br-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.br-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.br-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.br-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.br-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.br-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.br-rank-row.is-me{background:var(--brand-soft)}
.br-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle)}
.br-rank-no-1{color:#d9a020}.br-rank-no-2{color:#9aa4b2}.br-rank-no-3{color:#b5793f}
.br-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.br-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.br-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-rank-main a:hover{color:var(--brand)}
.br-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.br-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.br-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.br-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.br-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.br-mine span{color:var(--text-muted);font-size:var(--font-size-xxs)}
.br-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.br-help{padding:10px 14px 14px}
.br-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.br-help b{color:var(--text)}
.sidebar-card.br-card{padding:0}
.br-card-wrap{padding:10px 14px 12px}
.br-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.br-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.br-card-more:hover{color:var(--brand)}
.br-card-body{display:flex;gap:8px}
.br-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.br-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.br-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.br-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.br-card-btn:hover{background:var(--brand-hover);color:#fff}
.br-admin{display:flex;flex-direction:column;gap:12px}
.br-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.br-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.br-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.br-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.br-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.br-admin-panel{padding:0 0 12px}
.br-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.br-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.br-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.br-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.br-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.br-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.br-admin-field input,.br-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.br-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.br-admin-actions{padding:0 14px}
.br-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.br-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.br-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.br-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.br-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.br-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.br-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.br-admin-table-wrap{overflow-x:auto;padding:0 14px}
.br-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.br-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.br-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.br-admin-table a{color:var(--text);text-decoration:none}
.br-admin-table a:hover{color:var(--brand)}
.br-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.br-admin-tag.is-won{color:var(--success);border-color:var(--success)}
.br-admin-tag.is-over{color:var(--danger);border-color:var(--danger)}
.br-admin-tag.is-invalid{color:var(--danger);border-color:var(--danger)}
.br-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.br-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.br-admin-help{padding:12px 14px 0}
.br-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.br-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.br-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.br-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.br-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* cat_game */
.cat-game-stage{display:flex;flex-direction:column;gap:12px}
.cat-game-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cat-game-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.cat-game-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-game-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.cat-game-wrap{position:relative;display:flex;justify-content:center;padding:14px 10px;border-radius:var(--radius);background:#fff;border:1px solid var(--line-soft);overflow:hidden}
.cat-game-board{width:100%;max-width:570px;min-width:0;line-height:0}
.cat-game-board svg{width:100%;height:auto;display:block}
.cat-game-dot{fill:#b3d9ff;transition:fill .12s ease}
.cat-game-dot.is-wall{fill:#003366}
.cat-game-board.is-live .cat-game-dot:not(.is-wall){cursor:pointer}
.cat-game-board.is-live .cat-game-dot:not(.is-wall):hover{fill:#8fc1ea}
.cat-game-cat{pointer-events:none;transition:transform .2s ease-out,opacity .45s ease}
.cat-game-top-text{font-size:20px;fill:#000;text-anchor:middle;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;pointer-events:none}
.cat-game-reset-text{font-size:20px;fill:#000;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;cursor:pointer}
.cat-game-reset-text:hover{opacity:.65}
.cat-game-credit-text{font-size:16px;fill:#000;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;pointer-events:none}
.cat-game-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cat-game-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.cat-game-status.is-win{color:var(--success)}
.cat-game-status.is-lose{color:var(--danger)}
.cat-game-actions{display:flex;gap:8px}
.cat-game-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .15s ease,opacity .15s ease}
.cat-game-btn:hover{background:var(--brand-hover)}
.cat-game-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.cat-game-btn.ghost:hover{color:var(--danger);border-color:var(--danger);background:transparent}
.cat-game-card{overflow:hidden}
.cat-game-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.cat-game-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.cat-game-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.cat-game-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.cat-game-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.cat-game-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.cat-game-rank-row.is-me{background:var(--brand-soft)}
.cat-game-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.cat-game-rank-no-1{color:#d9a020}
.cat-game-rank-no-2{color:#9aa4b2}
.cat-game-rank-no-3{color:#b5793f}
.cat-game-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.cat-game-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.cat-game-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-game-rank-main a:hover{color:var(--brand)}
.cat-game-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-game-rank-main b{color:var(--text-muted);font-weight:600}
.cat-game-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.cat-game-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.cat-game-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.cat-game-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.cat-game-mine span{color:var(--text-muted);font-size:var(--font-size-xxs);line-height:1.3}
.cat-game-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}
.cat-game-help{padding:10px 14px 14px}
.cat-game-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.cat-game-help b{color:var(--text);font-weight:600}
.sidebar-card.cat-game-card{padding:0}
.cat-game-card-wrap{padding:10px 14px 12px}
.cat-game-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.cat-game-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.cat-game-card-more:hover{color:var(--brand)}
.cat-game-card-body{display:flex;gap:8px}
.cat-game-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.cat-game-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.cat-game-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.cat-game-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0;transition:background .15s ease}
.cat-game-card-btn:hover{background:var(--brand-hover);color:#fff}
.cat-game-admin{display:flex;flex-direction:column;gap:12px}
.cat-game-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.cat-game-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.cat-game-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.cat-game-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.cat-game-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.cat-game-admin-panel{padding:0 0 12px}
.cat-game-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.cat-game-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.cat-game-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.cat-game-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.cat-game-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.cat-game-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.cat-game-admin-field input,.cat-game-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.cat-game-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.cat-game-admin-actions{padding:0 14px}
.cat-game-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.cat-game-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.cat-game-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.cat-game-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.cat-game-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.cat-game-admin-inline:last-child{border-bottom:0}
.cat-game-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.cat-game-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.cat-game-admin-table-wrap{overflow-x:auto;padding:0 14px}
.cat-game-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.cat-game-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.cat-game-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.cat-game-admin-table tr:last-child td{border-bottom:0}
.cat-game-admin-table a{color:var(--text);text-decoration:none}
.cat-game-admin-table a:hover{color:var(--brand)}
.cat-game-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.cat-game-admin-tag.is-win{color:var(--success);border-color:var(--success)}
.cat-game-admin-tag.is-lose{color:var(--danger);border-color:var(--danger)}
.cat-game-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.cat-game-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.cat-game-admin-help{padding:12px 14px 0}
.cat-game-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.cat-game-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.cat-game-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.cat-game-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.cat-game-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cat-game-wrap{padding:8px 4px}
}
/* code-highlight */
/* ===== 后台设置 ===== */
.code-highlight-admin-form{max-width:none;gap:16px}
.code-highlight-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.code-highlight-admin-section{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.code-highlight-admin-section-head{display:grid;gap:3px;padding-bottom:2px}
.code-highlight-admin-section-head strong{color:var(--text);font-size:var(--font-size-md);line-height:1.4}
.code-highlight-admin-section-head span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
.code-highlight-admin-form .code-highlight-admin-field{grid-template-columns:minmax(0,1fr);gap:5px;min-width:0;margin:0;padding:9px 0;border-top:1px solid var(--line-soft)}
.code-highlight-admin-form .code-highlight-admin-section-head+.code-highlight-admin-field{border-top:0}
.code-highlight-admin-form .code-highlight-admin-field>span{padding-top:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.45}
.code-highlight-admin-form .code-highlight-admin-field>span small{margin-top:2px;color:var(--text-subtle);line-height:1.4}
.code-highlight-admin-form .code-highlight-admin-field input,.code-highlight-admin-form .code-highlight-admin-field select{box-sizing:border-box;width:100%;max-width:none}
.code-highlight-admin-custom-cdn[hidden]{display:none}
.code-highlight-admin-resource{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 8px;min-width:0;padding:10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel)}
.code-highlight-admin-resource strong{grid-column:1/-1;color:var(--text);font-size:var(--font-size-sm);line-height:1.4}
.code-highlight-admin-resource span{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}
.code-highlight-admin-resource code{min-width:0;overflow-wrap:anywhere;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5}
.code-highlight-admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:2px}
.code-highlight-admin-actions button{margin:0}
.code-highlight-admin-actions span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
@media(max-width:720px){
.code-highlight-admin-grid{grid-template-columns:1fr}
.code-highlight-admin-section{padding:12px}
.code-highlight-admin-actions{align-items:stretch;flex-direction:column}
.code-highlight-admin-actions button{width:100%}
}

/* ===== 高亮与行号样式 ===== */
html[data-code-highlight-theme-tone="light"] .post-content pre {
    border-color: var(--line) !important;
    background: var(--panel) !important;
    color: var(--text) !important;
}
.code-highlight-block > code {
    white-space: pre-wrap;
    word-break: break-word;
}
.post-content .code-highlight-block {
    position: relative;
    padding-top: 2.6em;
    overflow: auto;
}

.code-highlight-block > .code-highlight-block-lang {
    position: absolute;
    top: 0.4em;
    left: 0.4em;
    padding: 0.2em 0.8em;
    background: rgba(17, 24, 39, .62);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-color: rgba(255, 255, 255, .28);
    color: rgba(255, 255, 255, .92);
    font-size: var(--font-size-xs, 12px);
    font-weight: 600;
    border-radius: 6px;
    text-transform: lowercase;
    user-select: none;
    pointer-events: none;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .18);
    border: 1px solid rgba(255, 255, 255, .28);
}
html[data-code-highlight-theme-tone="light"] .code-highlight-block > .code-highlight-block-lang {
    background: rgba(255, 255, 255, .9);
    border-color: var(--line-soft);
    color: var(--text-subtle);
    box-shadow: 0 1px 4px var(--shadow-base);
}

.code-highlight-line-numbers {
    display: block;
    counter-reset: code-highlight-line;
}
.code-highlight-line-number {
    position: relative;
    display: block;
    min-height: 1.4em;
    padding-left: calc(var(--code-highlight-line-number-width, 2ch) + 0.95em);
    white-space: pre-wrap;
    word-break: break-word;
}
.code-highlight-line-number::before {
    position: absolute;
    left: 0;
    width: var(--code-highlight-line-number-width, 2ch);
    padding-right: 0.45em;
    border-right: 1px solid var(--inverse-border);
    color: var(--text-disabled);
    content: counter(code-highlight-line);
    counter-increment: code-highlight-line;
    text-align: right;
    user-select: none;
    pointer-events: none;
}
html[data-code-highlight-theme-tone="light"] .code-highlight-line-number::before {
    border-right-color: var(--line-soft);
    color: var(--text-subtle);
}
.code-highlight-block.code-highlight-line-numbers-pre {
    overflow: auto;
}

.code-highlight-block > code.hljs {
    white-space: pre-wrap !important;
    word-break: break-word !important;
    background: var(--code-highlight-theme-background, transparent) !important;
    color: var(--code-highlight-theme-color, inherit) !important;
}

.code-highlight-block.code-highlight-loading {
    position: relative;
    min-height: 3em;
}
.code-highlight-block.code-highlight-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.5em;
    height: 1.5em;
    margin: -0.75em 0 0 -0.75em;
    border: 2px solid var(--line-soft);
    border-top-color: var(--brand);
    border-radius: 50%;
    animation: code-highlight-spin 0.8s linear infinite;
    pointer-events: none;
}
@keyframes code-highlight-spin {
    to { transform: rotate(360deg); }
}

/* ===== 复制按钮样式 ===== */
.code-highlight-copy-wrap {
    position: relative;
    display: block;
    min-width: 0;
    margin: 10px 0;
}
.code-highlight-copy-wrap > pre {
    margin: 0;
}
.code-highlight-copy-button {
    position: absolute;
    z-index: 2;
    top: 9px;
    right: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    min-width: 32px !important;
    height: 32px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 6px;
    background: rgba(17, 24, 39, .58);
    color: rgba(255, 255, 255, .82);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-3px);
    cursor: pointer;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: opacity var(--transition-normal), transform var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal);
}
.code-highlight-copy-button svg {
    display: block;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.code-highlight-copy-wrap:hover > .code-highlight-copy-button,
.code-highlight-copy-wrap:focus-within > .code-highlight-copy-button,
.code-highlight-copy-button.code-highlight-copy-copied,
.code-highlight-copy-button.code-highlight-copy-failed {
    opacity: 1;
    pointer-events: auto;
    transform: none;
}
.code-highlight-copy-button:hover {
    border-color: rgba(255, 255, 255, .38);
    background: rgba(17, 24, 39, .82);
    color: #fff;
}
.code-highlight-copy-button:focus-visible {
    opacity: 1;
    pointer-events: auto;
    transform: none;
    outline: 2px solid var(--focus-ring);
    outline-offset: 2px;
}
.code-highlight-copy-button.code-highlight-copy-copied {
    border-color: var(--success);
    color: var(--success);
}
.code-highlight-copy-button.code-highlight-copy-failed {
    border-color: var(--danger);
    color: var(--danger);
}
html[data-code-highlight-theme-tone="light"] .code-highlight-copy-button {
    border-color: var(--line);
    background: rgba(255, 255, 255, .9);
    color: var(--text-subtle);
    box-shadow: 0 2px 8px var(--shadow-base);
}
html[data-code-highlight-theme-tone="light"] .code-highlight-copy-button:hover {
    border-color: var(--brand);
    background: var(--panel);
    color: var(--text);
}
html[data-code-highlight-theme-tone="light"] .code-highlight-copy-button.code-highlight-copy-copied {
    border-color: var(--success);
    color: var(--success);
}
html[data-code-highlight-theme-tone="light"] .code-highlight-copy-button.code-highlight-copy-failed {
    border-color: var(--danger);
    color: var(--danger);
}
@media (hover: none) {
    .code-highlight-copy-button {
        opacity: .68;
        pointer-events: auto;
        transform: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .code-highlight-copy-button {
        transition: none;
    }
}
/* column_theme */
/* ==========================================================================
   分栏主题（column_theme）
   去掉首页外层窗口，让主内容与侧栏成为并列的两栏；主内容独立成面板。
   ========================================================================== */

/* 1. 外层窗口退场：只保留分栏布局本身 */
.home-shell{
    background:none;
    border:none;
    border-radius:0;
    padding:0;
    box-shadow:none;
}

.home-shell .forum-layout{
    gap:12px;
}

/* 2. 移动端收紧整页留白 */
@media (max-width:720px){
    .wrap{
        padding:5px;
    }
}

/* 3. 主内容区独立成面板 */
.forum-main{
    padding:1rem;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
}

/* 4. 主面板不裁切浮层（下拉、弹层、固定定位菜单） */
.main-panel{
    overflow:visible;
}

/* 5. 回帖面板不再额外留边 */
.reply-panel{
    margin:0;
}
/* dino */
.dino-stage{display:flex;flex-direction:column;gap:12px}
.dino-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dino-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.dino-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dino-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.dino-wrap{position:relative;display:flex;justify-content:center;padding:14px 10px;border-radius:var(--radius);background:#fff;border:1px solid var(--line-soft);overflow:hidden}
.dino-wrap canvas{width:100%;max-width:640px;height:auto;display:block;image-rendering:pixelated;touch-action:manipulation}
.dino-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dino-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.dino-status.is-win{color:var(--success)}
.dino-status.is-lose{color:var(--danger)}
.dino-actions{display:flex;gap:8px}
.dino-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .15s ease}
.dino-btn:hover{background:var(--brand-hover)}
.dino-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.dino-btn.ghost:hover{color:var(--danger);border-color:var(--danger)}
.dino-card{overflow:hidden}
.dino-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.dino-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.dino-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.dino-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.dino-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.dino-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.dino-rank-row.is-me{background:var(--brand-soft)}
.dino-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.dino-rank-no-1{color:#d9a020}
.dino-rank-no-2{color:#9aa4b2}
.dino-rank-no-3{color:#b5793f}
.dino-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.dino-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.dino-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dino-rank-main a:hover{color:var(--brand)}
.dino-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4}
.dino-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.dino-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.dino-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.dino-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.dino-mine span{color:var(--text-muted);font-size:var(--font-size-xxs);line-height:1.3}
.dino-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}
.dino-help{padding:10px 14px 14px}
.dino-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.dino-help b{color:var(--text);font-weight:600}
.sidebar-card.dino-card{padding:0}
.dino-card-wrap{padding:10px 14px 12px}
.dino-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.dino-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.dino-card-more:hover{color:var(--brand)}
.dino-card-body{display:flex;gap:8px}
.dino-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.dino-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.dino-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.dino-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0;transition:background .15s ease}
.dino-card-btn:hover{background:var(--brand-hover);color:#fff}
.dino-admin{display:flex;flex-direction:column;gap:12px}
.dino-admin-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.dino-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.dino-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.dino-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.dino-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.dino-admin-panel{padding:0 0 12px}
.dino-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.dino-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.dino-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.dino-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.dino-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.dino-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.dino-admin-field input,.dino-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.dino-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.dino-admin-actions{padding:0 14px}
.dino-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.dino-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.dino-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.dino-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.dino-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.dino-admin-inline:last-child{border-bottom:0}
.dino-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.dino-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.dino-admin-table-wrap{overflow-x:auto;padding:0 14px}
.dino-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.dino-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.dino-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.dino-admin-table tr:last-child td{border-bottom:0}
.dino-admin-table a{color:var(--text);text-decoration:none}
.dino-admin-table a:hover{color:var(--brand)}
.dino-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.dino-admin-tag.is-ended{color:var(--success);border-color:var(--success)}
.dino-admin-tag.is-abandoned{color:var(--danger);border-color:var(--danger)}
.dino-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.dino-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.dino-admin-help{padding:12px 14px 0}
.dino-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.dino-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.dino-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.dino-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dino-wrap{padding:8px 4px}
}
/* empire */
.em-wrap{display:flex;flex-direction:column;gap:12px}
.em-hud{padding:12px}
.em-res{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.em-res-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.em-res-item span{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-res-item b{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.em-res-item b small{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:400;margin-left:2px}
.em-res-item em{font-style:normal;font-size:var(--font-size-xs);color:var(--success)}
.em-panel{padding:12px}
.em-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.em-panel-head strong{font-size:var(--font-size-base)}
.em-panel-head span{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-bd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.em-bd{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.em-bd-head{display:flex;gap:8px;align-items:flex-start}
.em-bd-icon{font-size:22px;line-height:1.2}
.em-bd-head b{display:block;font-size:var(--font-size-sm)}
.em-bd-head small{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-bd-level{font-size:var(--font-size-sm);font-weight:700}
.em-bd-effect{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-bd-cost{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-bd-timer{font-variant-numeric:tabular-nums;color:var(--warning);font-size:var(--font-size-sm)}
.em-bd-max{color:var(--success);font-size:var(--font-size-xs)}
.em-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);cursor:pointer;transition:filter .15s}
.em-btn:hover:not(:disabled){filter:brightness(1.06)}
.em-btn:disabled{opacity:.5;cursor:not-allowed}
.em-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}
.em-btn.is-off{opacity:.45}
.em-raid{display:flex;flex-direction:column;gap:8px}
.em-raid-note{color:var(--text-muted);font-size:var(--font-size-xs)}
#em-target{padding:10px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
#em-target .em-t-name b{font-size:var(--font-size-base)}
#em-target .em-t-meta{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-exch{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:var(--font-size-sm)}
.em-exch-note{margin-top:8px;color:var(--text-muted);font-size:var(--font-size-xs)}
.em-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.em-feed-row{display:flex;gap:8px;align-items:baseline;font-size:var(--font-size-sm);padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.em-feed-row span{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap}
.em-feed-row p{margin:0}
.em-feed-row.is-raid_in_lose p,.em-feed-row.is-raid_lose p{color:var(--danger)}
.em-feed-row.is-raid_win p,.em-feed-row.is-raid_in_win p{color:var(--success)}
.em-empty{color:var(--text-muted);font-size:var(--font-size-sm);padding:6px 2px;list-style:none}
.em-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.em-rank-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius);font-size:var(--font-size-sm)}
.em-rank-row.is-me{background:var(--bg);border:1px solid var(--line-soft)}
.em-rank-no{width:22px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.em-rank-row a{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-rank-row span{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-rank-row b{font-variant-numeric:tabular-nums}
.em-rank-head{margin-bottom:8px}
.em-help ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-sm);color:var(--text-muted)}
.em-help b{color:var(--text)}
.em-side-wrap{display:flex;flex-direction:column;gap:8px}
.em-side-head{display:flex;align-items:center;justify-content:space-between}
.em-side-head a{font-size:var(--font-size-xs)}
.em-side-body{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;text-align:center}
.em-side-body b{display:block;font-size:var(--font-size-base);font-variant-numeric:tabular-nums}
.em-side-body span{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-side-note{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.em-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.em-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-kpi b{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.em-kpi em{font-style:normal;color:var(--text-muted);font-size:var(--font-size-xs)}
.em-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.em-field{display:flex;flex-direction:column;gap:4px}
.em-field small{color:var(--text-muted);font-size:var(--font-size-xs)}
.em-actions{margin-top:12px}
.em-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.em-inline small{color:var(--text-muted)}
.em-tag{display:inline-block;padding:1px 8px;border-radius:99px;font-size:var(--font-size-xs)}
.em-tag.is-win{background:var(--success);color:#fff}
.em-tag.is-lose{background:var(--danger);color:#fff}
.em-table-wrap{overflow-x:auto}
.em-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.em-table th,.em-table td{padding:6px 8px;border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap}
@media (max-width:720px){
  .em-res{grid-template-columns:repeat(2,minmax(0,1fr))}
  .em-bd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* fulltext_search */
.fulltext-search-gate-text{margin:0 0 12px;font-size:var(--font-size-sm);color:var(--text);line-height:1.8;word-break:break-all}
.fulltext-search-gate-text b{color:var(--warning);font-variant-numeric:tabular-nums}
.fulltext-search-gate-actions{display:flex;gap:8px;justify-content:flex-end}
.fulltext-search-gate-actions .btn[disabled]{opacity:.55;cursor:not-allowed}
/* g2048 */
.g2048-stage{display:flex;flex-direction:column;gap:12px}
.g2048-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.g2048-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.g2048-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g2048-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.g2048-wrap{position:relative;display:flex;justify-content:center;padding:14px 10px;border-radius:var(--radius);background:#bbada0;border:1px solid var(--line-soft);overflow:hidden}
.g2048-board{position:relative;width:100%;max-width:460px;aspect-ratio:1;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:3.5%;padding:3.5%;box-sizing:border-box;border-radius:8px}
.g2048-cell{border-radius:6px;background:rgba(238,228,218,.35);display:flex;align-items:center;justify-content:center;font-weight:700;font-variant-numeric:tabular-nums;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif}
.g2048-cell.is-pop{animation:g2048pop .15s ease-out}
@keyframes g2048pop{from{transform:scale(.6);opacity:.4}to{transform:scale(1);opacity:1}}
.g2048-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.g2048-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.g2048-status.is-win{color:var(--success)}
.g2048-status.is-lose{color:var(--danger)}
.g2048-actions{display:flex;gap:8px}
.g2048-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}
.g2048-btn:hover{background:var(--brand-hover)}
.g2048-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.g2048-card{overflow:hidden}
.g2048-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.g2048-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.g2048-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.g2048-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.g2048-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.g2048-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.g2048-rank-row.is-me{background:var(--brand-soft)}
.g2048-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.g2048-rank-no-1{color:#d9a020}
.g2048-rank-no-2{color:#9aa4b2}
.g2048-rank-no-3{color:#b5793f}
.g2048-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.g2048-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.g2048-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g2048-rank-main a:hover{color:var(--brand)}
.g2048-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4}
.g2048-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.g2048-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.g2048-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.g2048-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.g2048-mine span{color:var(--text-muted);font-size:var(--font-size-xxs);line-height:1.3}
.g2048-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}
.g2048-help{padding:10px 14px 14px}
.g2048-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.g2048-help b{color:var(--text);font-weight:600}
.sidebar-card.g2048-card{padding:0}
.g2048-card-wrap{padding:10px 14px 12px}
.g2048-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.g2048-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.g2048-card-more:hover{color:var(--brand)}
.g2048-card-body{display:flex;gap:8px}
.g2048-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.g2048-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.g2048-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.g2048-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.g2048-card-btn:hover{background:var(--brand-hover);color:#fff}
.g2048-admin{display:flex;flex-direction:column;gap:12px}
.g2048-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.g2048-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.g2048-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.g2048-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.g2048-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.g2048-admin-panel{padding:0 0 12px}
.g2048-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.g2048-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.g2048-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.g2048-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.g2048-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.g2048-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.g2048-admin-field input,.g2048-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.g2048-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.g2048-admin-actions{padding:0 14px}
.g2048-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.g2048-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.g2048-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.g2048-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.g2048-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.g2048-admin-inline:last-child{border-bottom:0}
.g2048-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.g2048-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.g2048-admin-table-wrap{overflow-x:auto;padding:0 14px}
.g2048-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.g2048-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.g2048-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.g2048-admin-table tr:last-child td{border-bottom:0}
.g2048-admin-table a{color:var(--text);text-decoration:none}
.g2048-admin-table a:hover{color:var(--brand)}
.g2048-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.g2048-admin-tag.is-won{color:var(--success);border-color:var(--success)}
.g2048-admin-tag.is-over{color:var(--danger);border-color:var(--danger)}
.g2048-admin-tag.is-abandoned{color:var(--text-subtle)}
.g2048-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.g2048-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.g2048-admin-help{padding:12px 14px 0}
.g2048-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.g2048-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.g2048-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.g2048-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.g2048-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.g2048-wrap{padding:8px 4px}
}
/* games_hub */
.gh-shell{--gh-radius:var(--radius)}
.gh-hero{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px 22px;border-radius:var(--radius);background:linear-gradient(120deg,var(--brand-soft),transparent 70%);border:1px solid var(--line-soft);margin-bottom:12px}
.gh-hero-main h2{margin:0 0 6px;font-size:22px;color:var(--text)}
.gh-hero-main p{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.7;max-width:520px}
.gh-hero-kpis{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:8px}
.gh-hero-kpis div{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft);min-width:76px}
.gh-hero-kpis span{color:var(--text-subtle);font-size:var(--font-size-xxs);white-space:nowrap}
.gh-hero-kpis b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.gh-gift{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 16px;margin-bottom:14px;border-radius:var(--radius);background:var(--bg);border:1px dashed var(--line)}
.gh-gift.is-ready{border-color:var(--brand);background:var(--brand-soft)}
.gh-gift>span{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.gh-gift em{font-style:normal;color:var(--text-muted);font-size:var(--font-size-xs);flex:1 1 auto}
.gh-gift em b{color:var(--brand)}
.gh-gift-note{color:var(--text-subtle)!important}
.gh-section{margin-bottom:16px}
.gh-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;padding:0 2px}
.gh-section-head strong{font-size:var(--font-size-md);color:var(--text)}
.gh-section-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.gh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:12px}
.gh-card{display:flex;flex-direction:column;padding:14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-soft);transition:border-color .15s,transform .15s}
.gh-card:hover{border-color:var(--brand);transform:translateY(-1px)}
.gh-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.gh-icon{font-size:26px;line-height:1}
.gh-tag{font-size:var(--font-size-xxs);color:var(--text-subtle);background:var(--bg);border:1px solid var(--line-soft);border-radius:999px;padding:1px 8px}
.gh-name{margin:8px 0 4px;font-size:var(--font-size-md);color:var(--text)}
.gh-short{margin:0 0 10px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.6;min-height:34px}
.gh-bar{height:4px;border-radius:99px;background:var(--line-soft);overflow:hidden}
.gh-bar i{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .3s}
.gh-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:7px 0 10px;color:var(--text-subtle);font-size:var(--font-size-xxs)}
.gh-meta b{color:var(--text);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.gh-actions{display:flex;gap:6px;margin-top:auto}
.gh-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);padding:7px 12px;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;text-decoration:none;border:1px solid var(--line);background:transparent;color:var(--text-muted);white-space:nowrap}
.gh-btn.go{flex:1 1 auto;background:var(--brand);border-color:var(--brand);color:#fff}
.gh-btn.go:hover{background:var(--brand-hover)}
.gh-btn.extra{border-style:dashed}
.gh-btn.reset,.gh-btn.gift{border-color:var(--brand);color:var(--brand)}
.gh-btn:hover{border-color:var(--brand);color:var(--brand)}
.gh-btn.go:hover,.gh-btn.gift:hover{color:#fff;background:var(--brand-hover);border-color:var(--brand-hover)}
.gh-btn[disabled]{opacity:.5;cursor:not-allowed}
.gh-shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.gh-shop-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-soft)}
.gh-shop-icon{font-size:20px}
.gh-shop-item div{flex:1 1 auto;min-width:0}
.gh-shop-item b{display:block;color:var(--text);font-size:var(--font-size-sm);margin-bottom:2px}
.gh-shop-item p{margin:0;color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.gh-shop-item em{font-style:normal;color:var(--brand);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}
.gh-shop-note{margin:10px 2px 0;color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.6}
.gh-card-panel{overflow:hidden;margin-bottom:12px}
.gh-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.gh-panel-head strong{font-size:var(--font-size-sm);color:var(--text)}
.gh-panel-head span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.gh-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.gh-rank-row{display:flex;align-items:center;gap:8px;padding:6px;border-radius:var(--radius)}
.gh-rank-row.is-me{background:var(--brand-soft)}
.gh-rank-no{flex:0 0 16px;text-align:center;font-size:var(--font-size-xxs);font-weight:700;color:var(--text-subtle)}
.gh-rank-no-1{color:#d9a020}.gh-rank-no-2{color:#9aa4b2}.gh-rank-no-3{color:#b5793f}
.gh-avatar{width:24px;height:24px;border-radius:50%;flex:0 0 auto}
.gh-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.gh-rank-main a{color:var(--text);font-size:var(--font-size-xs);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gh-rank-main a:hover{color:var(--brand)}
.gh-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.gh-order-list{list-style:none;margin:0;padding:6px 14px 10px}
.gh-order-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dashed var(--line-soft);font-size:var(--font-size-xs);color:var(--text-muted)}
.gh-order-list li:last-child{border-bottom:0}
.gh-order-list em{font-style:normal;color:var(--text-subtle);white-space:nowrap}
.gh-empty-row{padding:14px 2px;list-style:none;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs)}
.gh-empty{padding:24px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-sm)}
.gh-help{padding:10px 14px 14px}
.gh-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.sidebar-card.gh-side-card{padding:0}
.gh-side-wrap{padding:10px 14px 12px}
.gh-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.gh-side-head a{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.gh-side-head a:hover{color:var(--brand)}
.gh-side-body{display:flex;gap:8px}
.gh-side-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.gh-side-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.gh-side-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.gh-side-gift{display:block;margin-top:8px;padding:6px 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);text-decoration:none;line-height:1.5}
.gh-side-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.gh-side-btn:hover{background:var(--brand-hover);color:#fff}
.gh-admin{display:flex;flex-direction:column;gap:12px}
.gh-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.gh-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.gh-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.gh-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.gh-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.gh-admin-panel{padding:0 0 12px}
.gh-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.gh-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.gh-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.gh-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.gh-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.gh-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.gh-admin-field input,.gh-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.gh-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.gh-admin-actions{padding:0 14px}
.gh-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.gh-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.gh-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.gh-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.gh-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.gh-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:110px}
.gh-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.gh-admin-table-wrap{overflow-x:auto;padding:0 14px}
.gh-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.gh-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.gh-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.gh-admin-table tr:last-child td{border-bottom:0}
.gh-admin-table a{color:var(--text);text-decoration:none}
.gh-admin-table a:hover{color:var(--brand)}
.gh-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.gh-admin-help{padding:12px 14px 0}
.gh-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.gh-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.gh-hero{padding:16px}
.gh-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.gh-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.gh-short{min-height:0}
.gh-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.gh-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* gomoku */
.gomoku-stage{display:flex;flex-direction:column;gap:12px}
.gomoku-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gomoku-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.gomoku-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gomoku-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.gomoku-wrap{position:relative;display:flex;justify-content:center;padding:14px 10px;border-radius:var(--radius);background:#fff;border:1px solid var(--line-soft);overflow:hidden}
.gomoku-board{width:100%;max-width:640px;min-width:0;line-height:0}
.gomoku-board svg{width:100%;height:auto;display:block}
.gomoku-grid{stroke:#8a7350;stroke-width:1.1}
.gomoku-border{stroke:#5d4c33;stroke-width:2}
.gomoku-star{fill:#5d4c33}
.gomoku-cell{fill:transparent}
.gomoku-board.is-live .gomoku-cell{cursor:pointer}
.gomoku-board.is-live .gomoku-cell:hover{fill:rgba(0,0,0,.07)}
.gomoku-stone{pointer-events:none}
.gomoku-stone.is-new{animation:gomoku-pop .16s ease-out}
@keyframes gomoku-pop{from{transform:scale(.55);opacity:.4}to{transform:scale(1);opacity:1}}
.gomoku-last{pointer-events:none}
.gomoku-top-text{font-size:20px;fill:#000;text-anchor:middle;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;pointer-events:none}
.gomoku-reset-text{font-size:20px;fill:#000;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;cursor:pointer}
.gomoku-reset-text:hover{opacity:.65}
.gomoku-credit-text{font-size:16px;fill:#000;font-family:'Segoe UI',Arial,'PingFang SC','Microsoft YaHei',sans-serif;pointer-events:none}
.gomoku-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.gomoku-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.gomoku-status.is-win{color:var(--success)}
.gomoku-status.is-lose{color:var(--danger)}
.gomoku-actions{display:flex;gap:8px}
.gomoku-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .15s ease,opacity .15s ease}
.gomoku-btn:hover{background:var(--brand-hover)}
.gomoku-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.gomoku-btn.ghost:hover{color:var(--danger);border-color:var(--danger);background:transparent}
.gomoku-card{overflow:hidden}
.gomoku-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.gomoku-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.gomoku-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.gomoku-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.gomoku-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.gomoku-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.gomoku-rank-row.is-me{background:var(--brand-soft)}
.gomoku-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.gomoku-rank-no-1{color:#d9a020}
.gomoku-rank-no-2{color:#9aa4b2}
.gomoku-rank-no-3{color:#b5793f}
.gomoku-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.gomoku-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.gomoku-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gomoku-rank-main a:hover{color:var(--brand)}
.gomoku-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gomoku-rank-main b{color:var(--text-muted);font-weight:600}
.gomoku-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.gomoku-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.gomoku-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.gomoku-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.gomoku-mine span{color:var(--text-muted);font-size:var(--font-size-xxs);line-height:1.3}
.gomoku-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}
.gomoku-help{padding:10px 14px 14px}
.gomoku-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.gomoku-help b{color:var(--text);font-weight:600}
.sidebar-card.gomoku-card{padding:0}
.gomoku-card-wrap{padding:10px 14px 12px}
.gomoku-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.gomoku-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.gomoku-card-more:hover{color:var(--brand)}
.gomoku-card-body{display:flex;gap:8px}
.gomoku-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.gomoku-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.gomoku-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.gomoku-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0;transition:background .15s ease}
.gomoku-card-btn:hover{background:var(--brand-hover);color:#fff}
.gomoku-admin{display:flex;flex-direction:column;gap:12px}
.gomoku-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.gomoku-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.gomoku-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.gomoku-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.gomoku-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.gomoku-admin-panel{padding:0 0 12px}
.gomoku-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.gomoku-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.gomoku-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.gomoku-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.gomoku-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.gomoku-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.gomoku-admin-field input,.gomoku-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.gomoku-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.gomoku-admin-actions{padding:0 14px}
.gomoku-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.gomoku-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.gomoku-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.gomoku-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.gomoku-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.gomoku-admin-inline:last-child{border-bottom:0}
.gomoku-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.gomoku-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.gomoku-admin-table-wrap{overflow-x:auto;padding:0 14px}
.gomoku-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.gomoku-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.gomoku-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.gomoku-admin-table tr:last-child td{border-bottom:0}
.gomoku-admin-table a{color:var(--text);text-decoration:none}
.gomoku-admin-table a:hover{color:var(--brand)}
.gomoku-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.gomoku-admin-tag.is-win{color:var(--success);border-color:var(--success)}
.gomoku-admin-tag.is-lose{color:var(--danger);border-color:var(--danger)}
.gomoku-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.gomoku-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.gomoku-admin-help{padding:12px 14px 0}
.gomoku-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.gomoku-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.gomoku-hud{grid-template-columns:repeat(3,minmax(0,1fr))}
.gomoku-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.gomoku-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gomoku-wrap{padding:8px 4px}
}
/* like_coin */
.like-coin-form{display:inline-flex}.like-coin-form .like-coin-action.active{color:var(--text-muted);opacity:.55}.like-coin-form .like-coin-action.active:hover{color:var(--text-muted);opacity:.55}.like-coin-form .like-coin-action[data-like-coin-self="1"]{cursor:default}.like-coin-icon{width:14px;height:14px;flex:0 0 14px}.like-coin-icon path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.like-coin-action.active .like-coin-icon path{fill:currentColor}.like-coin-gate-unlocked-note{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}.like-coin-gate-unlocked-note:before{content:"点赞投币";padding:2px 5px;border:1px solid var(--line-soft);border-radius:3px;background:var(--bg);color:var(--brand);font-size:10px;font-weight:700;line-height:1.25}.like-coin-gate-locked{display:flex;align-items:center;justify-content:center;gap:6px;padding:18px 14px;margin:0;border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;text-align:center}.like-coin-dialog{display:grid;gap:14px}.like-coin-dialog p{margin:0;color:var(--text);font-size:var(--font-size-lg);line-height:1.65}.like-coin-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.like-coin-option{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:var(--font-size-md)}.like-coin-option input{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:var(--brand)}.like-coin-option span{min-width:0;overflow-wrap:anywhere}.like-coin-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.like-coin-dialog-actions button{margin:0}.like-coin-likes-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;margin:10px 0}.like-coin-likes-head h1{margin:0;font-size:var(--font-size-lg);font-weight:700;letter-spacing:-.01em;color:var(--text)}.like-coin-likes-total{color:var(--text-subtle);font-size:var(--font-size-sm);font-weight:400}@media(max-width:560px){.like-coin-options{grid-template-columns:1fr}}.like-coin-note-field{display:grid;gap:6px}.like-coin-note-field span{color:var(--text-muted);font-size:var(--font-size-sm)}.like-coin-note-field input,.like-coin-note-field select{width:100%;box-sizing:border-box;margin:0;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-md);line-height:1.5}.like-coin-note-field input:focus,.like-coin-note-field select:focus{border-color:var(--brand);outline:none}.like-coin-reviews{margin:10px 0;padding:8px 16px;border-radius:var(--radius); background:var(--brand-soft); display:grid;gap:6px}.like-coin-reviews-head{display:flex;align-items:center;gap:6px;color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:600}.like-coin-reviews-count{min-width:16px;padding:0 5px;border-radius:999px;background:var(--line-soft);color:var(--text-muted);font-size:var(--font-size-xxs);font-weight:700;line-height:16px;text-align:center}.like-coin-review-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.like-coin-review{display:flex;align-items:flex-start;gap:8px;min-width:0}.like-coin-review .avatar-profile-link{flex:0 0 24px;width:24px;height:24px;border-radius:50%;overflow:hidden}.like-coin-review .avatar-img{width:24px;height:24px;max-width:none;object-fit:cover;border-radius:50%}.like-coin-review-main{display:grid;gap:2px;min-width:0}.like-coin-review-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.like-coin-review-name{color:var(--text);font-size:var(--font-size-xs);font-weight:600;text-decoration:none;overflow-wrap:anywhere}.like-coin-review-name:hover{color:var(--brand)}.like-coin-review-time{margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-review-score{display:inline-flex;align-items:center;gap:2px;padding:0 6px;border:1px solid var(--line-soft);border-radius:999px;background:var(--bg);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700;line-height:1.5}.like-coin-review-score .like-coin-icon{width:10px;height:10px;flex:0 0 10px}.like-coin-review-score .like-coin-icon path{fill:currentColor}.like-coin-review-score.is-penalty{color:var(--danger)}.like-coin-review-note{min-width:0;color:var(--text);font-size:var(--font-size-sm);line-height:1.5;overflow-wrap:anywhere}.like-coin-review.is-self .like-coin-review-name{color:var(--brand)}.like-coin-review-self{padding:0 5px;border:1px solid var(--line-soft);border-radius:999px;background:var(--bg);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700;line-height:1.4}.like-coin-admin+.like-coin-admin{margin-top:14px}.like-coin-admin .plugin-panel-body{display:grid;gap:12px}.like-coin-admin-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.like-coin-admin-filter input,.like-coin-admin-filter select{min-height:34px;max-width:220px;padding:5px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.like-coin-admin-filter input:focus-visible,.like-coin-admin-filter select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.like-coin-admin-inline-form{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;padding:12px;border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg)}.like-coin-admin-field{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}.like-coin-admin-field input{min-height:34px;padding:5px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-md);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.like-coin-admin-field input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.like-coin-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-admin-form-actions{flex:0 0 100%}.like-coin-admin-wrap{overflow-x:auto;border:1px solid var(--line-soft);border-radius:var(--radius)}table.like-coin-admin-table{width:100%;min-width:680px;border-collapse:collapse;font-size:var(--font-size-sm)}.like-coin-admin-table th{padding:9px 12px;background:var(--bg);color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:700;letter-spacing:.05em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line-soft)}.like-coin-admin-table td{padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top}.like-coin-admin-table tbody tr{transition:background var(--transition-normal)}.like-coin-admin-table tbody tr:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}.like-coin-admin-table tbody tr:last-child td{border-bottom:0}.like-coin-admin-check{width:52px;text-align:center}.like-coin-admin-user{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}.like-coin-admin-user .avatar-profile-link{flex:0 0 22px;width:22px;height:22px;border-radius:50%;overflow:hidden;display:inline-block}.like-coin-admin-user .avatar-img{width:22px;height:22px;max-width:none;object-fit:cover;border-radius:50%}.like-coin-admin-user a{color:var(--text);font-weight:600;text-decoration:none}.like-coin-admin-user a:hover{color:var(--brand)}.like-coin-admin-deleted{color:var(--text-disabled)}.like-coin-admin-time{white-space:nowrap}.like-coin-admin-time span{display:block;color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.like-coin-admin-time small{display:block;color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-admin-badge,.like-coin-admin-state{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:700;line-height:1.6;white-space:nowrap;background:var(--line-soft);color:var(--text-muted)}.like-coin-admin-badge.is-coin{background:var(--warning-soft);color:var(--warning)}.like-coin-admin-badge.is-penalty{background:var(--danger-soft);color:var(--danger)}.like-coin-admin-badge.is-like{background:var(--brand-soft);color:var(--brand)}.like-coin-admin-state.is-permanent,.like-coin-admin-state.is-active{background:var(--danger-soft);color:var(--danger)}.like-coin-admin-state.is-expired{background:var(--line-soft);color:var(--text-subtle)}.like-coin-admin-note{min-width:180px;max-width:380px}.like-coin-admin-note-text{color:var(--text);line-height:1.55;overflow-wrap:anywhere}.like-coin-admin-muted{color:var(--text-disabled);font-size:var(--font-size-xxs);margin-left:4px}.like-coin-admin-place{display:flex;flex-direction:column;gap:3px;min-width:0}.like-coin-admin-target{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}.like-coin-admin-target:hover{color:var(--brand)}.like-coin-admin-floor{align-self:flex-start;padding:1px 7px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft);color:var(--text-subtle);font-size:var(--font-size-xxs);white-space:nowrap}.like-coin-admin-actions{white-space:nowrap}.like-coin-admin-batch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-soft)}.like-coin-admin-batch .like-coin-admin-muted{margin-left:0;font-size:var(--font-size-xs)}.like-coin-admin-empty{padding:26px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-sm);border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox],.like-coin-admin .forum-group-checks input[type=checkbox],.like-coin-admin .like-coin-admin-table input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;width:44px;height:24px;margin:0;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal);vertical-align:middle}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]::after,.like-coin-admin .forum-group-checks input[type=checkbox]::after,.like-coin-admin .like-coin-admin-table input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text-disabled);transition:transform var(--transition-normal),background var(--transition-normal)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:checked,.like-coin-admin .forum-group-checks input[type=checkbox]:checked,.like-coin-admin .like-coin-admin-table input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:checked::after,.like-coin-admin .forum-group-checks input[type=checkbox]:checked::after,.like-coin-admin .like-coin-admin-table input[type=checkbox]:checked::after{transform:translateX(20px);background:var(--inverse-text)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:focus-visible,.like-coin-admin .forum-group-checks input[type=checkbox]:focus-visible,.like-coin-admin .like-coin-admin-table input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-soft)}@media(max-width:720px){.like-coin-admin-filter input,.like-coin-admin-filter select{flex:1 1 46%;max-width:none}.like-coin-admin-field{flex:1 1 100%}.like-coin-admin-note{max-width:240px}.like-coin-admin-target{max-width:160px}}@media(max-width:640px){.like-coin-admin .plugin-settings-form .grid>input:not([type=checkbox]),.like-coin-admin .plugin-settings-form .grid>textarea,.like-coin-admin .plugin-settings-form .grid>select{min-height:44px}.like-coin-admin .plugin-settings-form>button,.like-coin-admin-filter button,.like-coin-admin-inline-form>button,.like-coin-admin-batch .btn{min-height:44px}.like-coin-admin-inline-form button,.like-coin-admin .plugin-settings-form>button{width:100%}.like-coin-admin-wrap{border:0;overflow:visible}table.like-coin-admin-table{display:block;min-width:0}.like-coin-admin-table thead{display:none}.like-coin-admin-table tbody tr{display:block;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);padding:10px 12px;margin-bottom:10px}.like-coin-admin-table tbody tr:last-child{margin-bottom:0}.like-coin-admin-table tbody tr:hover{background:var(--bg)}.like-coin-admin-table td{display:flex;align-items:flex-start;gap:10px;padding:4px 0;border:0}.like-coin-admin-table td[data-label]::before{content:attr(data-label);flex:0 0 52px;color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:700;line-height:2}.like-coin-admin-table td.like-coin-admin-check{display:block;padding:0 0 8px;border-bottom:1px dashed var(--line-soft);margin-bottom:4px}.like-coin-admin-table td.like-coin-admin-time span{display:inline}.like-coin-admin-table td.like-coin-admin-time small{display:inline;margin-left:6px}.like-coin-admin-note{max-width:none;min-width:0}.like-coin-admin-target{max-width:none;white-space:normal;overflow:visible;text-overflow:clip}.like-coin-admin-time{white-space:normal}}
/* minesweeper */
.ms-stage{display:flex;flex-direction:column;gap:10px}
.ms-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ms-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.ms-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.ms-levels{display:flex;gap:8px;flex-wrap:wrap}
.ms-level{appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.ms-level em{font-style:normal;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.ms-level.is-on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}
.ms-level.is-on em{color:var(--brand)}
.ms-wrap{display:flex;justify-content:center;padding:12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft);overflow:auto}
.ms-board{display:grid;gap:2px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.ms-cell{width:var(--ms-cell,28px);height:var(--ms-cell,28px);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:calc(var(--ms-cell,28px) * .52);font-weight:700;background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;transition:background .08s;font-variant-numeric:tabular-nums}
.ms-cell:hover{background:var(--brand-soft)}
.ms-cell.is-open{background:var(--bg);border-color:var(--line-soft);cursor:default}
.ms-cell.is-open:hover{background:var(--bg)}
.ms-cell.is-flag{color:var(--danger)}
.ms-cell.is-mine{background:var(--danger);border-color:var(--danger);color:#fff}
.ms-cell.is-boom{animation:mspop .25s ease-out}
@keyframes mspop{from{transform:scale(1.25)}to{transform:scale(1)}}
.ms-cell.n1{color:#2f7dd1}.ms-cell.n2{color:#2f9e44}.ms-cell.n3{color:#e03131}
.ms-cell.n4{color:#7048e8}.ms-cell.n5{color:#c2410c}.ms-cell.n6{color:#0c8599}
.ms-cell.n7{color:#495057}.ms-cell.n8{color:#868e96}
.ms-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ms-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.ms-status.is-win{color:var(--success)}.ms-status.is-lose{color:var(--danger)}
.ms-actions{display:flex;gap:8px}
.ms-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;text-decoration:none}
.ms-btn:hover{background:var(--brand-hover);color:#fff}
.ms-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.ms-btn[disabled]{opacity:.5;cursor:not-allowed}
.ms-card{overflow:hidden;margin-bottom:12px}
.ms-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.ms-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.ms-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.ms-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.ms-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.ms-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.ms-rank-row.is-me{background:var(--brand-soft)}
.ms-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle)}
.ms-rank-no-1{color:#d9a020}.ms-rank-no-2{color:#9aa4b2}.ms-rank-no-3{color:#b5793f}
.ms-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.ms-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.ms-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-rank-main a:hover{color:var(--brand)}
.ms-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.ms-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.ms-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.ms-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.ms-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.ms-mine span{color:var(--text-muted);font-size:var(--font-size-xxs)}
.ms-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.ms-help{padding:10px 14px 14px}
.ms-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.ms-help b{color:var(--text)}
.sidebar-card.ms-card{padding:0}
.ms-card-wrap{padding:10px 14px 12px}
.ms-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.ms-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.ms-card-more:hover{color:var(--brand)}
.ms-card-body{display:flex;gap:8px}
.ms-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.ms-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.ms-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.ms-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.ms-card-btn:hover{background:var(--brand-hover);color:#fff}
.ms-admin{display:flex;flex-direction:column;gap:12px}
.ms-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ms-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.ms-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.ms-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.ms-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.ms-admin-panel{padding:0 0 12px}
.ms-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.ms-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.ms-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.ms-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.ms-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.ms-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.ms-admin-field input,.ms-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.ms-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.ms-admin-actions{padding:0 14px}
.ms-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.ms-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.ms-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.ms-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.ms-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.ms-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.ms-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.ms-admin-table-wrap{overflow-x:auto;padding:0 14px}
.ms-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.ms-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.ms-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.ms-admin-table a{color:var(--text);text-decoration:none}
.ms-admin-table a:hover{color:var(--brand)}
.ms-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.ms-admin-tag.is-won{color:var(--success);border-color:var(--success)}
.ms-admin-tag.is-lost{color:var(--danger);border-color:var(--danger)}
.ms-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.ms-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.ms-admin-help{padding:12px 14px 0}
.ms-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.ms-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.ms-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.ms-wrap{padding:6px}
.ms-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.ms-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* nb_editor */
.nb-editor-admin-settings{max-width:none;gap:16px}
.nb-editor-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nb-editor-admin-section{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.nb-editor-admin-section-head{display:grid;gap:3px;padding-bottom:2px}
.nb-editor-admin-section-head strong{color:var(--text);font-size:var(--font-size-md);line-height:1.4}
.nb-editor-admin-section-head span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
.nb-editor-admin-settings .nb-editor-admin-section>.grid{grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:9px 0;border-top:1px solid var(--line-soft)}
.nb-editor-admin-settings .nb-editor-admin-section-head+.grid{border-top:0}
.nb-editor-admin-settings .nb-editor-admin-section>.grid>span{padding-top:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.45}
.nb-editor-admin-settings .nb-editor-admin-section>.grid>span small{margin-top:2px;color:var(--text-subtle);line-height:1.4}
.nb-editor-admin-settings .nb-editor-admin-section>.grid input[type=number]{width:100%;max-width:130px}
/* 域名名单是多行输入，说明文字放上方、输入框占满整行。 */
.nb-editor-admin-settings .nb-editor-admin-section>.nb-editor-admin-hosts{grid-template-columns:minmax(0,1fr);align-items:start}
.nb-editor-admin-settings .nb-editor-admin-hosts textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);resize:vertical}
.nb-editor-admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:2px}
.nb-editor-admin-actions button{margin:0}
.nb-editor-admin-actions span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
@media(max-width:720px){
.nb-editor-admin-grid{grid-template-columns:1fr}
.nb-editor-admin-section{padding:12px}
.nb-editor-admin-actions{align-items:stretch;flex-direction:column}
.nb-editor-admin-actions button{width:100%}
}
.nb-editor-field{position:relative;display:grid;row-gap:0;margin:0}
.nb-editor-field>.grid{display:contents}
.nb-editor-field>.grid>span{order:1;margin-bottom:6px;padding-top:0}
.nb-editor-field>.nb-editor{order:2}
/* 正文框固定白底，和主题色工具栏拉开层次；高度仍交给核心按场景决定。 */
.nb-editor-field>.grid>textarea[name=body]{order:3;border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel);resize:vertical}
/* 分栏预览：左边写 Markdown，右边常驻渲染结果，随输入更新。 */
.nb-editor-field.nb-editor-live{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.nb-editor-field.nb-editor-live>.grid>span,.nb-editor-field.nb-editor-live>.nb-editor{grid-column:1/-1}
.nb-editor-field.nb-editor-live>.grid>textarea[name=body]{grid-column:1;border-bottom-right-radius:0}
.nb-editor-field.nb-editor-live>.nb-editor-preview{grid-column:2;max-height:60vh;overflow:auto;border-left:0;border-bottom-left-radius:0}
.nb-editor{min-width:0}
/* 工具栏跟随站点主题色，不写死中性灰。 */
.nb-editor-bar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:4px 6px;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--brand-soft)}
.nb-editor-field:focus-within>.nb-editor>.nb-editor-bar{border-color:var(--brand)}
/* 选择器带上根容器，避免被 .reply-panel button 之类的核心规则按特异性压过。 */
.nb-editor .nb-editor-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;min-width:30px;min-height:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--brand-hover);cursor:pointer}
.nb-editor .nb-editor-btn svg{width:16px;height:16px}
.nb-editor .nb-editor-btn:hover{border-color:var(--line);background:var(--panel);color:var(--brand-hover)}
.nb-editor .nb-editor-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
.nb-editor .nb-editor-btn.nb-editor-btn-active{border-color:var(--brand);background:var(--panel);color:var(--brand-hover)}
/* 工具区在宽屏下用 display:contents 完全透明，布局与原先逐字节一致；窄屏才变成独立滚动区。 */
.nb-editor-tools{display:contents}
.nb-editor-split{width:1px;height:16px;margin:0 4px;background:var(--line)}
.nb-editor-space{flex:1 1 auto;min-width:0}
/* 面板用 fixed 浮层：既不挤占正文框空间，也不会被祖先的 overflow:hidden 裁掉。位置由 JS 计算，优先向上弹。 */
.nb-editor-panel{position:fixed;z-index:60;display:flex;flex-direction:column;width:min(360px,100%);height:min(60vh,340px);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 12px 32px var(--shadow-medium);overflow:hidden}
.nb-editor-panel[hidden]{display:none}
.nb-editor-panel-title{flex:0 0 auto;padding:8px 12px 0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4}
.nb-editor-items{flex:1 1 auto;min-height:0;display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:3px;margin:0;padding:8px 10px;overflow-y:auto;list-style:none}
.nb-editor-items[hidden]{display:none}
.nb-editor-items li{padding:4px 7px;border-radius:var(--radius-sm);color:var(--text);font-size:var(--font-size-sm);line-height:1.4;cursor:pointer;user-select:none}
.nb-editor-items li:hover{background:var(--bg)}
.nb-editor-items-emoji li{padding:2px 5px;font-size:var(--font-size-xl)}
.nb-editor-tabs{flex:0 0 auto;display:flex;align-items:stretch;flex-wrap:wrap;border-top:1px solid var(--line);background:var(--brand-soft)}
.nb-editor .nb-editor-tab{min-width:0;min-height:34px;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:400;cursor:pointer}
.nb-editor .nb-editor-tab:hover{background:var(--panel);color:var(--text)}
.nb-editor .nb-editor-tab.nb-editor-tab-active{background:var(--panel);color:var(--brand-hover);font-weight:500}
/* 预览框借用核心 .post-content 的排版，但要去掉它的 margin-top，否则与正文框差 2px。 */
.nb-editor-preview{order:4;margin-top:0;min-height:120px;padding:12px 14px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel)}
.nb-editor-preview[hidden]{display:none}
.nb-editor-preview-empty{color:var(--text-subtle);font-size:var(--font-size-sm)}
.nb-editor-draft{order:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 10px;border:1px solid var(--line);border-top:0;background:var(--info-soft);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}
.nb-editor-draft[hidden]{display:none}
.nb-editor-draft-text{flex:1 1 auto;min-width:0}
.nb-editor-status{order:2;padding:6px 10px;border:1px solid var(--line);border-top:0;background:var(--brand-soft);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;overflow-wrap:anywhere}
.nb-editor-status[hidden]{display:none}
.nb-editor-draft .nb-editor-draft-action{min-width:0;min-height:26px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}
.nb-editor-draft .nb-editor-draft-action:hover{border-color:var(--brand);color:var(--brand-hover)}
.nb-editor-field.nb-editor-full{position:fixed;inset:0;z-index:60;align-content:start;margin:0;padding:14px;background:var(--panel);overflow:auto}
.nb-editor-field.nb-editor-full>.grid>textarea[name=body]{min-height:calc(100vh - 120px)}
.nb-editor-field.nb-editor-full>.nb-editor-preview{min-height:calc(100vh - 120px)}
.nb-editor-field.nb-editor-full.nb-editor-live>.nb-editor-preview{max-height:none}
.nb-editor-dialog-field{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}
.nb-editor-dialog-field .prompt-input{box-sizing:border-box}
.nb-editor-upload{display:grid;gap:7px;margin:2px 0 6px;text-align:center}
.nb-editor-upload .nb-editor-upload-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:110px;padding:16px 14px;border:1px dashed var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.nb-editor-upload .nb-editor-upload-pick:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--text)}
.nb-editor-upload .nb-editor-upload-pick.is-busy{opacity:.6;pointer-events:none}
.nb-editor-upload-plus{font-size:36px;line-height:1;color:var(--brand)}
.nb-editor-upload-tip{font-size:var(--font-size-xs);line-height:1.5}
.nb-editor-upload-status{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5;overflow-wrap:anywhere}
/* 窄屏放不下两栏，预览改到正文框下方，仍然实时更新。 */
@media(max-width:820px){
.nb-editor-field.nb-editor-live{grid-template-columns:minmax(0,1fr)}
.nb-editor-field.nb-editor-live>.grid>textarea[name=body]{grid-column:1;border-radius:0}
.nb-editor-field.nb-editor-live>.nb-editor-preview{grid-column:1;max-height:50vh;border-left:1px solid var(--line);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
}
/* 窄屏工具栏固定一行：工具区自己横向滑动，表情/预览/全屏常驻右端不被挤走。 */
@media(max-width:720px){
.nb-editor-bar{flex-wrap:nowrap;gap:1px;padding:4px;overflow:hidden}
.nb-editor-tools{display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;gap:1px;min-width:0;padding-right:16px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent)}
.nb-editor-tools::-webkit-scrollbar{display:none}
.nb-editor-bar>.nb-editor-btn,.nb-editor-bar>.nb-editor-space{flex:0 0 auto}
.nb-editor-tools>*{flex:0 0 auto}
.nb-editor-split{margin:0 2px}
.nb-editor-space{display:none}
}
@media(max-width:480px){
.nb-editor .nb-editor-btn{width:28px;min-width:28px}
}
/* 后缀是音频/视频的地址渲染成播放器：宽度跟正文一致，竖屏视频加高度上限，避免把版面撑破。 */
.markdown-media{display:block;max-width:100%;margin:10px 0;border-radius:var(--radius-sm)}
video.markdown-media{width:100%;height:auto;max-height:70vh;background:var(--bg)}
.markdown-media-label{display:block;width:fit-content;font-size:var(--font-size-xs);line-height:1.5}
/* 覆盖核心 .post-content a 的品牌色，做成“淡色文字、悬停才亮”的下载入口。 */
.post-content a.markdown-media-label{color:var(--text-muted);text-decoration:none;opacity:.6;transition:opacity .15s ease}
.post-content a.markdown-media-label:hover{color:var(--brand-hover);text-decoration:underline;opacity:1}
/* online_users */
.online-users-boot{display:none}.online-users-host{position:relative;overflow:visible}.online-users-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border:2px solid var(--panel);border-radius:50%;background:var(--success);pointer-events:none}.user-avatar-big.online-users-host .online-users-dot{width:12px;height:12px}.online-users-wrap{padding:10px 14px 12px}.online-users-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.online-users-title{color:var(--text);font-size:var(--font-size-sm);font-weight:600}.online-users-count{flex:0 0 auto;padding:1px 8px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:var(--font-size-xs);font-weight:600;line-height:1.6;white-space:nowrap}.online-users-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 6px}.online-users-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}.online-users-item:hover .online-users-name{color:var(--brand)}.online-users-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--bg)}.online-users-name{max-width:44px;overflow:hidden;color:var(--text-muted);font-size:var(--font-size-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap}.online-users-more{margin-top:8px;color:var(--text-subtle);font-size:var(--font-size-xs)}.online-users-empty{color:var(--text-subtle);font-size:var(--font-size-xs)}
/* points_rewards */
.points-rewards-settings{max-width:none;gap:18px}.points-rewards-settings-section{display:grid;gap:10px}.points-rewards-settings-section-head{display:grid;gap:3px}.points-rewards-settings-section-head strong{color:var(--text);font-size:var(--font-size-md)}.points-rewards-settings-section-head span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.4}.points-rewards-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:stretch;gap:12px}.points-rewards-setting-card{display:flex;flex-direction:column;justify-content:flex-start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.points-rewards-setting-card-wide{grid-column:span 2}.points-rewards-setting-card-title{color:var(--text);font-size:var(--font-size-sm);font-weight:700}.points-rewards-setting-card .grid{display:grid;align-content:start;gap:5px;min-width:0;margin:0}.points-rewards-setting-card input:not([type=checkbox]),.points-rewards-setting-card textarea{width:100%;max-width:none}.points-rewards-notifications{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.points-rewards-notification-options{display:flex;flex-wrap:wrap;gap:8px 16px}.points-rewards-notification-option{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:var(--font-size-sm);cursor:pointer}.points-rewards-notification-option input{flex:0 0 38px;width:38px;height:22px;margin:0}.points-rewards-actions{display:flex;gap:8px}.points-rewards-actions button{margin:0}.points-rewards-detail{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:11px 4px}.points-rewards-detail-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:var(--success-soft);color:var(--success)}.points-rewards-detail.negative .points-rewards-detail-icon{background:var(--danger-soft);color:var(--danger)}.points-rewards-detail-icon .meta-icon{width:20px;height:20px}.points-rewards-detail-main{display:grid;gap:4px;min-width:0}.points-rewards-reason{min-width:0;overflow:hidden;color:var(--text);font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap}.points-rewards-topic{min-width:0;overflow:hidden;color:var(--text-muted);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.points-rewards-topic:hover{color:var(--brand)}.points-rewards-detail-side{display:grid;justify-items:end;gap:5px;padding-left:4px}.points-rewards-change-value{display:inline-flex;box-sizing:border-box;align-items:baseline;justify-content:center;gap:4px;width:96px;min-height:29px;padding:0 8px;border:1px solid transparent;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}.points-rewards-change-value b{font-size:var(--font-size-md);font-weight:700}.points-rewards-change-value small{font-size:var(--font-size-xs);font-weight:600}.points-rewards-change-value.positive{border-color:var(--success);background:var(--success-soft);color:var(--success)}.points-rewards-change-value.negative{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.points-rewards-time{color:var(--text-subtle);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.points-rewards-rule-value.positive{color:var(--success)}.points-rewards-rule-value.negative{color:var(--danger)}.points-rewards-rule-value.disabled{color:var(--text-subtle)}.points-rewards-profile-rules{margin-top:12px}.points-rewards-rules{overflow:hidden}.points-rewards-rules-head{padding:20px 22px 14px;border-bottom:1px solid var(--line)}.points-rewards-rules-head h2{margin:0;font-size:var(--font-size-xl)}.points-rewards-rules-head p{margin:7px 0 0;color:var(--text-subtle);font-size:var(--font-size-sm)}.points-rewards-rules-body{padding:18px 22px 22px}.points-rewards-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.points-rewards-rule-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.points-rewards-rule-card>span{color:var(--text-muted);font-size:var(--font-size-sm)}.points-rewards-rule-value{font-weight:600;white-space:nowrap}.points-rewards-rule-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 0}.points-rewards-rule-notes>div{padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.points-rewards-rule-notes dt{color:var(--text-subtle);font-size:var(--font-size-sm)}.points-rewards-rule-notes dd{margin:5px 0 0;font-weight:600}.points-rewards-rule-hint{margin:16px 0 0;color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.7}.points-rewards-extra-note{margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.65;overflow-wrap:anywhere}@media(max-width:720px){.points-rewards-settings-grid{grid-template-columns:1fr}.points-rewards-setting-card-wide{grid-column:auto}.points-rewards-detail{grid-template-columns:36px minmax(0,1fr);align-items:start;gap:10px;min-height:0;padding:11px 2px}.points-rewards-detail-side{grid-column:2;display:flex;align-items:center;justify-content:space-between;width:100%;padding:3px 0 0}.points-rewards-rules-head{padding:16px 14px 12px}.points-rewards-rules-body{padding:14px}.points-rewards-rule-grid{grid-template-columns:1fr;gap:8px}.points-rewards-rule-notes{grid-template-columns:1fr;gap:8px}}.points-rewards-detail{grid-template-columns:36px minmax(0,1fr) 96px;align-items:center;gap:12px;min-height:58px;padding:11px 2px}.points-rewards-detail-main{gap:5px}.points-rewards-detail-meta{display:flex;align-items:center;gap:7px;min-width:0}.points-rewards-topic{flex:0 1 auto;max-width:100%;font-size:var(--font-size-xs)}.points-rewards-detail-meta .points-rewards-time{flex:0 0 auto;font-size:var(--font-size-xs)}.points-rewards-detail-side{grid-column:auto;display:flex;align-items:center;justify-content:flex-end;width:auto;padding:0}.points-rewards-change-value{align-items:center;width:96px;min-height:28px}@media(max-width:720px){.points-rewards-detail{grid-template-columns:36px minmax(0,1fr) 96px;align-items:center;gap:9px;min-height:58px;padding:11px 2px}.points-rewards-detail-side{grid-column:auto;width:auto;padding:0}.points-rewards-detail-meta{gap:6px}.points-rewards-topic{max-width:calc(100% - 110px)}}@media(max-width:720px){.points-rewards-detail-meta{display:grid;gap:3px}.points-rewards-topic{max-width:100%}.points-rewards-detail-meta .points-rewards-time{display:block}}
/* post_device */
.post-meta .pdv-device{display:inline-flex;align-items:center;gap:3px;box-sizing:border-box;height:16px;margin:0;padding:0;color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.2;white-space:nowrap}.pdv-device .pdv-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;flex:0 0 auto}.pdv-device .pdv-icon svg{width:12px;height:12px}.pdv-device .pdv-text{overflow:hidden;text-overflow:ellipsis}.post-head .pdv-device{margin-left:6px;color:var(--text-muted)}.pdv-admin{display:flex;flex-direction:column;gap:12px}.pdv-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.pdv-stat{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:7px 10px;border-radius:var(--radius);background:var(--bg)}.pdv-stat span{color:var(--text-muted);font-size:var(--font-size-xs)}.pdv-stat b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}.pdv-card{padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}.pdv-card>h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--text);font-size:var(--font-size-sm);font-weight:700}.pdv-badge{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400}.pdv-form{display:flex;flex-direction:column;gap:12px}.pdv-switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}.pdv-template-row{display:flex;flex-direction:column;gap:8px;margin:2px 0 4px;padding:10px 12px;border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg)}.pdv-template-row label{display:flex;flex-direction:column;gap:2px}.pdv-template-row b{color:var(--text);font-size:var(--font-size-sm);font-weight:600}.pdv-template-row small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}.pdv-template-row small code,.pdv-vars code{padding:0 3px;border-radius:3px;background:var(--panel);color:var(--brand);font-family:var(--font-mono);font-size:var(--font-size-xxs)}.pdv-input{width:100%;box-sizing:border-box;padding:7px 10px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-sm)}.pdv-input:focus{outline:none;border-color:var(--brand)}.pdv-vars{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 16px;margin:0;padding:0}.pdv-vars li{display:flex;align-items:baseline;gap:6px;min-width:0}.pdv-vars span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4}.pdv-template-preview{color:var(--text-subtle);font-size:var(--font-size-xxs)}.pdv-preview-box{display:inline-flex;align-items:center;margin-left:4px;padding:2px 8px;border-radius:var(--radius);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xs);vertical-align:middle}.pdv-preview-box .pdv-device{display:inline-flex;align-items:center;gap:3px;font-size:var(--font-size-xs)}.pdv-preview-box .pdv-icon{display:inline-flex;width:12px;height:12px}.pdv-preview-box .pdv-icon svg{width:12px;height:12px}.pdv-switch{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer}.pdv-switch input{width:16px;height:16px;margin:1px 0 0;flex:0 0 auto}.pdv-switch-text{display:flex;flex-direction:column;gap:1px;min-width:0}.pdv-switch-text b{color:var(--text);font-size:var(--font-size-sm);font-weight:600}.pdv-switch-text small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4}.pdv-form-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:4px}.pdv-primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}.pdv-hint{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}.pdv-dist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pdv-dist-grid h4{margin:0 0 8px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700}.pdv-dist{list-style:none;display:flex;flex-direction:column;gap:6px;margin:0;padding:0}.pdv-dist li{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--text)}.pdv-dist-name{flex:0 0 74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdv-dist-bar{flex:1 1 auto;height:6px;border-radius:3px;background:var(--bg);overflow:hidden}.pdv-dist-bar i{display:block;height:100%;border-radius:3px;background:var(--brand);opacity:.75}.pdv-dist-num{flex:0 0 auto;color:var(--text-subtle);font-size:var(--font-size-xxs);font-variant-numeric:tabular-nums}.pdv-empty{color:var(--text-subtle);font-size:var(--font-size-xs)}.pdv-table-wrap{overflow-x:auto}.pdv-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.pdv-table th{padding:7px 8px;border-bottom:1px solid var(--line-soft);color:var(--text-muted);font-weight:700;text-align:left;white-space:nowrap}.pdv-table td{padding:7px 8px;border-bottom:1px solid var(--bg);color:var(--text);vertical-align:top}.pdv-table a{color:var(--text);text-decoration:none}.pdv-table a:hover{color:var(--brand)}.pdv-ua{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--font-size-xxs)}.pdv-nowrap{white-space:nowrap}.pdv-danger-zone{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.pdv-ghost{background:var(--bg);border:1px solid var(--line-soft);color:var(--text-muted)}.pdv-danger{background:var(--danger);border-color:var(--danger);color:#fff}
/* puzzle15 */
.pz-stage{display:flex;flex-direction:column;gap:10px}
.pz-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pz-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.pz-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.pz-sizes{display:flex;gap:8px;flex-wrap:wrap}
.pz-size{appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.pz-size em{font-style:normal;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.pz-size.is-on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}
.pz-size.is-on em{color:var(--brand)}
.pz-wrap{position:relative;display:flex;justify-content:center;padding:14px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.pz-board{position:relative;display:grid;gap:6px;width:100%;max-width:400px;aspect-ratio:1}
.pz-tile{display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--panel);border:1px solid var(--line);color:var(--text);font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums;transition:background .12s,color .12s,transform .1s;user-select:none}
.pz-tile:hover{border-color:var(--brand);color:var(--brand)}
.pz-tile.is-blank{background:transparent;border:1px dashed var(--line-soft);cursor:default;color:transparent}
.pz-tile.is-blank:hover{border-color:var(--line-soft)}
.pz-tile.is-ok{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.pz-tile.is-moved{animation:pzpop .16s ease-out}
@keyframes pzpop{from{transform:scale(.9)}to{transform:scale(1)}}
.pz-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(20,24,30,.72);color:#eef2f6;font-size:var(--font-size-sm);text-align:center;padding:18px;line-height:1.7;border-radius:var(--radius)}
.pz-overlay[hidden]{display:none}
.pz-overlay b{font-size:20px}
.pz-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pz-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.pz-status.is-win{color:var(--success)}
.pz-actions{display:flex;gap:8px}
.pz-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;text-decoration:none}
.pz-btn:hover{background:var(--brand-hover);color:#fff}
.pz-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.pz-btn[disabled]{opacity:.5;cursor:not-allowed}
.pz-card{overflow:hidden;margin-bottom:12px}
.pz-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.pz-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.pz-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.pz-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.pz-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.pz-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.pz-rank-row.is-me{background:var(--brand-soft)}
.pz-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle)}
.pz-rank-no-1{color:#d9a020}.pz-rank-no-2{color:#9aa4b2}.pz-rank-no-3{color:#b5793f}
.pz-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.pz-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.pz-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pz-rank-main a:hover{color:var(--brand)}
.pz-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.pz-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.pz-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.pz-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.pz-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.pz-mine span{color:var(--text-muted);font-size:var(--font-size-xxs)}
.pz-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.pz-help{padding:10px 14px 14px}
.pz-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.pz-help b{color:var(--text)}
.sidebar-card.pz-card{padding:0}
.pz-card-wrap{padding:10px 14px 12px}
.pz-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.pz-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.pz-card-more:hover{color:var(--brand)}
.pz-card-body{display:flex;gap:8px}
.pz-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.pz-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.pz-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.pz-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.pz-card-btn:hover{background:var(--brand-hover);color:#fff}
.pz-admin{display:flex;flex-direction:column;gap:12px}
.pz-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.pz-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.pz-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.pz-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.pz-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.pz-admin-panel{padding:0 0 12px}
.pz-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.pz-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.pz-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.pz-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.pz-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.pz-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.pz-admin-field input,.pz-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.pz-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.pz-admin-actions{padding:0 14px}
.pz-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.pz-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.pz-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.pz-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.pz-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.pz-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.pz-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.pz-admin-table-wrap{overflow-x:auto;padding:0 14px}
.pz-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.pz-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.pz-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.pz-admin-table a{color:var(--text);text-decoration:none}
.pz-admin-table a:hover{color:var(--brand)}
.pz-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.pz-admin-tag.is-won{color:var(--success);border-color:var(--success)}
.pz-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.pz-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.pz-admin-help{padding:12px 14px 0}
.pz-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.pz-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.pz-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.pz-wrap{padding:8px}
.pz-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.pz-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* runtime_info */
/* 页脚两个链接（插件数、版本号）统一加粗、无下划线 */
.runtime-info a{font-weight:700;text-decoration:none}
.runtime-info-page{display:flex;flex-direction:column;gap:12px}
.runtime-info-card{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.runtime-info-title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--text)}
.runtime-info-desc{margin:4px 0 0;font-size:var(--font-size-sm);color:var(--text-muted)}
.runtime-info-plugins{margin:0;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.runtime-info-plugins li{display:inline-flex;max-width:100%;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:border-color var(--transition-normal)}
.runtime-info-plugins li:hover{border-color:var(--brand)}
.runtime-info-plugins li a{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 11px;color:inherit;text-decoration:none}
.runtime-info-plugins code{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text);word-break:break-all}
.runtime-info-plugins span{font-size:var(--font-size-xs);color:var(--text-muted)}
.runtime-info-group-form{display:flex;flex-direction:column;gap:10px}
.runtime-info-group-note{margin:0;font-size:var(--font-size-sm);color:var(--text-subtle)}
.runtime-info-group-list{display:flex;flex-wrap:wrap;gap:8px 16px}
.runtime-info-group-option{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text);cursor:pointer}
.runtime-info-group-option input{width:15px;height:15px;margin:0;flex:0 0 auto;accent-color:var(--brand)}
.runtime-info-group-actions{display:flex;justify-content:flex-end}
/* sandtris */
.sandtris-stage{display:flex;flex-direction:column;gap:12px}
.sandtris-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sandtris-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.sandtris-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sandtris-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.sandtris-wrap{position:relative;display:flex;justify-content:center;padding:12px 10px;border-radius:var(--radius);background:#fff;border:1px solid var(--line-soft);overflow:hidden}
.sandtris-wrap canvas{width:100%;max-width:520px;height:auto;display:block;image-rendering:pixelated;touch-action:manipulation}
.sandtris-touch{display:none;justify-content:center;gap:8px}
.sandtris-touch button{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);min-width:52px;padding:12px 0;font-size:var(--font-size-md);font-weight:600;cursor:pointer;touch-action:manipulation}
.sandtris-touch button:active{background:var(--brand);color:#fff;border-color:var(--brand)}
.sandtris-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sandtris-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.sandtris-status.is-win{color:var(--success)}
.sandtris-status.is-lose{color:var(--danger)}
.sandtris-actions{display:flex;gap:8px}
.sandtris-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}
.sandtris-btn:hover{background:var(--brand-hover)}
.sandtris-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.sandtris-card{overflow:hidden}
.sandtris-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.sandtris-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.sandtris-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.sandtris-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.sandtris-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.sandtris-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.sandtris-rank-row.is-me{background:var(--brand-soft)}
.sandtris-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.sandtris-rank-no-1{color:#d9a020}
.sandtris-rank-no-2{color:#9aa4b2}
.sandtris-rank-no-3{color:#b5793f}
.sandtris-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.sandtris-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.sandtris-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sandtris-rank-main a:hover{color:var(--brand)}
.sandtris-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.4}
.sandtris-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.sandtris-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.sandtris-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.sandtris-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.sandtris-mine span{color:var(--text-muted);font-size:var(--font-size-xxs);line-height:1.3}
.sandtris-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}
.sandtris-help{padding:10px 14px 14px}
.sandtris-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.sandtris-help b{color:var(--text);font-weight:600}
.sidebar-card.sandtris-card{padding:0}
.sandtris-card-wrap{padding:10px 14px 12px}
.sandtris-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.sandtris-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.sandtris-card-more:hover{color:var(--brand)}
.sandtris-card-body{display:flex;gap:8px}
.sandtris-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.sandtris-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.sandtris-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.sandtris-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.sandtris-card-btn:hover{background:var(--brand-hover);color:#fff}
.sandtris-admin{display:flex;flex-direction:column;gap:12px}
.sandtris-admin-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.sandtris-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.sandtris-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.sandtris-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.sandtris-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.sandtris-admin-panel{padding:0 0 12px}
.sandtris-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.sandtris-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.sandtris-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.sandtris-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.sandtris-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.sandtris-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.sandtris-admin-field input,.sandtris-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.sandtris-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}
.sandtris-admin-actions{padding:0 14px}
.sandtris-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.sandtris-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.sandtris-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.sandtris-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.sandtris-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.sandtris-admin-inline:last-child{border-bottom:0}
.sandtris-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.sandtris-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.sandtris-admin-table-wrap{overflow-x:auto;padding:0 14px}
.sandtris-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.sandtris-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.sandtris-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.sandtris-admin-table tr:last-child td{border-bottom:0}
.sandtris-admin-table a{color:var(--text);text-decoration:none}
.sandtris-admin-table a:hover{color:var(--brand)}
.sandtris-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.sandtris-admin-tag.is-ended{color:var(--success);border-color:var(--success)}
.sandtris-admin-tag.is-abandoned{color:var(--danger);border-color:var(--danger)}
.sandtris-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.sandtris-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.sandtris-admin-help{padding:12px 14px 0}
.sandtris-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.sandtris-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.sandtris-touch{display:flex}
.sandtris-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.sandtris-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sandtris-wrap{padding:8px 4px}
}
/* self_links */
/* 友情链接：全部规则限定在 .flx- 前缀内 */
.flx-page{display:grid;gap:12px}
.flx-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:center;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);padding:20px 22px}
.flx-eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);letter-spacing:.16em;color:var(--brand);background:var(--brand-soft);border:1px solid rgba(31,136,61,.22);border-radius:999px;padding:3px 10px}
.flx-eyebrow-dot{width:5px;height:5px;border-radius:50%;background:var(--brand);display:inline-block}
.flx-title{margin:10px 0 6px;font-size:24px;line-height:1.25;font-weight:600;color:var(--text)}
.flx-sub{margin:0;font-size:var(--font-size-sm);line-height:1.7;color:var(--text-muted);max-width:48ch}
.flx-hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.flx-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 15px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal)}
.flx-btn:hover{border-color:var(--text-disabled);background:var(--bg)}
.flx-btn.is-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.flx-btn.is-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.flx-btn-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:rgba(255,255,255,.24);font-size:11px;line-height:1}
.flx-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.flx-stat{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;padding:10px 6px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.flx-stat b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:17px;font-weight:600;color:var(--text);line-height:1.2}
.flx-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-tabs{display:flex;flex-wrap:wrap;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:6px}
.flx-tab{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:var(--radius);font-size:var(--font-size-xs);color:var(--text-muted);text-decoration:none;border:1px solid transparent;transition:background var(--transition-normal),color var(--transition-normal)}
.flx-tab:hover{background:var(--bg);color:var(--text)}
.flx-tab.is-active{background:var(--brand-soft);border-color:rgba(31,136,61,.24);color:var(--brand);font-weight:600}
.flx-tab-n{font-size:10px;color:var(--text-disabled)}
.flx-tab.is-active .flx-tab-n{color:var(--brand)}
.flx-group{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px 16px}
.flx-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.flx-group-head h2{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text)}
.flx-group-n{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:10px}
.flx-card{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);text-decoration:none;color:var(--text);transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal)}
.flx-card:hover{border-color:rgba(31,136,61,.38);background:var(--brand-soft);box-shadow:0 2px 10px rgba(15,23,42,.05)}
.flx-logo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:15px;font-weight:700;line-height:1;letter-spacing:-.02em}
.flx-logo-emoji{font-size:17px;background:var(--bg);border-color:var(--line-soft)}
.flx-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.flx-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flx-desc{font-size:var(--font-size-xxs);line-height:1.5;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.flx-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:3px;font-size:10px;color:var(--text-subtle);min-width:0}
.flx-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:10px;line-height:1.6;white-space:nowrap}
.flx-host,.flx-owner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}
.flx-dot{color:var(--text-disabled)}
.flx-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:34px 20px;background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
.flx-empty-ico{font-size:26px;line-height:1}
.flx-empty strong{font-size:var(--font-size-md);color:var(--text)}
.flx-empty p{margin:0 0 6px;font-size:var(--font-size-xs);color:var(--text-muted)}
.flx-more{margin:0;font-size:var(--font-size-xxs);color:var(--text-subtle);text-align:center}
.flx-code{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.flx-code-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.flx-code-head h2{margin:0;font-size:var(--font-size-md);font-weight:600}
.flx-code-head span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-code-grid{display:grid;gap:8px}
.flx-code-row{display:flex;align-items:center;gap:10px;min-width:0}
.flx-code-k{flex:0 0 34px;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-code-row code,.flx-code-box{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);color:var(--text);background:var(--bg);border:1px solid var(--line-soft);border-radius:8px;padding:7px 10px;line-height:1.6}
.flx-code-box{resize:none;margin:0;height:auto}
.flx-copy{flex:0 0 auto;height:30px;padding:0 12px;font-size:var(--font-size-xxs)}
.flx-copy.is-done{background:var(--brand);border-color:var(--brand);color:#fff}
/* 申请页 */
.flx-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.flx-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.flx-panel-head h1,.flx-panel-head h2{margin:0 0 4px;font-size:19px;font-weight:600;color:var(--text)}
.flx-panel-head h2{font-size:var(--font-size-lg)}
.flx-panel-head p{margin:0;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.65;max-width:54ch}
.flx-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.flx-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.flx-field-full{grid-column:1/-1}
.flx-field>span{font-size:var(--font-size-xxs);color:var(--text-muted);font-weight:600}
.flx-field>span em{font-style:normal;font-weight:400;color:var(--text-disabled);margin-left:3px}
.flx-field small{font-size:10px;color:var(--text-subtle)}
.flx-field input,.flx-field select,.flx-field textarea{width:100%;max-width:100%;margin:0;height:36px;padding:0 10px;font-size:var(--font-size-sm);border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}
.flx-field textarea{height:auto;padding:8px 10px;line-height:1.6;resize:vertical}
.flx-field input:focus,.flx-field select:focus,.flx-field textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
.flx-form-foot{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.flx-form-hint{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-rules{margin-top:14px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.flx-rules strong{display:block;font-size:var(--font-size-xxs);color:var(--text);margin-bottom:5px}
.flx-rules ul{margin:0;padding-left:16px;display:grid;gap:3px}
.flx-rules li{font-size:var(--font-size-xxs);color:var(--text-muted);line-height:1.6}
.flx-notice{margin:0;padding:12px;border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-xs);color:var(--text-muted);text-align:center}
.flx-mine{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.flx-mine-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.flx-mine-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.flx-mine-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flx-mine-name:hover{color:var(--brand)}
.flx-mini{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-note{font-size:var(--font-size-xxs);color:#b45309}
.flx-status{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:999px;font-size:10px;line-height:1;font-weight:600;white-space:nowrap;align-self:flex-start}
.flx-status.is-ok{background:#dcfce7;color:#15803d}
.flx-status.is-wait{background:#fef3c7;color:#b45309}
.flx-status.is-no{background:#fee2e2;color:#b91c1c}
.flx-status.is-mute{background:var(--bg);color:var(--text-subtle);border:1px solid var(--line-soft)}
.flx-mini-btn button,.flx-mini-btn{height:26px;padding:0 10px;font-size:var(--font-size-xxs);border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text-muted);cursor:pointer}
.flx-mini-btn button:hover{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
/* 侧栏卡片 */
.flx-side{padding:13px 14px}
.flx-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.flx-side-head h3{margin:0;font-size:var(--font-size-md);font-weight:600}
.flx-side-head a{font-size:var(--font-size-xxs);color:var(--brand);text-decoration:none}
.flx-side-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}
.flx-side-list a{display:flex;align-items:center;gap:7px;padding:5px 6px;border-radius:7px;color:var(--text);text-decoration:none;font-size:var(--font-size-xs);transition:background var(--transition-normal),color var(--transition-normal)}
.flx-side-list a:hover{background:var(--bg);color:var(--brand)}
.flx-side-ico{font-size:12px;line-height:1;flex:0 0 auto}
.flx-side-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flx-side-empty{margin:10px 0 0;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-side-cta{display:block;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line-soft);font-size:var(--font-size-xxs);color:var(--brand);text-decoration:none;text-align:center}
/* 后台 */
.flx-admin{display:grid;gap:12px}
.flx-stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.flx-stat-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.flx-stat-cell b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:19px;font-weight:600;color:var(--text)}
.flx-stat-cell span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.flx-sec{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.flx-sec-head{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm);font-weight:600;color:var(--text);margin-bottom:10px}
.flx-sec-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft);font-size:10px;font-weight:600;color:var(--text-muted)}
.flx-sec-link{margin-left:auto;font-size:var(--font-size-xxs);color:var(--brand);text-decoration:none;font-weight:400}
.flx-admin-empty{margin:0;padding:16px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center;font-size:var(--font-size-xs);color:var(--text-subtle)}
.flx-arow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);margin-bottom:8px}
.flx-arow:last-child{margin-bottom:0}
.flx-arow-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.flx-arow-title{display:flex;align-items:center;gap:9px;min-width:0}
.flx-arow-title .flx-logo{width:30px;height:30px;flex:0 0 30px;border-radius:8px;font-size:13px}
.flx-arow-titletext{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.flx-arow-titletext a{font-size:var(--font-size-sm);font-weight:600;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.flx-arow-titletext a:hover{color:var(--brand)}
.flx-arow-url{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:var(--text-subtle);word-break:break-all}
.flx-arow-desc{font-size:var(--font-size-xxs);color:var(--text-muted);line-height:1.5}
.flx-arow-meta{font-size:10px;color:var(--text-subtle)}
.flx-recat{display:flex;align-items:center;gap:6px;margin-top:4px}
.flx-recat select{height:24px;max-width:110px;font-size:10px;padding:0 6px;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);color:var(--text-muted)}
.flx-recat button{height:24px;padding:0 8px;font-size:10px;border:1px solid var(--line-soft);border-radius:6px;background:var(--panel);color:var(--text-muted);cursor:pointer}
.flx-arow-ops{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px;justify-content:flex-end;max-width:290px}
.flx-arow-ops button{height:26px;padding:0 9px;font-size:var(--font-size-xxs);border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text-muted);cursor:pointer;white-space:nowrap}
.flx-arow-ops button:hover{color:var(--text);border-color:var(--text-disabled)}
.flx-arow-ops button.is-ok:hover{color:#15803d;border-color:#bbf7d0;background:#f0fdf4}
.flx-arow-ops button.is-danger:hover{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.flx-reject{position:relative}
.flx-reject summary{list-style:none;cursor:pointer;height:26px;display:inline-flex;align-items:center;padding:0 9px;font-size:var(--font-size-xxs);border:1px solid var(--line);border-radius:7px;color:var(--text-muted)}
.flx-reject summary::-webkit-details-marker{display:none}
.flx-reject summary:hover{color:#b91c1c;border-color:#fecaca}
.flx-reject form{position:absolute;right:0;top:30px;z-index:5;display:flex;gap:6px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.1);width:300px}
.flx-reject input{flex:1 1 auto;min-width:0;height:26px;padding:0 8px;font-size:var(--font-size-xxs);border:1px solid var(--line);border-radius:6px}
.flx-reject button{height:26px;padding:0 8px;font-size:var(--font-size-xxs);border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;cursor:pointer;white-space:nowrap}
.flx-admin-form{display:grid;gap:12px}
.flx-togs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.flx-tog{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);cursor:pointer}
.flx-tog input{margin:2px 0 0;flex:0 0 auto}
.flx-tog span{display:flex;flex-direction:column;gap:1px;font-size:var(--font-size-xs);color:var(--text);line-height:1.45}
.flx-tog small{font-size:10px;color:var(--text-subtle);font-weight:400}
.flx-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.flx-admin-actions{display:flex;justify-content:flex-end;padding-top:2px}
@media (max-width:820px){.flx-hero{grid-template-columns:minmax(0,1fr)}.flx-arow{grid-template-columns:minmax(0,1fr)}.flx-arow-ops{justify-content:flex-start;max-width:none}.flx-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.flx-hero{padding:16px}.flx-title{font-size:21px}.flx-form-grid{grid-template-columns:minmax(0,1fr)}.flx-code-row{flex-wrap:wrap}.flx-code-row .flx-copy{width:100%}.flx-group{padding:12px}.flx-grid{grid-template-columns:minmax(0,1fr)}.flx-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.flx-stat{padding:8px 4px}.flx-stat b{font-size:15px}.flx-arow-titletext a{max-width:200px}}
/* showcase */
.showcase-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.showcase-top h1{font-size:var(--font-size-xl);margin:0}
.showcase-top p{margin:4px 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}
.showcase-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.showcase-tabs .tab{padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none}
.showcase-tabs .tab.active{background:var(--brand);border-color:var(--brand);color:#fff}
.showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.showcase-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-base)}
.showcase-card-cover{display:block;aspect-ratio:16/9;background:var(--bg);overflow:hidden}
.showcase-card-cover img{width:100%;height:100%;object-fit:cover;display:block}
.showcase-card-cover-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:var(--font-size-sm);background:var(--brand-soft)}
.showcase-card-body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1}
.showcase-card-title{margin:0;font-size:var(--font-size-lg);line-height:1.35}
.showcase-card-title a{color:var(--text);text-decoration:none}
.showcase-card-title a:hover{color:var(--brand)}
.showcase-card-summary{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.showcase-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;color:var(--text-subtle);font-size:var(--font-size-xs)}
.showcase-card-meta .pill{padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs)}
.showcase-card-tip{color:var(--warning);font-weight:600}
.showcase-online-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:rgba(34,150,94,.12);color:#22965e;font-size:var(--font-size-xxs);font-weight:600}
.showcase-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:24px;align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow-base)}
.showcase-detail-grid.showcase-info-only{grid-template-columns:1fr;max-width:760px;margin:0 auto}
.showcase-media-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.showcase-hero{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg);height:520px;display:flex;align-items:center;justify-content:center}
.showcase-hero img{display:block;width:100%;height:100%;object-fit:contain}
.showcase-app-frame{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.showcase-app-frame-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg);font-size:var(--font-size-xs)}
.showcase-app-frame-bar a{color:var(--brand);text-decoration:none;white-space:nowrap}
.showcase-app-frame iframe{display:block;width:100%;height:520px;border:0}
@media (max-width:640px){.showcase-app-frame iframe{height:420px}.showcase-hero{height:420px}}
.showcase-thumb-strip{display:flex;gap:8px;flex-wrap:wrap}
.showcase-thumb{width:72px;height:54px;padding:0;border:2px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg);cursor:pointer}
.showcase-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.showcase-thumb.active{border-color:var(--brand)}
.showcase-info-col{min-width:0}
.showcase-info-title{margin:0 0 8px;font-size:var(--font-size-xl);line-height:1.35}
.showcase-detail-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-subtle);font-size:var(--font-size-sm);margin-bottom:14px}
.showcase-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px}
.showcase-gallery a{display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}
.showcase-gallery img{display:block;width:100%;height:auto}
.showcase-edit-thumbs{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.showcase-edit-thumb{width:120px}
.showcase-edit-thumb img{width:100%;border-radius:8px;border:1px solid var(--line);display:block}
.showcase-edit-thumb label{display:flex;gap:4px;align-items:center;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:4px}
.showcase-edit-thumb label input{width:auto}
.showcase-detail-body{color:var(--text);font-size:var(--font-size-md);line-height:1.75;white-space:pre-wrap;word-break:break-word}
.showcase-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.showcase-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--font-size-md);text-decoration:none;cursor:pointer}
.showcase-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.showcase-tip-box{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.showcase-tip-box h3{margin:0 0 4px;font-size:var(--font-size-lg)}
.showcase-tip-box .hint{margin:0 0 12px;color:var(--text-muted);font-size:var(--font-size-sm)}
.showcase-tip-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.showcase-tip-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-sm);color:var(--text-muted)}
.showcase-tip-form input[type=number],.showcase-tip-form input[type=text]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:var(--font-size-md)}
.showcase-tip-form input[type=number]{width:110px}
.showcase-tip-form .msg{flex:1;min-width:180px}
.showcase-tip-form .msg input{width:100%}
.showcase-tip-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.showcase-tip-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);font-size:var(--font-size-sm)}
.showcase-tip-item .who{font-weight:600;color:var(--text)}
.showcase-tip-item .amt{color:var(--warning);font-weight:600}
.showcase-tip-item .time{color:var(--text-subtle);font-size:var(--font-size-xs)}
.showcase-form{display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow-base)}
.showcase-form label{display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-sm);color:var(--text-muted)}
.showcase-form input,.showcase-form textarea,.showcase-form select{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:var(--font-size-md);font-family:inherit}
.showcase-form textarea{min-height:110px;resize:vertical}
.showcase-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.showcase-mine{display:flex;justify-content:flex-end;margin-bottom:12px}
.showcase-process{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.showcase-process h3{margin:0 0 8px;font-size:var(--font-size-lg)}
.showcase-process h4{margin:12px 0 6px;font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600}
.showcase-tools{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.showcase-tools span{padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs)}
.showcase-prompt{margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:var(--font-size-sm);line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;font-family:inherit}
.showcase-form input[type=file]{padding:9px;border:1px dashed var(--line);border-radius:8px;background:var(--bg);font-size:var(--font-size-sm);cursor:pointer}
.showcase-form label.showcase-check{flex-direction:row;align-items:center;gap:8px}
.showcase-form label.showcase-check input{width:auto}
.showcase-cover-preview{display:flex;align-items:center;gap:12px;margin-top:6px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.showcase-cover-preview img{width:160px;border-radius:8px;border:1px solid var(--line);display:block}
@media (max-width:900px){.showcase-detail-grid{grid-template-columns:1fr}}
@media (max-width:640px){.showcase-form .row2{grid-template-columns:1fr}}
@media (min-width:901px){.showcase-detail-grid .showcase-media-col{position:sticky;top:14px}}
.showcase-hero-video{position:relative;background:#000;min-height:420px}
.showcase-hero-video .showcase-video-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(30px) saturate(1.35);opacity:.5;transform:scale(1.15);pointer-events:none}
.showcase-hero-video .showcase-video-main{position:relative;display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.showcase-card-cover{position:relative}
.showcase-card-cover .showcase-card-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.showcase-card-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;pointer-events:none}
.showcase-upload-group{display:flex;flex-direction:column;gap:14px}
.showcase-upload-group label.showcase-upload[hidden]{display:none}
.showcase-check[data-download-row][hidden]{display:none}
.showcase-comment-item.is-new{animation:showcase-comment-flash 1.8s ease-out}
@keyframes showcase-comment-flash{0%{border-color:var(--brand);background:var(--brand-soft)}100%{border-color:var(--line-soft);background:var(--bg)}}
.showcase-download-check{margin-top:-4px}
.showcase-comment-jump{color:var(--brand);text-decoration:none}
.showcase-comment-jump:hover{text-decoration:underline}
.showcase-comments{margin-top:22px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow-base)}
.showcase-comments-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.showcase-comments-head h2{margin:0;font-size:var(--font-size-xl)}
.showcase-comments-head .count{margin-left:6px;color:var(--brand);font-size:var(--font-size-md);font-weight:600}
.showcase-comments-head .hint{color:var(--text-subtle);font-size:var(--font-size-xs)}
.showcase-comment-login{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;border:1px dashed var(--line);border-radius:10px;background:var(--bg)}
.showcase-comment-login .hint{color:var(--text-muted);font-size:var(--font-size-sm)}
.showcase-comment-login .hint a{color:var(--brand);text-decoration:none}
.showcase-comment-form{display:flex;flex-direction:column;gap:10px}
.showcase-comment-form textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-size:var(--font-size-md);font-family:inherit;line-height:1.7;min-height:96px;resize:vertical;box-sizing:border-box}
.showcase-comment-form textarea:focus{outline:none;border-color:var(--brand)}
.showcase-comment-form-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.showcase-comment-form-bar .hint{color:var(--text-subtle);font-size:var(--font-size-xs)}
.showcase-comment-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.showcase-comment-item{display:flex;gap:12px;padding:13px 15px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}
.showcase-comment-avatar{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-sm);overflow:hidden}
.showcase-comment-main{flex:1;min-width:0}
.showcase-comment-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--text-subtle)}
.showcase-comment-meta .who{font-weight:600;font-size:var(--font-size-sm);color:var(--text);text-decoration:none}
.showcase-comment-meta .who:hover{color:var(--brand)}
.showcase-comment-meta .role{padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs)}
.showcase-comment-meta .ops{margin-left:auto}
.showcase-comment-meta .ops button{padding:2px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xxs);cursor:pointer;line-height:1.7}
.showcase-comment-meta .ops button:hover{border-color:var(--brand);color:var(--brand)}
.showcase-comment-body{margin-top:6px;font-size:var(--font-size-sm);line-height:1.8;color:var(--text);word-break:break-word}
.showcase-comment-pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:16px;font-size:var(--font-size-xs)}
.showcase-comment-pager a,.showcase-comment-pager span{padding:4px 11px;border:1px solid var(--line);border-radius:6px;color:var(--text-muted);text-decoration:none}
.showcase-comment-pager a:hover{border-color:var(--brand);color:var(--brand)}
.showcase-comment-pager .active{background:var(--brand);border-color:var(--brand);color:#fff}
@media (max-width:640px){
  .showcase-comments{padding:16px}
  .showcase-comment-item{padding:11px 12px}
  .showcase-comment-avatar{flex-basis:30px;width:30px;height:30px;font-size:var(--font-size-xs)}
}
/* simple_lines_theme */
/* 日间 --bg 为白；暗黑由配色方案插件（data-color-scheme-dark-mode-theme="dark"）接管 */
[data-color-scheme-dark-mode-theme="light"]{--bg:#fff}
@media (prefers-color-scheme: light){:root:not([data-color-scheme-dark-mode-theme]){--bg:#fff}}
[data-color-scheme-dark-mode-theme="dark"] body{--panel:var(--bg)}
.home-shell{background:var(--panel);border:none;border-radius:var(--radius);padding:0;overflow:visible;box-shadow:none}
.topic-post-list .post-item{padding:16px;margin:16px 0;border:1px solid var(--line);border-radius:var(--radius)}
.top,.forum-more-region{background:var(--success-soft);border-bottom:none}
@media (max-width:720px){.wrap{padding:15px}}
/* snake */
.sn-stage{display:flex;flex-direction:column;gap:10px}
.sn-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sn-hud-item{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.sn-hud-item span{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sn-hud-item b{color:var(--text);font-size:var(--font-size-lg);line-height:1.2;font-variant-numeric:tabular-nums}
.sn-wrap{position:relative;display:flex;justify-content:center;border-radius:var(--radius);background:#0f1a17;border:1px solid var(--line-soft);overflow:hidden}
.sn-canvas{display:block;width:100%;max-width:520px;height:auto;touch-action:none}
.sn-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(8,16,14,.72);color:#e8f5ee;font-size:var(--font-size-sm);text-align:center;padding:16px;line-height:1.7}
.sn-overlay[hidden]{display:none}
.sn-overlay b{font-size:20px}
.sn-pad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,44px);gap:6px;justify-content:center}
.sn-dir{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);font-size:16px;cursor:pointer}
.sn-dir:active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.sn-dir.up{grid-column:2;grid-row:1}
.sn-dir.left{grid-column:1;grid-row:2}
.sn-dir.down{grid-column:2;grid-row:2}
.sn-dir.right{grid-column:3;grid-row:2}
.sn-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sn-status{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.sn-status.is-win{color:var(--success)}.sn-status.is-lose{color:var(--danger)}
.sn-actions{display:flex;gap:8px}
.sn-btn{appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);padding:8px 16px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;text-decoration:none}
.sn-btn:hover{background:var(--brand-hover);color:#fff}
.sn-btn.ghost{background:transparent;color:var(--text-muted);border-color:var(--line)}
.sn-btn[disabled]{opacity:.5;cursor:not-allowed}
.sn-card{overflow:hidden;margin-bottom:12px}
.sn-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.sn-rank-head strong{font-size:var(--font-size-sm);color:var(--text)}
.sn-rank-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.sn-tabs{margin:0;padding:8px 10px 0;border-bottom:1px solid var(--line-soft)}
.sn-rank-list{list-style:none;margin:0;padding:6px 8px 10px}
.sn-rank-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:var(--radius)}
.sn-rank-row.is-me{background:var(--brand-soft)}
.sn-rank-no{flex:0 0 18px;text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle)}
.sn-rank-no-1{color:#d9a020}.sn-rank-no-2{color:#9aa4b2}.sn-rank-no-3{color:#b5793f}
.sn-avatar{width:26px;height:26px;border-radius:50%;flex:0 0 auto}
.sn-rank-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column}
.sn-rank-main a{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sn-rank-main a:hover{color:var(--brand)}
.sn-rank-main span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.sn-rank-val{flex:0 0 auto;color:var(--brand);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.sn-empty{padding:18px 12px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.7}
.sn-mine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px 12px}
.sn-mine div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.sn-mine span{color:var(--text-muted);font-size:var(--font-size-xxs)}
.sn-mine b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.sn-help{padding:10px 14px 14px}
.sn-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
.sn-help b{color:var(--text)}
.sidebar-card.sn-card{padding:0}
.sn-card-wrap{padding:10px 14px 12px}
.sn-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text);font-size:var(--font-size-xs);font-weight:600}
.sn-card-more{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;text-decoration:none}
.sn-card-more:hover{color:var(--brand)}
.sn-card-body{display:flex;gap:8px}
.sn-card-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:6px;background:var(--bg)}
.sn-card-stat b{font-size:var(--font-size-md);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.sn-card-stat span{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.sn-card-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0}
.sn-card-btn:hover{background:var(--brand-hover);color:#fff}
.sn-admin{display:flex;flex-direction:column;gap:12px}
.sn-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.sn-admin-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.sn-admin-kpi span{color:var(--text-muted);font-size:var(--font-size-xs)}
.sn-admin-kpi b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.sn-admin-kpi em{color:var(--text-subtle);font-size:var(--font-size-xxs);font-style:normal}
.sn-admin-panel{padding:0 0 12px}
.sn-admin-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.sn-admin-head strong{color:var(--text);font-size:var(--font-size-sm)}
.sn-admin-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.sn-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 14px}
.sn-admin-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.sn-admin-field>span{color:var(--text-muted);font-size:var(--font-size-xs)}
.sn-admin-field input,.sn-admin-field select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.sn-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.sn-admin-actions{padding:0 14px}
.sn-admin-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 14px;font-size:var(--font-size-sm);cursor:pointer}
.sn-admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.sn-admin-btn:hover{border-color:var(--brand);color:var(--brand)}
.sn-admin-btn.primary:hover{background:var(--brand-hover);color:#fff}
.sn-admin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.sn-admin-inline input{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);width:120px}
.sn-admin-inline small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.sn-admin-table-wrap{overflow-x:auto;padding:0 14px}
.sn-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.sn-admin-table th{text-align:left;padding:8px;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xs);border-bottom:1px solid var(--line-soft);white-space:nowrap}
.sn-admin-table td{padding:8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.sn-admin-table a{color:var(--text);text-decoration:none}
.sn-admin-table a:hover{color:var(--brand)}
.sn-admin-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.sn-admin-tag.is-won{color:var(--success);border-color:var(--success)}
.sn-admin-tag.is-over{color:var(--danger);border-color:var(--danger)}
.sn-admin-tag.is-invalid{color:var(--danger);border-color:var(--danger)}
.sn-admin-tag.is-playing{color:var(--info);border-color:var(--info)}
.sn-admin-empty{text-align:center;color:var(--text-subtle);padding:20px 8px!important}
.sn-admin-help{padding:12px 14px 0}
.sn-admin-help strong{display:block;margin-bottom:4px;color:var(--text);font-size:var(--font-size-xs)}
.sn-admin-help ul{margin:0;padding-left:16px;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.8}
@media (max-width:900px){
.sn-hud{grid-template-columns:repeat(2,minmax(0,1fr))}
.sn-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.sn-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* topic_theme */
/* ============ 帖子阅读增强：scope 到详情页专属节点 ============ */

/* ---- 标题 hero 卡 ---- */
main:has(.tt-on) .topic-header{margin:0 0 14px;padding:18px 20px 16px;background:linear-gradient(135deg,var(--brand-soft) 0%,var(--panel) 60%);border:1px solid var(--line-soft);border-radius:10px}
main:has(.tt-on) .topic-header .breadcrumb{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs)}
main:has(.tt-on) .topic-header .breadcrumb a{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft);color:var(--text-muted);text-decoration:none;font-size:var(--font-size-xs);transition:color var(--transition-normal),border-color var(--transition-normal)}
main:has(.tt-on) .topic-header .breadcrumb a:hover{color:var(--brand);border-color:rgba(31,136,61,.35);background:var(--panel)}
main:has(.tt-on) .topic-header .breadcrumb span{color:var(--text-disabled)}
main:has(.tt-on) .post-topic-title h1.post-content-title{margin:10px 0 0;font-size:25px;line-height:1.32;font-weight:700;letter-spacing:-.012em}
main:has(.tt-on) .post-topic-title h1.post-content-title a{color:var(--text)}
main:has(.tt-on) .post-topic-title h1.post-content-title a:hover{color:var(--brand)}
main:has(.tt-on) .post-topic-title .post-content-stats{display:flex;gap:6px;margin-top:10px}
main:has(.tt-on) .post-topic-title .post-content-stats>span{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;background:var(--panel);border:1px solid var(--line-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xs);color:var(--text-muted)}
main:has(.tt-on) .post-topic-title .post-content-stats .meta-icon{width:13px;height:13px}

/* ---- 作者信息行（注入 DOM） ---- */
main:has(.tt-on) .tt-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;flex-basis:100%;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-soft);font-size:var(--font-size-sm);color:var(--text-muted)}
main:has(.tt-on) .tt-hero-meta .tt-hm-user{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-weight:650}
main:has(.tt-on) .tt-hero-meta .tt-hm-user:hover b{color:var(--brand)}
main:has(.tt-on) .tt-hero-meta .tt-hm-user img{width:28px;height:28px;border-radius:50%;border:1px solid var(--line-soft);background:var(--bg)}
main:has(.tt-on) .tt-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:600}
main:has(.tt-on) .tt-chip-op{background:var(--brand-soft);color:var(--brand);border:1px solid rgba(31,136,61,.3)}
main:has(.tt-on) .tt-hero-meta .tt-dot{color:var(--text-disabled)}
main:has(.tt-on) .tt-hero-meta .tt-hm-item{color:var(--text-muted)}
main:has(.tt-on) .tt-hero-meta .tt-hm-forum{color:var(--brand);text-decoration:none;font-weight:600}
main:has(.tt-on) .tt-hero-meta .tt-hm-forum:hover{text-decoration:underline}

/* ---- 帖子列表节奏（内核 item 自带 margin-bottom 16px，叠加会双倍留白，归零用 gap 控制） ---- */
main:has(.tt-on) .topic-post-list{display:flex;flex-direction:column;gap:8px}
main:has(.tt-on) .topic-post-list .post-item{margin:0;min-height:0;padding:12px 16px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-item:hover{border-color:var(--line);box-shadow:0 1px 3px rgba(9,17,26,.05)}
main:has(.tt-on) .topic-post-list .post-item:first-child{border-top:2px solid var(--brand)}

/* ---- 作者行与徽章精简 ---- */
main:has(.tt-on) .topic-post-list .post-author{font-weight:650}
main:has(.tt-on) .topic-post-list .post-time{color:var(--text-subtle);font-size:var(--font-size-xs)}
main:has(.tt-on) .topic-post-list .post-meta{opacity:.92;gap:5px;row-gap:5px}
main:has(.tt-on) .topic-post-list .post-meta .user_level-task-badge{font-size:12px;line-height:1;padding:2px 3px;border-radius:4px;opacity:.55;transition:opacity var(--transition-normal),transform var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-meta .user_level-task-badge:hover{opacity:1;transform:scale(1.15)}
main:has(.tt-on) .topic-post-list .post-user-group.user-uid-badge{color:var(--text-disabled);font-size:var(--font-size-xxs)}
main:has(.tt-on) .topic-post-list .post-user-group:not(.user-uid-badge){font-size:var(--font-size-xxs)}

/* ---- 楼层 chip ---- */
main:has(.tt-on) .topic-post-list .post-floor{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xxs);color:var(--text-subtle);text-decoration:none;transition:color var(--transition-normal),border-color var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-floor:hover{color:var(--brand);border-color:rgba(31,136,61,.35);background:var(--brand-soft)}

/* ---- 操作条 ---- */
main:has(.tt-on) .topic-post-list .post-ops{gap:8px;margin-top:8px}
main:has(.tt-on) .topic-post-list .post-ops .icon-action{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:999px;border:1px solid transparent;color:var(--text-subtle);font-size:var(--font-size-xs);text-decoration:none;transition:color var(--transition-normal),background var(--transition-normal),border-color var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-ops .icon-action:hover{color:var(--brand);background:var(--brand-soft);border-color:rgba(31,136,61,.3)}
main:has(.tt-on) .topic-post-list .post-ops .like-coin-action{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:none;color:var(--text-subtle);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-normal),background var(--transition-normal),border-color var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-ops .like-coin-action:hover:not(:disabled){color:#df4b4b;background:rgba(223,75,75,.08);border-color:rgba(223,75,75,.25)}
main:has(.tt-on) .topic-post-list .post-ops .like-coin-action:disabled{opacity:.45;cursor:default}
main:has(.tt-on) .topic-post-list .post-ops .like-coin-icon{width:14px;height:14px}

/* ---- 正文排版 ---- */
main:has(.tt-on) .topic-post-list .post-content{font-size:15px;line-height:1.85;color:var(--text)}
main:has(.tt-on) .topic-post-list .post-content p{margin:.85em 0}
main:has(.tt-on) .topic-post-list .post-content p:first-child{margin-top:.2em}
main:has(.tt-on) .topic-post-list .post-content p:last-child{margin-bottom:0}
main:has(.tt-on) .topic-post-list .post-content a{color:var(--brand);text-decoration:none;border-bottom:1px solid rgba(31,136,61,.28);transition:border-color var(--transition-normal)}
main:has(.tt-on) .topic-post-list .post-content a:hover{border-bottom-color:var(--brand)}
main:has(.tt-on) .topic-post-list .post-content img{max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line-soft)}
main:has(.tt-on) .topic-post-list .post-content code{padding:2px 6px;border-radius:5px;background:var(--bg);border:1px solid var(--line-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;color:#cf222e}
main:has(.tt-on) .topic-post-list .post-content pre{max-width:100%;margin:1em 0;padding:12px 14px;overflow:auto;border-radius:var(--radius);background:#f6f8fa;border:1px solid var(--line-soft);line-height:1.6}
main:has(.tt-on) .topic-post-list .post-content pre code{padding:0;border:0;background:transparent;color:var(--text);font-size:.86rem}
main:has(.tt-on) .topic-post-list .post-content blockquote{margin:1em 0;padding:8px 14px;border-left:3px solid var(--brand);border-radius:0 var(--radius) var(--radius) 0;background:var(--brand-soft);color:var(--text-muted)}
main:has(.tt-on) .topic-post-list .post-content blockquote p{margin:.35em 0}
main:has(.tt-on) .topic-post-list .post-content ul,.topic-post-list .post-content ol{margin:.85em 0;padding-left:1.5em}
main:has(.tt-on) .topic-post-list .post-content li{margin:.3em 0}
main:has(.tt-on) .topic-post-list .post-content hr{margin:1.4em 0;border:0;border-top:1px solid var(--line-soft)}
main:has(.tt-on) .topic-post-list .post-content table{max-width:100%;margin:1em 0;border-collapse:collapse;font-size:.92em}
main:has(.tt-on) .topic-post-list .post-content th,.topic-post-list .post-content td{padding:6px 10px;border:1px solid var(--line-soft)}
main:has(.tt-on) .topic-post-list .post-content th{background:var(--bg);font-weight:600}
main:has(.tt-on) .topic-post-list .post-content h1,.topic-post-list .post-content h2,.topic-post-list .post-content h3,
main:has(.tt-on) .topic-post-list .post-content h4,.topic-post-list .post-content h5,.topic-post-list .post-content h6{margin:1.3em 0 .5em;line-height:1.4;font-weight:650}
main:has(.tt-on) .topic-post-list .post-content h1{font-size:1.4em}.topic-post-list .post-content h2{font-size:1.25em}
main:has(.tt-on) .topic-post-list .post-content h3{font-size:1.12em}.topic-post-list .post-content h4{font-size:1em}

/* ---- 相关推荐（注入 DOM） ---- */
main:has(.tt-on) .tt-related{margin:10px 0 0}
main:has(.tt-on) .tt-related-head{margin:0 0 6px;font-size:12.5px;font-weight:700;color:var(--text);letter-spacing:.02em}
main:has(.tt-on) .tt-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
main:has(.tt-on) .tt-rel-card{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:var(--panel);border:1px solid var(--line-soft);border-radius:8px;text-decoration:none;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}
main:has(.tt-on) .tt-rel-card:hover{border-color:rgba(31,136,61,.4);box-shadow:0 2px 8px rgba(9,17,26,.06);transform:translateY(-1px)}
main:has(.tt-on) .tt-rel-title{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;font-weight:600;line-height:1.45;color:var(--text)}
main:has(.tt-on) .tt-rel-card:hover .tt-rel-title{color:var(--brand)}
main:has(.tt-on) .tt-rel-meta{display:flex;gap:12px;font-size:var(--font-size-xs);color:var(--text-subtle)}

/* ---- 回复面板 ---- */
main:has(.tt-on) .reply-panel{padding:14px 16px;border-radius:var(--radius)}
main:has(.tt-on) .reply-panel-head{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}
main:has(.tt-on) .reply-panel-head h3{margin:0;font-size:15px;font-weight:650}
main:has(.tt-on) .reply-panel .ajax-reply-form textarea{min-height:140px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:14px;line-height:1.7;color:var(--text);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
main:has(.tt-on) .reply-panel .ajax-reply-form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-halo)}
main:has(.tt-on) .reply-panel .nb-editor-bar{margin:8px 0 0;padding:4px 6px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
main:has(.tt-on) .reply-panel .nb-editor-btn{border-radius:5px}

/* ---- 阅读进度条 + 回到顶部（fixed，仅注入页存在） ---- */
.tt-progress{position:fixed;top:0;left:0;z-index:999;width:100%;height:3px;transform-origin:0 0;transform:scaleX(0);pointer-events:none}
.tt-progress::before{content:'';display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--brand),#3fb950)}
.tt-totop{position:fixed;right:22px;bottom:28px;z-index:998;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--panel);border:1px solid var(--line);box-shadow:0 2px 10px rgba(9,17,26,.14);color:var(--text-muted);font-size:17px;cursor:pointer;transition:color var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}
.tt-totop:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-2px)}

/* ---- 发帖/编辑主题页（标记类 .tt-post-on 直接在 panel 上，关闭开关即失效） ---- */
.topic-form-panel.tt-post-on{padding:20px 22px;border-radius:10px}
.tt-post-on>h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.01em}
.tt-post-on>h2::before{content:'';display:inline-block;width:4px;height:18px;border-radius:2px;background:var(--brand)}
.tt-post-on .tt-form-sub{margin:0 0 16px;font-size:var(--font-size-xs);line-height:1.7;color:var(--text-muted)}
.tt-post-on label.grid{gap:6px;margin:0 0 14px}
.tt-post-on label.grid>span{font-size:var(--font-size-xs);font-weight:650;color:var(--text)}
.tt-post-on input[type=text],.tt-post-on select{width:100%;max-width:100%;box-sizing:border-box;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:14px;color:var(--text);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.tt-post-on input:focus,.tt-post-on select:focus,.tt-post-on textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-halo)}
.tt-post-on textarea{width:100%;box-sizing:border-box;min-height:380px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:14px;line-height:1.75;color:var(--text);resize:vertical;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.tt-post-on .nb-editor-bar{margin:0 0 8px;padding:6px 8px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--line-soft)}
.tt-post-on .nb-editor-btn{border-radius:5px}
.tt-post-on .topic-form-actions{margin-top:4px;padding-top:14px;border-top:1px dashed var(--line-soft)}
.tt-post-on .topic-form-actions button{min-height:40px;padding:0 32px;border:0;border-radius:var(--radius);background:var(--brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition-normal),box-shadow var(--transition-normal)}
.tt-post-on .topic-form-actions button:hover{background:var(--brand-hover);box-shadow:0 2px 8px rgba(31,136,61,.28)}

/* ---- 后台 ---- */
.tt-admin{max-width:760px}
.tt-admin-hint{margin:0 0 10px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.tt-sec{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);padding:12px 14px;margin:0 0 10px}
.tt-sec-head{margin:0 0 10px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}
.tt-togs{display:flex;gap:18px;flex-wrap:wrap}
.tt-tog{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--font-size-sm);color:var(--text);cursor:pointer}
.tt-tog input{margin:0}
.tt-actions-bar{display:flex;gap:8px;margin:12px 0 0}

/* ---- 移动端 ---- */
@media (max-width:760px){
  .post-topic-title h1.post-content-title{font-size:19px}
  main:has(.tt-on) .topic-header{padding:14px 14px 12px}
  main:has(.tt-on) .topic-post-list .post-content{font-size:14.5px;line-height:1.8}
  main:has(.tt-on) .topic-post-list .post-item:first-child{border-top-width:2px}
  main:has(.tt-on) .tt-related-grid{grid-template-columns:1fr}
  main:has(.tt-on) .reply-panel{padding:12px}
  main:has(.tt-on) .reply-panel .ajax-reply-form textarea{min-height:110px}
  .tt-totop{right:14px;bottom:20px}
}
/* traffic */
.traffic-dashboard{display:flex;flex-direction:column;gap:14px}
.traffic-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.traffic-kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.traffic-kpi-label{color:var(--text-muted);font-size:var(--font-size-xs)}
.traffic-kpi-value{font-size:var(--font-size-xl);line-height:1.2;color:var(--text);font-variant-numeric:tabular-nums}
.traffic-kpi-note{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.traffic-delta{font-size:var(--font-size-xxs)}
.traffic-delta.up{color:var(--danger)}
.traffic-delta.down{color:var(--success)}
.traffic-panel{padding:0;overflow:hidden}
.traffic-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line-soft)}
.traffic-panel-head strong{font-size:var(--font-size-md);color:var(--text)}
.traffic-note{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.traffic-range{display:flex;gap:4px;flex-wrap:wrap}
.traffic-range-item{padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--text-muted);font-size:var(--font-size-xs);text-decoration:none;background:var(--bg)}
.traffic-range-item:hover{border-color:var(--brand);color:var(--brand)}
.traffic-range-item.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.traffic-chart-wrap{overflow-x:auto;padding:16px 16px 8px}
.traffic-chart{display:flex;align-items:flex-end;gap:3px;min-width:100%}
.traffic-col{flex:1 1 0;min-width:6px;display:flex;flex-direction:column;align-items:center;gap:6px}
.traffic-bars{width:100%;height:150px;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.traffic-bars i{display:block;width:44%;max-width:14px;border-radius:3px 3px 0 0;min-height:0}
.traffic-bar-pv{background:var(--brand);opacity:.85}
.traffic-bar-uv{background:var(--info);opacity:.75}
.traffic-col-label{color:var(--text-subtle);font-size:var(--font-size-xxs);white-space:nowrap;height:14px}
.traffic-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:0 16px 14px;color:var(--text-muted);font-size:var(--font-size-xs)}
.traffic-legend span{display:inline-flex;align-items:center;gap:6px}
.traffic-legend i{width:8px;height:8px;border-radius:2px;display:inline-block}
.traffic-dot-pv{background:var(--brand)}
.traffic-dot-uv{background:var(--info)}
.traffic-table-wrap{overflow-x:auto}
.traffic-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.traffic-table th{text-align:left;color:var(--text-subtle);font-weight:500;font-size:var(--font-size-xxs);padding:10px 16px;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.traffic-table td{padding:10px 16px;border-bottom:1px solid var(--line-soft);color:var(--text);vertical-align:middle}
.traffic-table tbody tr:last-child td{border-bottom:0}
.traffic-table tbody tr:hover td{background:var(--bg)}
.traffic-cell-page a{color:var(--text);text-decoration:none;font-weight:500}
.traffic-cell-page a:hover{color:var(--brand)}
.traffic-code{display:block;color:var(--text-subtle);font-size:var(--font-size-xxs);margin-top:2px;word-break:break-all}
.traffic-col-rank{width:38px;color:var(--text-subtle);font-variant-numeric:tabular-nums}
.traffic-col-num{width:88px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.traffic-col-bar{width:190px}
.traffic-col-bar em{font-style:normal;color:var(--text-subtle);font-size:var(--font-size-xxs);margin-left:8px}
.traffic-bar-track{display:inline-block;width:110px;height:6px;border-radius:999px;background:var(--line-soft);overflow:hidden;vertical-align:middle}
.traffic-bar-track i{display:block;height:100%;background:var(--brand);border-radius:999px}
.traffic-bar-track-sm{width:96px}
.traffic-cell-ua,.traffic-cell-time{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap}
.traffic-sub{display:block;color:var(--text-subtle);font-size:var(--font-size-xxs);margin-top:2px}
.traffic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px}
.traffic-list{list-style:none;margin:0;padding:8px 16px 14px;display:flex;flex-direction:column;gap:10px}
.traffic-list li{display:flex;align-items:center;gap:10px;font-size:var(--font-size-sm);color:var(--text)}
.traffic-list-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}
.traffic-list b{font-variant-numeric:tabular-nums;font-weight:600}
.traffic-empty{padding:22px 16px;color:var(--text-subtle);font-size:var(--font-size-sm)}
.traffic-form{padding:14px 16px 0}
.traffic-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.traffic-field{display:flex;flex-direction:column;gap:5px}
.traffic-field span{color:var(--text-muted);font-size:var(--font-size-xs)}
.traffic-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.traffic-field input,.traffic-field select{width:100%}
.traffic-form-actions{display:flex;justify-content:flex-end;padding:14px 16px}
.traffic-form-actions-sub{border-top:1px solid var(--line-soft);justify-content:flex-start}
.traffic-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);cursor:pointer;text-decoration:none}
.traffic-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}
.traffic-btn:hover{border-color:var(--brand)}
.traffic-help{padding:0 16px 16px;color:var(--text-muted);font-size:var(--font-size-xs)}
.traffic-help strong{display:block;color:var(--text);margin-bottom:6px;font-size:var(--font-size-sm)}
.traffic-help ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.traffic-wrap{padding:10px 14px 12px}
.traffic-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.traffic-head span{font-size:var(--font-size-sm);font-weight:700;color:var(--text)}
.traffic-more{font-size:var(--font-size-xxs);color:var(--text-muted);text-decoration:none}
.traffic-more:hover{color:var(--brand)}
.traffic-body{display:flex;gap:8px}
.traffic-stat{flex:1;background:var(--bg);border-radius:var(--radius);padding:7px 4px;text-align:center}
.traffic-stat b{display:block;font-size:17px;line-height:1.2;color:var(--text);font-variant-numeric:tabular-nums}
.traffic-stat span{display:block;font-size:var(--font-size-xxs);color:var(--text-muted);margin-top:1px}
.traffic-btn{display:block;margin-top:8px;text-align:center;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;border-radius:var(--radius);padding:8px 0;transition:background .15s ease}
.traffic-btn:hover{background:var(--brand-hover);color:#fff}
@media (max-width:900px){.traffic-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-grid{grid-template-columns:minmax(0,1fr)}.traffic-form-grid{grid-template-columns:minmax(0,1fr)}.traffic-col-bar{display:none}}
/* user_center */
.user_center-page{display:flex;flex-direction:column;gap:0}.user_center-tabs{margin:0;padding:10px 12px 0}.user_center-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:10px 12px}.user_center-stat{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;padding:7px 10px;border-radius:var(--radius);background:var(--bg)}.user_center-stat span{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user_center-stat b{color:var(--text);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;line-height:1.2}.user_center-stat-up b{color:var(--brand)}.user_center-stat-warn b{color:var(--warning)}.user_center-search{flex-wrap:wrap;gap:6px}.user_center-list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line-soft);background:var(--bg)}.user_center-list-total{padding:0;color:var(--text-subtle);font-size:var(--font-size-xs);white-space:nowrap}.user_center-list-toolbar .user_center-bulk-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1 1 auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;justify-content:flex-end}.user_center-list-toolbar .bulk-select-all{margin-right:auto}.user_center-user-row{align-items:center}.user_center-user-row .admin-user-text{display:flex;flex-direction:column;gap:3px;min-width:0}.user_center-name{color:var(--text);font-size:var(--font-size-md);font-weight:700;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user_center-name:hover{color:var(--brand)}.user_center-user-row .admin-user-text>span{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4;overflow-wrap:anywhere}.user_center-row-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.user_center-points{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--brand-soft);border-radius:5px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums}.user_center-bulk-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.user_center-bulk-bar .bulk-select-all{display:inline-flex;align-items:center;gap:6px}.user_center-bulk-extra{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.user_center-bulk-extra[hidden]{display:none}.user_center-bulk-num{width:84px}.user_center-bulk-reason{min-width:180px;flex:1 1 200px}.user_center-bulk-notify{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:var(--font-size-xs)}.user_center-back a{color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none}.user_center-back a:hover{color:var(--brand)}.user_center-card{padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}.user_center-card>h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--text);font-size:var(--font-size-sm);font-weight:700}.user_center-card>h3 .user_center-badge{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400}.user_center-profile{display:flex;flex-direction:column;gap:12px}.user_center-profile-head{display:flex;align-items:center;gap:12px;min-width:0}.user_center-avatar{width:52px;height:52px;border-radius:50%;flex:0 0 auto}.user_center-profile-id{min-width:0}.user_center-profile-id h2{margin:0 0 5px;color:var(--text);font-size:var(--font-size-lg);line-height:1.3;overflow-wrap:anywhere}.user_center-profile-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--text-muted);font-size:var(--font-size-xs)}.user_center-level{padding:1px 6px;border:1px solid var(--line-soft);border-radius:4px;background:var(--bg);font-size:var(--font-size-xxs)}.user_center-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.user_center-metric{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:var(--radius);background:var(--bg)}.user_center-metric span{color:var(--text-muted);font-size:var(--font-size-xxs)}.user_center-metric b{color:var(--text);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user_center-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0}.user_center-meta>div{display:flex;gap:8px;min-width:0;font-size:var(--font-size-xs)}.user_center-meta dt{flex:0 0 68px;margin:0;color:var(--text-muted)}.user_center-meta dd{margin:0;color:var(--text);overflow-wrap:anywhere}.user_center-meta em{color:var(--text-subtle);font-style:normal}.user_center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user_center-form{display:flex;flex-direction:column;gap:10px}.user_center-inline-fields{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.user_center-inline-fields label{display:flex;flex-direction:column;gap:4px;color:var(--text-muted);font-size:var(--font-size-xs)}.user_center-inline-fields label small{color:var(--text-subtle);font-size:var(--font-size-xxs)}.user_center-inline-fields input,.user_center-inline-fields select{min-height:32px}.user_center-inline-fields input[type="number"]{width:110px}.user_center-grow{flex:1 1 180px;min-width:0}.user_center-grow input,.user_center-grow select{width:100%}.user_center-form-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}.user_center-check{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--font-size-xs)}.user_center-primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}.user_center-state-ops{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.user_center-state-ops .post-action-form{margin:0}.user_center-hint{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5}.user_center-note-input textarea{width:100%;min-height:58px;resize:vertical}.user_center-notes{list-style:none;display:flex;flex-direction:column;gap:8px;margin:12px 0 0;padding:0}.user_center-note{padding:9px 10px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}.user_center-note-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text-subtle);font-size:var(--font-size-xxs)}.user_center-note-head strong{color:var(--text);font-size:var(--font-size-xs)}.user_center-note-head .post-action-form{margin:0 0 0 auto}.user_center-note p{margin:6px 0 0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6;overflow-wrap:anywhere}.user_center-table-wrap{overflow-x:auto}.user_center-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.user_center-table th{padding:7px 8px;border-bottom:1px solid var(--line-soft);color:var(--text-muted);font-weight:700;text-align:left;white-space:nowrap}.user_center-table td{padding:7px 8px;border-bottom:1px solid var(--bg);color:var(--text);vertical-align:top;overflow-wrap:anywhere}.user_center-nowrap{white-space:nowrap;color:var(--text-muted)}.user_center-delta{font-variant-numeric:tabular-nums;font-weight:700}.user_center-delta.up{color:var(--brand)}.user_center-delta.down{color:var(--danger)}.user_center-actions{list-style:none;display:flex;flex-direction:column;gap:7px;margin:0;padding:0}.user_center-actions li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--text-muted)}.user_center-action-label{flex:0 0 auto;padding:1px 6px;border-radius:4px;background:var(--bg);color:var(--text);font-size:var(--font-size-xxs)}.user_center-action-detail{color:var(--text);overflow-wrap:anywhere}.user_center-action-meta{margin-left:auto;color:var(--text-subtle);white-space:nowrap}.user_center-recent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.user_center-recent h4{margin:0 0 6px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700}.user_center-recent ul{list-style:none;display:flex;flex-direction:column;gap:5px;margin:0;padding:0}.user_center-recent li{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:var(--font-size-xs)}.user_center-recent a{flex:1 1 auto;min-width:0;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user_center-recent a:hover{color:var(--brand)}.user_center-recent time{flex:0 0 auto;color:var(--text-subtle);font-size:var(--font-size-xxs)}.user_center-log-row{align-items:center}.user_center-log-main{display:flex;align-items:center;gap:10px;min-width:0}.user_center-log-main .user_center-delta{flex:0 0 56px;font-size:var(--font-size-md)}.user_center-log-text{display:flex;flex-direction:column;gap:2px;min-width:0}.user_center-log-text strong{color:var(--text);font-size:var(--font-size-sm)}.user_center-log-text span{color:var(--text-subtle);font-size:var(--font-size-xs);overflow-wrap:anywhere}.user_center-log-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;color:var(--text-subtle);font-size:var(--font-size-xxs)}.user_center-mono{font-family:var(--font-mono);color:var(--text-muted)}.user_center-empty{padding:14px 0;color:var(--text-subtle);font-size:var(--font-size-xs);list-style:none}.user_center-me{display:flex;flex-direction:column;gap:12px}.user_center-me .user_center-card{padding:16px}.user_center-me-head{display:flex;flex-direction:column;gap:14px}.user_center-me-id{display:flex;align-items:center;gap:12px;min-width:0}.user_center-me-id h2{margin:0 0 3px;color:var(--text);font-size:var(--font-size-lg);overflow-wrap:anywhere}.user_center-me-id p{margin:0;color:var(--text-subtle);font-size:var(--font-size-xs)}.user_center-me-logs{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.user_center-me-log{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}.user_center-me-log .user_center-delta{flex:0 0 52px;font-size:var(--font-size-md)}.user_center-me-log-text{display:flex;flex-direction:column;gap:2px;min-width:0}.user_center-me-log-text strong{color:var(--text);font-size:var(--font-size-sm);overflow-wrap:anywhere}.user_center-me-log-text span{color:var(--text-subtle);font-size:var(--font-size-xxs)}@media(max-width:900px){.user_center-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.user_center-grid,.user_center-recent{grid-template-columns:minmax(0,1fr)}.user_center-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.user_center-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.user_center-meta{grid-template-columns:minmax(0,1fr)}.user_center-row-side{justify-content:flex-start}.user_center-log-side{justify-content:flex-start}.user_center-bulk-reason{flex:1 1 100%}}
/* user_level */
.post-avatar{position:relative}.user_level-avatar-badge{position:absolute;right:0;bottom:0;line-height:1;font-size:var(--font-size-sm);white-space:nowrap;text-shadow:0 1px 2px var(--bg)}.user_level-task-badge-row{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;text-decoration:none}.user_level-task-badge-row:hover .user_level-task-badge{transform:translateY(-1px)}.user_level-task-badge{display:inline-block;margin-left:0;font-size:14px;line-height:1;cursor:pointer}.user_level-task-more{font-size:var(--font-size-xxs);font-weight:700;color:var(--text-muted);vertical-align:middle}.user_level-form{max-width:none}.user_level-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:stretch;gap:12px}.user_level-topic-gate{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.user_level-topic-gate summary{cursor:pointer;padding:10px 12px;font-weight:700;color:var(--text)}.user_level-topic-gate-body{display:grid;gap:8px;padding:12px}.user_level-topic-gate-body small{color:var(--text-muted);font-size:var(--font-size-xs)}.user_level-topic-gate-badge{display:inline-flex;align-items:center;margin-right:8px;padding:2px 7px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-xxs);font-weight:700;white-space:nowrap}.user_level-fields-wide{grid-template-columns:1fr;margin-top:12px}.user_level-field{display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);min-width:0}.user_level-field-title{color:var(--text);font-size:12px;font-weight:700}.user_level-field .grid{display:grid;align-content:start;gap:5px;min-width:0}.user_level-field input:not([type=checkbox]),.user_level-field select,.user_level-field textarea{width:100%;max-width:none}.user_level-field input[type=checkbox]{width:38px;max-width:38px;height:22px}.user_level-field textarea{min-height:88px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-xs);line-height:1.5;resize:vertical}.user_level-tier-wrap{overflow-x:auto;max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.user_level-tier-table{min-width:720px;width:100%;border-collapse:collapse}.user_level-tier-table th,.user_level-tier-table td{padding:8px 10px;border-bottom:1px solid var(--line-soft);text-align:left;font-size:var(--font-size-sm);white-space:nowrap}.user_level-tier-table thead th{color:var(--text);font-weight:700;white-space:nowrap}.user_level-tier-table tbody th{color:var(--text-muted);font-weight:400;white-space:nowrap}.user_level-tier-table tbody tr:nth-child(even){background:var(--panel)}.user_level-tier-table tbody tr:hover{background:var(--brand-soft)}.user_level-tier-table td input,.user_level-tier-table td select{width:100%;max-width:120px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:var(--font-size-sm)}.user_level-tier-table td input:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus-ring)}.user_level-tier-table td.user_level-na{color:var(--text-subtle);white-space:nowrap}.user_level-actions{display:flex;gap:8px;margin-top:14px}.user_level-actions button{margin:0}.user_level-honor-list{display:block;margin:14px 0 0;padding:0;border:1px solid var(--line-soft);border-radius:10px;list-style:none;overflow:hidden}.user_level-honor-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:0;padding:12px 14px;border-bottom:1px solid var(--line-soft);transition:background .15s ease}.user_level-honor-row:last-child{border-bottom:none}.user_level-honor-row:hover{background:var(--brand-soft)}.user_level-honor-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--font-size-sm);color:var(--text);min-width:0}.user_level-honor-main strong{font-weight:700}.user_level-honor-pill{display:inline-flex;align-items:center;min-height:19px;padding:0 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);font-weight:600;white-space:nowrap}.user_level-honor-pill.user_level-pill-locked{background:var(--warning-soft);color:var(--warning)}.user_level-honor-revoke{margin-left:auto;flex-shrink:0}.user_level-honor-revoke button{min-height:0;padding:0 10px}.user_level-empty{margin:10px 0 0;font-size:var(--font-size-xs);color:var(--text-muted)}.user_level-trend{display:grid;gap:14px}.user_level-trend-row{display:grid;gap:6px}.user_level-trend-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px}.user_level-trend-name{font-size:var(--font-size-sm);font-weight:700;color:var(--text)}.user_level-trend-nums{display:inline-flex;flex-wrap:wrap;gap:2px 12px;font-size:var(--font-size-xs);color:var(--text-muted)}.user_level-trend-nums b{color:var(--text);font-variant-numeric:tabular-nums}.user_level-trend-bars{display:flex;align-items:flex-end;gap:2px;height:52px;min-width:0}.user_level-trend-bars span{flex:1;min-height:2px;border-radius:2px 2px 0 0;background:var(--brand-soft);position:relative}.user_level-trend-bars span:hover{background:var(--brand)}.user_level-trend-bars span.user_level-bar-today{background:var(--brand)}.user_level-trend-bars span.user_level-bar-na{background:var(--line-soft)}.user_level-trend-bars span::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);padding:2px 8px;border-radius:6px;background:var(--inverse);color:var(--inverse-text);font-size:var(--font-size-xxs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}.user_level-trend-bars span[data-tip]:hover::after{opacity:1}.user_level-act-card{padding-bottom:14px}.user_level-card-head.user_level-act-head{align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:14px}.user_level-act-head h2{margin:0;font-size:var(--font-size-lg)}.user_level-act-total{font-size:var(--font-size-xs);color:var(--text-subtle)}.tab-bar.user_level-act-tabs:not(.plugin-tabs){display:flex;width:fit-content;margin:0 0 14px;flex-wrap:wrap}.user_level-act{list-style:none;margin:0;padding:0 0 0 22px;position:relative}.user_level-act:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:1px;background:var(--line-soft)}.user_level-act-day{position:relative;margin:18px 0 4px;font-size:var(--font-size-xs);font-weight:700;color:var(--text-subtle);letter-spacing:.05em}.user_level-act-day:first-child{margin-top:2px}.user_level-act-day:before{content:"";position:absolute;left:-21px;top:50%;width:11px;height:11px;margin-top:-6px;border-radius:50%;background:var(--brand)}.user_level-act-day span{margin-left:6px;font-weight:400;letter-spacing:0}.user_level-act-item{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:3px;padding:6px 0;font-size:var(--font-size-sm)}.user_level-act-item:before{content:"";position:absolute;left:-19px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--brand);transition:background .15s}.user_level-act-item:hover:before{background:var(--brand)}.user_level-act-text{min-width:0;flex:0 1 auto;color:var(--text-muted)}.user_level-act-link{min-width:0;flex:1 1 100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600}.user_level-act-link:hover{color:var(--brand)}.user_level-act-empty{padding:14px 0;color:var(--text-muted);font-size:var(--font-size-sm)}.user_level-act-time{flex:0 0 auto;margin-left:auto;font-size:var(--font-size-xs);color:var(--text-subtle);white-space:nowrap}.user_level-badge-link{display:inline-flex;align-items:center;border-radius:999px}.user_level-badge-link:hover .user_level-badge{box-shadow:0 0 0 2px var(--focus-ring)}.user_level-cal-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:var(--font-size-sm);color:var(--text)}.user_level-cal-pager a{color:var(--text-muted)}.user_level-cal-pager a:hover{color:var(--brand)}.user_level-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}.user_level-cal-head{text-align:center;padding:2px 0;font-size:var(--font-size-xxs);color:var(--text-muted)}.user_level-cal-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:var(--font-size-xs);color:var(--text-muted);border-radius:8px;background:var(--bg);font-variant-numeric:tabular-nums}.user_level-cal-cell.user_level-cal-on{background:var(--brand-soft);color:var(--brand);font-weight:700}.user_level-cal-cell.user_level-cal-today{box-shadow:0 0 0 1.5px var(--brand)}.user_level-page{display:grid;gap:14px}.user_level-page>*{min-width:0}.user_level-card{min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);}.user_level-card-next{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.user_level-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-bottom:12px}.user_level-card-head h2{margin:0;font-size:var(--font-size-md)}.user_level-card-foot{margin:10px 0 0;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.6}.user_level-state{display:inline-flex;align-items:center;min-height:20px;padding:0 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700;white-space:nowrap}.user_level-state.user_level-ok{background:var(--success-soft);color:var(--success)}.user_level-state.user_level-warn{background:var(--warning-soft);color:var(--warning)}.user_level-state.user_level-todo{background:var(--line-soft);color:var(--text-muted)}.user_level-hero{--user-level-hero-emoji:44px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.user_level-hero-badge{display:flex;align-items:center;gap:14px;min-width:0}.user_level-hero-emoji{font-size:var(--user-level-hero-emoji);line-height:1}.user_level-hero-name{display:flex;flex-direction:column;gap:3px;min-width:0}.user_level-hero-name strong{font-size:var(--font-size-lg);color:var(--text)}.user_level-hero-name span{font-size:var(--font-size-xs);color:var(--text-muted)}.user_level-hero-note{flex:1 1 100%;margin:0;font-size:var(--font-size-xs);color:var(--warning)}.user_level-metrics{display:grid;gap:11px}.user_level-metric{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label num" "meter num";gap:5px 10px;align-items:center;min-width:0}.user_level-metric-label{grid-area:label;font-size:var(--font-size-sm);color:var(--text)}.user_level-metric-done .user_level-metric-label{color:var(--success)}.user_level-meter{grid-area:meter;height:10px;border-radius:999px;background:var(--line-soft);box-shadow:inset 0 1px 2px var(--line);overflow:hidden}.user_level-meter-fill{position:relative;display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--brand-hover));transition:width .4s ease}.user_level-meter-fill:not(.user_level-meter-done)::after{content:"";position:absolute;right:3px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 1px var(--line)}.user_level-meter-fill.user_level-meter-done{background:var(--success)}.user_level-metric-num{grid-area:num;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:3px 8px;min-width:0;max-width:100%;font-size:var(--font-size-xs);color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.user_level-metric-pct{color:var(--brand);font-weight:700}.user_level-metric-left{color:var(--warning);font-weight:600}.user_level-metric-state{color:var(--success);font-weight:600}.user_level-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.user_level-overview-item{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}.user_level-overview-item.user_level-cur{border-color:var(--brand);background:var(--brand-soft)}.user_level-overview-emoji{--user-level-overview-emoji:28px;font-size:var(--user-level-overview-emoji);line-height:1}.user_level-overview-name{font-size:var(--font-size-sm);font-weight:700;color:var(--text)}.user_level-overview-need{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.6;overflow-wrap:anywhere}.user_level-overview-flag{display:inline-block;align-self:flex-start;margin-top:4px;padding:1px 8px;border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xxs);font-weight:600;white-space:nowrap}.user_level-overview-flag.user_level-flag-done{background:var(--success)}.user_level-compare-wrap{overflow-x:auto;max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.user_level-compare{width:100%;min-width:620px;border-collapse:collapse}.user_level-compare th,.user_level-compare td{padding:10px 8px;border-bottom:1px solid var(--line-soft);text-align:center;font-size:var(--font-size-sm)}:where(.user_level-compare) tbody tr:nth-child(even)>td,:where(.user_level-compare) tbody tr:nth-child(even)>th{background:color-mix(in srgb,var(--brand-soft) 34%,transparent)}.user_level-compare thead th{background:var(--panel);font-weight:700}.user_level-compare th.user_level-th{line-height:1.4}.user_level-compare th.user_level-ab-col,.user_level-compare td.user_level-ab-col{text-align:left;background:color-mix(in srgb,var(--brand-soft) 22%,transparent)}.user_level-compare .user_level-cur{background:var(--brand-soft)}.user_level-compare td.user_level-gate{color:var(--brand);font-weight:700}.user_level-compare td.user_level-yes{color:var(--success)}.user_level-compare td.user_level-no{color:var(--text-subtle)}.user_level-th-tl{display:block;font-weight:700}.user_level-th-name{display:block;font-size:var(--font-size-xxs);color:var(--text-muted);font-weight:400;white-space:nowrap}.user_level-ab-name{display:block;font-weight:700;color:var(--text)}.user_level-ab-src{display:block;font-size:var(--font-size-xxs);color:var(--text-subtle);font-weight:400}@media (max-width:760px){.user_level-metric{grid-template-columns:1fr auto;grid-template-areas:"label num" "meter num";gap:4px 10px}.user_level-metric-num{white-space:normal;justify-content:flex-end}.user_level-compare{min-width:560px}}@media (max-width:560px){.user_level-hero{--user-level-hero-emoji:32px;padding:14px}.user_level-hero-badge{gap:10px}.user_level-card{padding:13px 14px}.user_level-card-head{gap:4px 10px}.user_level-metric{grid-template-columns:1fr;grid-template-areas:"label" "meter" "num";gap:2px 0}.user_level-metric-num{justify-content:flex-start;margin-top:2px}.user_level-overview{gap:8px}.user_level-compare th,.user_level-compare td{padding:8px 6px}.user_level-trend-bars{height:40px}}
/* user_uid_badge */
.post-meta .post-user-group.user-uid-badge{display:inline-flex;align-items:center;box-sizing:border-box;height:16px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}.post-meta .user-uid-icon{display:inline-flex;align-items:center;justify-content:center;width:11px;height:11px;margin-right:2px}.post-meta .user-uid-icon svg{width:11px;height:11px}
