/* yx-patch-2026-11in1 */
@charset "UTF-8";

:root{
  --yx-fs-micro:11px;
  --yx-fs-cap:12px;
  --yx-fs-sm:13px;
  --yx-fs-base:14px;
  --yx-fs-md:15px;
  --yx-fs-lg:17px;
  --yx-fs-xl:20px;
  --yx-fs-2xl:24px;
  --yx-fs-3xl:28px;
  --yx-lh:1.65;
  --yx-r-sm:6px;
  --yx-r:10px;
  --yx-r-lg:14px;
}

html,body{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

html{
  overflow-x:hidden;
  scrollbar-gutter:stable;
}

body{
  overflow-x:clip;
  font-size:var(--yx-fs-md);
  line-height:var(--yx-lh);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC","Noto Sans CJK SC",system-ui,sans-serif;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

*,*::before,*::after{
  box-sizing:border-box;
  writing-mode:horizontal-tb;
}

img,svg,video,canvas,iframe,embed{
  max-width:100%;
  height:auto;
}

input,select,textarea,button{
  font-family:inherit;
  font-size:var(--yx-fs-base);
  line-height:inherit;
}

h1,h2,h3,h4,h5,p,span,a,li,td,th,label,div,small,strong,b,em,i,button{
  writing-mode:horizontal-tb;
  text-orientation:mixed;
  word-break:normal;
  overflow-wrap:break-word;
}

h1{font-size:var(--yx-fs-3xl);line-height:1.3;font-weight:600}
h2{font-size:var(--yx-fs-2xl);line-height:1.35;font-weight:600}
h3{font-size:var(--yx-fs-xl);line-height:1.4;font-weight:600}
h4{font-size:var(--yx-fs-lg);line-height:1.45;font-weight:600}
h5{font-size:var(--yx-fs-md);line-height:1.5;font-weight:600}
small{font-size:var(--yx-fs-cap)}

.yx-fs-base{font-size:var(--yx-fs-base)!important}
.yx-fs-sm{font-size:var(--yx-fs-sm)!important}
.yx-fs-cap{font-size:var(--yx-fs-cap)!important}
.yx-fs-micro{font-size:var(--yx-fs-micro)!important}

.yx-tbl-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}

.yx-tbl-scroll > table{
  width:100%;
  min-width:var(--yx-tbl-min,720px);
  table-layout:auto;
}

.yx-tbl-scroll > table th,
.yx-tbl-scroll > table td{
  white-space:nowrap;
  vertical-align:middle;
}

.yx-tbl-scroll > table td.yx-wrap,
.yx-tbl-scroll > table td .yx-wrap{
  white-space:normal;
  min-width:200px;
}

.yx-nowrap{white-space:nowrap!important}

.empty,.empty-title,.empty-box,.no-data,.nodata,.blank{
  white-space:nowrap;
  text-align:center;
}
td.empty,td.no-data,td[colspan]{
  white-space:nowrap;
  text-align:center;
}
td[colspan] b,td[colspan] span,.empty b,.empty span,.empty p{
  white-space:nowrap;
}
.yx-ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

.yx-row{display:flex;align-items:center;gap:10px;min-width:0}
.yx-row .yx-row-t{min-width:0;flex:1}
.yx-col{display:flex;flex-direction:column;min-width:0}

.yx-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.yx-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.yx-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.yx-ava{border-radius:50%;object-fit:cover;flex-shrink:0;background:#eef2ef}
.yx-ava-24{width:24px;height:24px}
.yx-ava-32{width:32px;height:32px}
.yx-ava-40{width:40px;height:40px}
.yx-ava-52{width:52px;height:52px}
.yx-ava-68{width:68px;height:68px}
.yx-ava-round{border-radius:50%!important}

.yx-badge{
  display:inline-flex;align-items:center;gap:4px;
  height:22px;padding:0 8px;border-radius:999px;
  font-size:var(--yx-fs-micro);font-weight:600;white-space:nowrap;
  line-height:1;letter-spacing:.01em;
}

.yx-kpi{
  display:flex;flex-direction:column;gap:4px;
  padding:14px 16px;border-radius:var(--yx-r-lg);
  background:var(--panel,#fff);border:1px solid var(--line,#e6efe9);
  min-width:0;
}
.yx-kpi .k{font-size:var(--yx-fs-cap);color:var(--sub,#6b7a70);white-space:nowrap}
.yx-kpi .v{font-size:var(--yx-fs-2xl);font-weight:600;letter-spacing:-.02em;line-height:1.15;white-space:nowrap}
.yx-kpi .v small{font-size:var(--yx-fs-cap);font-weight:400;margin-left:2px;letter-spacing:0}
.yx-kpi .d{font-size:var(--yx-fs-micro);color:var(--faint,#93a399);white-space:nowrap}

.yx-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;padding:36px 18px;text-align:center;color:var(--faint,#93a399);
}
.yx-empty b{font-size:var(--yx-fs-md);font-weight:600;color:var(--sub,#6b7a70);white-space:nowrap}
.yx-empty span{font-size:var(--yx-fs-cap);white-space:nowrap}

.yx-grid{display:grid;gap:12px;min-width:0}
.yx-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.yx-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.yx-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.yx-grid-auto{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}

.yx-card{
  border:1px solid var(--line,#e6efe9);border-radius:var(--yx-r-lg);
  background:var(--panel,#fff);overflow:hidden;min-width:0;
}

.yx-actions{display:flex;flex-wrap:wrap;gap:6px}

.yx-fl-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:11px}
.yx-fl{
  display:flex;align-items:center;gap:10px;min-width:0;padding:11px 12px;
  border:1px solid var(--line,#e6efe9);border-radius:var(--yx-r-lg);
  background:var(--panel,#fff);text-decoration:none;color:inherit;
  transition:border-color .16s,box-shadow .16s,transform .16s;
}
.yx-fl:hover{border-color:#bcd4c4;box-shadow:0 10px 22px -14px rgba(21,43,32,.34);transform:translateY(-1px)}
.yx-fl-ava{position:relative;width:38px;height:38px;flex-shrink:0;display:block}
.yx-fl-ava.big{width:52px;height:52px}
.yx-fl-ava img{
  width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;
  background:#eef2ef;border:1px solid rgba(21,43,32,.08);
}
.yx-fl-ini{
  width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#eaf3ed;color:#3d6b55;font-size:15px;font-weight:600;
  border:1px solid rgba(21,43,32,.08);
}
.yx-fl-ring{
  position:absolute;inset:-3px;border-radius:50%;pointer-events:none;
  border:1.5px solid transparent;
  border-top-color:#3E9E72;border-right-color:rgba(62,158,114,.32);
  animation:yx-ring 5.2s linear infinite;opacity:.75;
}
.yx-fl:hover .yx-fl-ring{opacity:1}
@keyframes yx-ring{to{transform:rotate(360deg)}}
.yx-fl-tx{min-width:0;display:flex;flex-direction:column}
.yx-fl-tx b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yx-fl-tx small{font-size:12px;color:var(--faint,#93a399);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.yx-fl-preview{
  display:flex;align-items:center;gap:12px;padding:13px 14px;margin-bottom:16px;
  border:1px solid var(--line,#e6efe9);border-radius:var(--yx-r-lg);background:#f7faf8;min-width:0;
}
.yx-fl-pv-tx{min-width:0;max-width:100%;display:flex;flex-direction:column;overflow:hidden}
.yx-fl-pv-tx b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.yx-fl-pv-tx small{font-size:13px;color:var(--faint,#93a399);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.yx-fl-preview .yx-fl-ava{flex:0 0 auto}

.form-control,input[type="text"],input[type="email"],input[type="url"],input[type="tel"],input[type="number"],textarea,select{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:hidden;
}
textarea.form-control{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  display:block;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;
  overflow-x:hidden;resize:vertical;min-height:110px;max-height:320px;
}
.form-group,.form-row,.form-card,.yx-fl-preview,.yx-fl-wall{min-width:0;max-width:100%}
.form-group>*,.form-row>*>*{min-width:0;max-width:100%}

@media (max-width:768px){
  .yx-fl-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .yx-fl{padding:10px}
  .yx-fl-ava{width:34px;height:34px}
  .yx-fl-preview{padding:11px 12px;gap:10px}
  .yx-fl-pv-tx b{font-size:13px}
  .yx-fl-pv-tx small{font-size:13px}
}

.yx-medals{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.yx-medal{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 50% 32%,color-mix(in srgb,var(--yx-medal-c,#C9922B) 22%,#fff),#fff 78%);
  border:1px solid color-mix(in srgb,var(--yx-medal-c,#C9922B) 40%,#fff);
  box-shadow:0 2px 6px -3px rgba(21,43,32,.35),inset 0 1px 0 rgba(255,255,255,.85);
  transition:transform .18s,box-shadow .18s;cursor:default;
}
.yx-medal::after{
  content:"";position:absolute;inset:-2px;border-radius:50%;pointer-events:none;
  border:1.5px solid color-mix(in srgb,var(--yx-medal-c,#C9922B) 55%,#fff);opacity:.55;
}
.yx-medal:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 20px -12px rgba(21,43,32,.5)}
.yx-medal-ico{color:var(--yx-medal-c,#C9922B);line-height:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.yx-medal-ico svg{display:block}

.yx-flag{display:inline-flex;align-items:center;gap:4px}
.yx-flag-ic{position:relative;display:inline-block;line-height:1;overflow:hidden;border-radius:3px}
.yx-flag-gloss{
  position:absolute;inset:0;border-radius:3px;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,0) 32%,rgba(255,255,255,.9) 47%,rgba(255,255,255,0) 62%);
  mix-blend-mode:screen;animation:yx-flag-glint 3.4s ease-in-out infinite;
}
@keyframes yx-flag-glint{0%,70%{transform:translateX(-120%);opacity:0}78%{opacity:1}100%{transform:translateX(120%);opacity:0}}
img.yx-badge{display:inline-block;height:auto;padding:0;border:none;background:none;border-radius:0}

.yx-voices{
  display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  margin-top:22px;
}
.yx-voice{
  position:relative;background:var(--panel,#fff);border:1px solid var(--line,#e6efe9);
  border-radius:var(--yx-r-lg);padding:16px 16px 14px;min-width:0;
  transition:border-color .16s,box-shadow .16s,transform .16s;
}
.yx-voice::before{
  content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,#3E9E72,#B9D9C8);opacity:.85;
}
.yx-voice:hover{
  border-color:#c4dccd;box-shadow:0 10px 24px -14px rgba(21,43,32,.32);transform:translateY(-1px);
}
.yx-voice.is-lead{grid-column:span 2}
.yx-voice-top{display:flex;align-items:center;gap:11px;min-width:0}
.yx-voice-ava{
  width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;
  background:#eef2ef;border:1px solid rgba(21,43,32,.07);
}
.yx-voice-id{min-width:0}
.yx-voice-id b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yx-voice-id small{display:block;font-size:13px;color:var(--faint,#93a399);margin-top:2px;white-space:nowrap}
.yx-voice-quote{
  margin:11px 0 0;font-size:13px;line-height:1.75;color:var(--sub,#5e6b63);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.yx-voice-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.yx-voice-tags span{
  font-size:12px;padding:2px 8px;border-radius:999px;background:#eef5f0;
  border:1px solid #dcebe2;color:#3d6b55;white-space:nowrap;
}

@media (max-width:768px){
  .yx-voices{grid-template-columns:minmax(0,1fr);gap:11px}
  .yx-voice.is-lead{grid-column:span 1}
  .yx-voice{padding:14px}
  .yx-voice-ava{width:38px;height:38px}
}

@media (max-width:1280px){
  .yx-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:1024px){
  .yx-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .yx-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  body{font-size:var(--yx-fs-base)}
}

@media (max-width:768px){
  html,body{overflow-x:hidden!important;max-width:100%}
  body{font-size:var(--yx-fs-base)}
  .yx-grid-2,.yx-grid-3,.yx-grid-4{grid-template-columns:minmax(0,1fr)}
  .yx-grid-auto{grid-template-columns:minmax(0,1fr)}
  .yx-tbl-scroll{width:100%!important;max-width:100%!important}
  .yx-kpi .v{font-size:var(--yx-fs-xl)}
  h1{font-size:22px}
  h2{font-size:18px}
  h3{font-size:16px}
  [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
  [style*="min-width"]{min-width:0!important;max-width:100%}
  img,svg,video,canvas{max-width:100%!important;height:auto}
}

@media (max-width:420px){
  body{font-size:var(--yx-fs-sm)}
  .yx-kpi{padding:12px 13px}
  .yx-kpi .v{font-size:18px}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* yx-patch-medal-ui-2026 · 后台勋章页（admin/user-medals.php）美化，仅 medal 相关 class */
body.yx-admin .yx-medals{justify-content:center;gap:14px;row-gap:18px}
body.yx-admin .yx-medal{transition:transform .18s ease,box-shadow .18s ease}
body.yx-admin .yx-medal:hover{transform:translateY(-4px);box-shadow:0 14px 28px -12px rgba(21,43,32,.42)}
body.yx-admin .yx-medal .yx-medal-ico{transition:transform .18s ease}
body.yx-admin .yx-medal:hover .yx-medal-ico{transform:scale(1.08)}
