/* Existing town palette: parchment #fff5d9, butter #f6e7bd, wood #573c2a,
   brass #e2ad47, petal #efaf98, leaf #718557. No remote fonts or assets. */
.yx-honors-board{margin:20px 0;background:var(--paper,#fff5d9);border-color:var(--line,#dbc18a)}
.yx-honors-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px dashed var(--line,#dbc18a);padding-bottom:17px;margin-bottom:17px}
.yx-honors-kicker{font-family:'Courier New','Microsoft YaHei',monospace;font-size:11px;letter-spacing:1.5px;color:#805534}
.yx-honors-heading h2{margin:5px 0;font-size:22px;color:#573c2a}.yx-honors-heading p{font-size:12px;color:#96774e}.yx-honors-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.yx-honors-actions .btn{white-space:normal}
.yx-honors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:12px}.yx-honor-person{display:flex;gap:12px;align-items:center;min-width:0;padding:15px;border:1px solid #dbc18a;background:#fff9e8;border-radius:8px}.yx-honor-person-copy{min-width:0}.yx-honor-person h3{font-size:17px;line-height:1.5;margin:5px 0}.yx-honor-person p{font-size:12px;line-height:1.8;color:#805534;overflow-wrap:anywhere;white-space:pre-wrap}.yx-honor-portrait{flex:none;position:relative;padding:3px}.yx-honor-portrait .avatar{position:relative}.yx-honor-ribbon{display:inline-flex;align-items:center;gap:5px;padding:2px 11px 2px 7px;font-size:10px;letter-spacing:.5px;font-weight:700;background:#f3d587;color:#67432d;clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%)}
.avatar:has(>.yx-honor-badge){position:relative;overflow:visible}.yx-honor-badge{display:inline-flex;position:absolute;right:-5px;bottom:-2px;z-index:2;align-items:center;justify-content:center;width:23px;height:23px;background:#f3d587;color:#67432d;border:2px solid #a97a34;box-shadow:2px 2px 0 #67432d30;font-size:15px;line-height:1;clip-path:polygon(20% 0,80% 0,80% 10%,100% 10%,100% 80%,80% 80%,80% 100%,20% 100%,20% 90%,0 90%,0 20%,20% 20%)}
.yx-honor-quality{background:#f3d587;color:#67432d}.yx-honor-teamwork{background:#d7deb8;color:#536647}.yx-honor-growth{background:#f2d4c7;color:#914f40}.yx-honor-contribution{background:#f6dfaa;color:#805534}.yx-honors-empty{font-size:13px;line-height:1.8;padding:12px 0;color:#96774e}
.yx-honors-title-field,.yx-honors-editor-row label{display:grid;gap:6px;font-size:12px;font-weight:600}.yx-honors-title-field{margin-bottom:18px}.yx-honors-editor-rows{display:grid;gap:15px}.yx-honors-editor-row{min-width:0;margin:0;background:#fff9e8}.yx-honors-editor-row textarea{font-weight:400;min-height:82px}.yx-honors-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.yx-honors-row-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;color:#96774e}.yx-honors-form-error{color:#914f40;font-size:12px;margin:12px 0}.yx-honors-form-foot{display:flex;gap:8px;flex-wrap:wrap}.yx-honors-history{margin-top:20px;border-top:1px dashed #dbc18a;padding-top:12px;font-size:12px}.yx-honors-history summary{cursor:pointer;color:#805534}.yx-honors-history>div{padding:12px 0;border-bottom:1px dashed #dbc18a;overflow-wrap:anywhere}.yx-honors-history small{display:block;color:#96774e}.yx-honors-history p{margin-top:3px}
.yx-honors-overlay{position:fixed;inset:0;z-index:1100;isolation:isolate;background:#573c2ae8;display:flex;align-items:center;justify-content:center;padding:clamp(10px,3vw,36px);color:#573c2a;overflow:hidden}
.yx-honors-stage{position:relative;z-index:2;display:flex;flex-direction:column;width:min(100%,960px);max-height:calc(100dvh - 40px);padding:clamp(16px,3vw,30px);background:#fff5d9;border:3px solid #c7a365;box-shadow:8px 8px 0 #34201355;border-radius:10px;animation:yx-honor-arrive .45s ease-out both}
.yx-honors-ceremony-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;flex:none;padding-bottom:18px;border-bottom:1px dashed #dbc18a}.yx-honors-ceremony-head h2{font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:clamp(23px,3.6vw,38px);font-weight:800;line-height:1.4;margin:7px 0;overflow-wrap:anywhere}.yx-honors-ceremony-head p{color:#805534;font-size:13px}.yx-honors-ceremony-head button{flex:none}.yx-honors-ceremony-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:14px;overflow:auto;overscroll-behavior:contain;min-height:0;padding:20px 3px 12px}.yx-honor-featured{flex-direction:column;text-align:center;gap:9px;padding:20px 14px;background:#fff9e8;border-width:2px}.yx-honor-featured .avatar,.yx-honor-featured .avatar .sprite{width:78px;height:78px}.yx-honor-featured .avatar img{width:78px;height:78px;object-fit:cover}.yx-honor-featured h3{font-size:22px}.yx-honor-featured p{font-size:13px}.yx-honor-featured .yx-honor-ribbon{font-size:12px}.yx-honors-ceremony-note{flex:none;text-align:center;margin-top:8px;font-size:11px;color:#96774e}
.yx-honor-petal-field{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.yx-honor-petal{position:absolute;top:-45px;left:var(--x);width:var(--size);height:calc(var(--size)*.65);background:var(--petal);border-radius:65% 8% 70% 8%;box-shadow:inset 2px 2px 0 #ffffff35;animation:yx-honor-petal-fall var(--speed) var(--delay) ease-in infinite;opacity:0}.yx-honor-petal-tide{position:absolute;inset:auto -15% -40% -15%;height:55%;background:radial-gradient(ellipse at 10% 70%,#efaf98 0 13%,transparent 13.5%),radial-gradient(ellipse at 50% 75%,#f7cf93 0 22%,transparent 22.5%),radial-gradient(ellipse at 80% 65%,#e4a09a 0 20%,transparent 20.5%);animation:yx-honor-tide 6s ease-in both;opacity:.85}.yx-honors-ceremony-head button{position:relative;z-index:4}
@keyframes yx-honor-petal-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(0deg)}12%{opacity:.95}85%{opacity:.9}100%{opacity:.15;transform:translate3d(var(--drift),115vh,0) rotate(var(--spin))}}
@keyframes yx-honor-arrive{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes yx-honor-tide{0%,48%{transform:translateY(0);opacity:0}80%{transform:translateY(-35%);opacity:.8}100%{transform:translateY(-70%);opacity:.85}}
.yx-honors-reduced .yx-honor-petal-field{display:none}.yx-honors-reduced .yx-honors-stage{animation:none}
@media(prefers-reduced-motion:reduce){.yx-honor-petal-field{display:none}.yx-honors-stage{animation:none}}
@media(max-width:600px){.yx-honors-heading{align-items:flex-start;flex-direction:column;gap:12px}.yx-honors-heading h2{font-size:21px}.yx-honors-actions .btn{font-size:11px;min-height:36px}.yx-honors-stage{max-height:calc(100dvh - 20px);padding:16px}.yx-honors-ceremony-head{gap:8px;flex-wrap:wrap;padding-bottom:12px}.yx-honors-ceremony-head>div{flex:1 1 180px}.yx-honors-ceremony-head .btn{min-height:34px;padding:6px 9px;font-size:11px}.yx-honors-ceremony-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-top:14px}.yx-honor-featured{padding:12px 8px}.yx-honor-featured h3{font-size:17px}.yx-honor-featured p{font-size:11px}.yx-honor-featured .avatar,.yx-honor-featured .avatar .sprite,.yx-honor-featured .avatar img{width:55px;height:55px}.yx-honor-featured .yx-honor-ribbon{font-size:10px}.yx-honors-fields{grid-template-columns:1fr}.yx-honors-row-footer{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:360px){.yx-honors-ceremony-grid{grid-template-columns:1fr}.yx-honor-featured{flex-direction:row;text-align:left;padding:11px}.yx-honors-kicker{letter-spacing:.5px;font-size:10px}.yx-honors-ceremony-note{font-size:10px}.yx-honor-featured h3{margin:3px 0}.yx-honors-stage{padding:12px}.yx-honors-ceremony-head h2{font-size:23px}}
