.header nav a[hidden],.site-notice[hidden]{display:none}.site-notice{max-width:calc(var(--content) - 2 * var(--gutter));margin:20px auto 0;padding:16px 22px;border-left:5px solid var(--teal);background:var(--card);border-radius:5px}.site-notice strong{font-size:14px}.site-notice p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:var(--muted);margin:6px 0 0}.admin-page{padding-bottom:60px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:32px 0 24px}.admin-heading h1{font-size:36px;margin:8px 0}.admin-heading p{font-size:12px;color:var(--muted);margin:6px 0}.admin-heading-actions{display:flex;gap:16px;align-items:center;flex-shrink:0}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:26px}.admin-tabs button{padding:10px 18px;border:1px solid var(--line);border-radius:5px;background:var(--card);color:var(--ink);font:700 13px var(--sans);cursor:pointer}.admin-tabs button[aria-current=page]{background:var(--yellow);color:var(--poster-ink);border-color:var(--edge)}.admin-page button:disabled{opacity:.5;cursor:default}.admin-panel{border:1.5px solid var(--edge);background:var(--card);border-radius:8px;padding:26px;margin-bottom:20px}.admin-panel h2{font-size:24px;margin:0 0 14px}.admin-panel h3{font-size:19px;margin:6px 0}.admin-panel>p{font-size:13px;color:var(--muted)}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}.admin-stats>div{display:flex;flex-direction:column;padding:24px;border:1px solid var(--line);border-radius:6px;background:var(--card)}.admin-stats span{font-size:12px;color:var(--muted)}.admin-stats strong{font-size:31px;font-variant-numeric:tabular-nums;margin-top:6px}.admin-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.admin-shortcuts button{padding:22px 18px;border:1px solid var(--line);border-radius:6px;background:var(--soft);color:var(--ink);font:700 15px var(--sans);text-align:left;cursor:pointer}.admin-shortcuts button span{float:right}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;min-width:0}.admin-field>span{font-size:12px;font-weight:700;color:var(--muted)}.admin-field input,.admin-field textarea,.admin-field select{width:100%;min-width:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:11px 12px;border-radius:5px;font:14px/1.6 var(--sans)}.admin-field textarea{resize:vertical;min-height:110px}.admin-field input:read-only{color:var(--muted);background:var(--soft)}.admin-check{display:flex;align-items:center;gap:10px;font-size:13px;margin:12px 0 22px}.admin-check input{width:18px;height:18px;accent-color:var(--pick)}.admin-form-actions{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:20px}.admin-section-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.admin-section-title h2,.admin-section-title h3{margin:0}.admin-section-title p{font-size:12px;color:var(--muted);margin:7px 0 0}.admin-products,.admin-coupons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-products .admin-panel{display:flex;gap:16px;margin:0}.admin-product-icon{display:flex;align-items:center;justify-content:center;flex:0 0 62px;height:72px;border:1px solid var(--line);border-radius:7px;background:var(--soft);font-size:35px}.admin-products p{font-size:12px;margin:5px 0;color:var(--muted)}.admin-products small{font-size:10px;color:var(--muted)}.admin-badge{display:inline-block;padding:2px 8px;font-size:10px;white-space:nowrap;border-radius:4px;color:var(--muted);background:var(--soft);border:1px solid var(--line)}.admin-badge.on{color:var(--ok)}.admin-row-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}.admin-products .admin-row-actions{margin-left:auto;align-content:center;flex-direction:column;justify-content:center;margin-top:0}.admin-code{padding:14px 12px;border:1px dashed var(--line);background:var(--soft);border-radius:5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-code code{font:700 13px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}.admin-code button{font-size:11px}.admin-coupons .admin-panel{margin:0}.admin-prize-row{display:grid;grid-template-columns:minmax(160px,2fr) repeat(3,minmax(70px,1fr)) 70px 40px;gap:12px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.admin-prize-row .admin-field{margin:0}.admin-prize-row .admin-check{margin:18px 0 0;font-size:12px}.admin-prize-row>button{margin-top:24px;font-size:12px}.admin-valid{color:var(--ok);font-size:13px}.admin-invalid{color:var(--pick);font-size:13px}.admin-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--card);margin-bottom:22px}.admin-table-wrap table{border-collapse:collapse;width:100%;min-width:650px;text-align:left;font-size:12px}.admin-table-wrap th{padding:15px;background:var(--soft);white-space:nowrap;color:var(--muted)}.admin-table-wrap td{padding:16px 15px;border-top:1px solid var(--line);vertical-align:middle}.admin-table-wrap small{display:block;color:var(--muted);font-size:10px;margin-top:5px;max-width:250px;overflow-wrap:anywhere}.admin-table-wrap code{font-size:11px;overflow-wrap:anywhere}.admin-search{display:flex;align-items:flex-end;gap:15px;margin-bottom:22px}.admin-search .admin-field{width:min(340px,100%);margin:0}.admin-search button{min-height:46px}.admin-pagination{display:flex;gap:18px;align-items:center;justify-content:center}.admin-pagination span{font-size:12px;color:var(--muted)}.coupon-claim{margin-bottom:26px}.coupon-claim form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.coupon-claim label{flex:1;min-width:200px;margin:0}.coupon-claim .economy-actions{margin:0}.coupon-claim input{text-transform:uppercase}.admin-page input:focus-visible,.admin-page textarea:focus-visible,.admin-page select:focus-visible,.admin-page button:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
@media(max-width:1100px){.admin-products{grid-template-columns:1fr}.admin-prize-row{grid-template-columns:minmax(130px,2fr) repeat(3,minmax(60px,1fr)) 65px 35px;gap:8px}.header:has(#admin-link:not([hidden])) .brand-caption{display:none}.header:has(#admin-link:not([hidden])) nav{gap:11px}}
@media(max-width:700px){.site-notice{margin:15px var(--gutter) 0}.admin-heading{align-items:flex-start;flex-direction:column;padding-top:24px}.admin-heading h1{font-size:30px}.admin-heading-actions{width:100%;justify-content:space-between}.admin-tabs{gap:6px}.admin-tabs button{padding:9px 12px;font-size:12px}.admin-panel{padding:21px 16px}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-stats>div{padding:18px}.admin-stats strong{font-size:26px}.admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-shortcuts button{font-size:13px;padding:18px 12px}.admin-form-grid,.admin-coupons{grid-template-columns:1fr;gap:0}.admin-coupons{gap:16px}.admin-products .admin-panel{padding:18px 14px;gap:12px}.admin-product-icon{flex-basis:42px;height:54px;font-size:25px}.admin-products .admin-row-actions{gap:10px}.admin-products h3{font-size:17px}.admin-section-title{align-items:flex-start;flex-wrap:wrap}.admin-section-title .button{font-size:12px}.admin-prize-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-prize-row .admin-field:first-child{grid-column:1/-1}.admin-prize-row .admin-check{margin:0;grid-column:1/3}.admin-prize-row>button{margin:0}.admin-pagination{gap:10px}.admin-pagination button{font-size:11px;padding:8px 12px}.admin-pagination span{font-size:10px}.admin-code code{font-size:12px}.coupon-claim form{align-items:stretch;flex-direction:column}.coupon-claim .button{width:100%}}
/* 更新公告 ribbon under the header. */
.update-ribbon{display:flex;align-items:center;gap:6px;max-width:calc(var(--content) - 2 * var(--gutter));margin:16px auto 0;padding:4px 6px 4px 16px;background:var(--card);border:2px solid var(--edge);border-radius:99px;box-shadow:3px 3px 0 var(--shadow)}
.update-ribbon[hidden]{display:none}
.update-ribbon a{flex:1;min-width:0;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}
.update-ribbon em{flex:0 0 auto;font-style:normal;font-size:11px;font-weight:900;padding:1px 9px;border-radius:99px;background:var(--pick);color:#fff}
.update-ribbon b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.update-ribbon i{flex:0 0 auto;font-style:normal;font-weight:800;color:var(--pick)}
.update-ribbon button{flex:0 0 auto;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;font-size:13px;color:var(--muted)}
.update-ribbon button:hover{background:var(--soft);color:var(--ink)}
@media(max-width:700px){.update-ribbon{margin:12px var(--gutter) 0;padding-left:12px}.update-ribbon i{display:none}}
.admin-hint{display:block;margin:-4px 0 12px;font-size:11px;color:var(--muted)}.admin-hint b{color:var(--ink)}

/* 信箱：导航未读数 */
.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:99px;background:var(--pick);color:#fff;font-size:11px;font-weight:900;line-height:1;vertical-align:1px}.nav-badge[hidden]{display:none}
.admin-mail-body{white-space:pre-wrap;overflow-wrap:anywhere}
.admin-panel [hidden]{display:none!important}

/* 奖项与邮件的道具附件编辑 */
.admin-prize-item{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px;padding:8px 10px;border:1.5px dashed var(--line);border-radius:8px;background:var(--tint);font-size:12px;font-weight:700}
.admin-prize-item label{display:flex;align-items:center;gap:6px;color:var(--muted)}
.admin-prize-item select,.admin-prize-item input{min-height:32px;padding:4px 8px;border:1.5px solid var(--edge);border-radius:6px;background:var(--card);color:var(--ink);font:700 12px var(--sans)}
.admin-prize-item input{width:76px}
.admin-mail-items{display:grid;gap:8px;padding:10px 12px;border:1.5px dashed var(--line);border-radius:10px;background:var(--tint)}
.admin-item-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.admin-item-row label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);min-width:0}
.admin-item-row select{flex:1;min-width:0;min-height:34px;padding:4px 8px;border:1.5px solid var(--edge);border-radius:6px;background:var(--card);color:var(--ink);font:700 12.5px var(--sans)}
.admin-item-row input{width:82px;min-height:34px;padding:4px 8px;border:1.5px solid var(--edge);border-radius:6px;background:var(--card);color:var(--ink);font:700 12.5px var(--sans)}
@media(max-width:700px){.admin-item-row{grid-template-columns:minmax(0,1fr)}}.admin-game{margin:0 0 16px;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;display:grid;gap:10px}.admin-game legend{padding:0 6px;font-weight:900}.admin-game legend small{margin-left:6px;color:var(--muted);font-weight:600}

/* 聊天室表情包管理 */
.admin-stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;margin-top:12px}
.admin-stickers figure{position:relative;margin:0;display:grid;place-items:center;padding:6px;border:1.5px solid var(--line);border-radius:8px;background:var(--soft)}
.admin-stickers img{width:100%;aspect-ratio:1;object-fit:contain}
.admin-stickers button{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--card);border:1.5px solid var(--edge);font-size:10px;line-height:1;color:var(--pick);cursor:pointer}
.admin-upload{display:inline-flex;align-items:center;cursor:pointer}
/* 表情包拖拽上传 */
.admin-panel.admin-drop{transition:outline-color .15s ease}
.admin-panel.admin-drop.is-drop{outline:3px dashed var(--pick);outline-offset:-6px;background:var(--soft)}
/* 社团管理室 · 背景音乐 */
.bgm-upload{position:relative;cursor:pointer;white-space:nowrap}
.bgm-meter{height:8px;margin:4px 0 14px;border-radius:99px;background:var(--soft,#f1ece2);overflow:hidden}
.bgm-meter i{display:block;height:100%;width:calc(var(--fill) * 100%);background:var(--pick)}
.bgm-tracks,.bgm-playlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bgm-track{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px) auto;align-items:center;gap:12px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--card)}
.bgm-track-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;min-width:0}
.bgm-title{min-width:0;min-height:34px;padding:0 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper,#fff);color:var(--ink);font:700 14px/1 var(--sans)}
.bgm-track-main small,.bgm-used{grid-column:1/-1;font-size:12px;color:var(--muted)}
.bgm-used{display:flex;flex-wrap:wrap;gap:4px}.bgm-used i{padding:1px 8px;border-radius:99px;font-style:normal;font-weight:800;background:var(--soft,#f1ece2);color:var(--ink)}.bgm-used em{font-style:normal}
.bgm-track audio{width:100%;height:36px}
.bgm-track .is-danger{color:var(--pick)}
.bgm-empty{padding:14px;text-align:center;font-size:13px;color:var(--muted);border:1.5px dashed var(--line);border-radius:10px}
.bgm-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:14px}
.bgm-slot[data-dirty]{box-shadow:0 0 0 2px var(--yellow,#f3c75e)}
.bgm-playlist li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:6px;padding:7px 10px;border-radius:8px;background:var(--soft,#f1ece2);font-size:13.5px}
.bgm-playlist li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.bgm-playlist small{color:var(--muted);font-size:12px}
.bgm-playlist .bgm-empty{display:block;background:none}
.bgm-slot-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;align-items:end}
.bgm-slot-tools>label:first-child:has(select[data-bgm-add]){grid-column:1/-1}
.bgm-slot-tools select{min-height:38px}
@media(max-width:700px){.bgm-track{grid-template-columns:1fr}.bgm-slot-tools{grid-template-columns:1fr}}
.admin-picker-tools{display:flex;flex-direction:column;gap:10px}.admin-picker-groups{display:flex;flex-wrap:wrap;gap:8px}.admin-picker-groups button{font-size:12px;padding:7px 12px}.admin-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;max-height:320px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--paper)}.admin-picker-list>p{margin:6px;font-size:13px;color:var(--muted)}.admin-pick{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:5px;background:var(--card);cursor:pointer;min-width:0}.admin-pick input{grid-row:1/3;width:18px;height:18px;accent-color:var(--pick)}.admin-pick b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-pick small{font-size:11px;color:var(--muted)}.admin-pick.is-on{border-color:var(--pick);background:var(--soft)}.admin-field>span small{font-weight:400;margin-left:6px}
.admin-feedback-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.admin-feedback-filters button{font-size:12px;padding:8px 14px}.admin-feedback .admin-feedback-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.7;padding:12px 14px;margin:6px 0 16px;border:1px solid var(--line);border-radius:5px;background:var(--soft)}.admin-feedback.is-new{border-color:var(--pick)}.admin-feedback .admin-field textarea{min-height:80px}
/* Shop: entries grouped by category, and the daily sell cap form above them. */
.admin-group{display:flex;align-items:baseline;gap:8px;margin:22px 0 10px;font-size:16px;font-weight:900}.admin-group small{color:var(--muted);font-size:12px}
.admin-inline{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:12px 0}.admin-inline .admin-field{flex:1 1 280px;margin:0}

/* 交易所人物: industry focus checkboxes in one wrapping row. */
.admin-industries{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0;padding:10px 14px 12px;border:1px solid var(--line, rgba(0,0,0,.12));border-radius:10px}
.admin-industries legend{padding:0 6px;font-size:13px;font-weight:800}
.admin-industries .admin-check{margin:0}
