.admin,.member{min-height:100vh;background:#031c15 url('/assets/emerald-background.png') center top/cover fixed}.seat-console{max-width:680px;padding:26px 20px}.seat-console .top{border:0;margin-bottom:10px}.seat-console .top h2{font-family:'Songti SC',serif;font-size:28px;letter-spacing:4px;color:#f6e5bd}.seat-console .top>div:last-child{text-align:right}.seat-console .status{display:block;margin-top:8px;font-size:11px}.console-title{text-align:center;font:600 30px 'Songti SC',serif;letter-spacing:5px;color:#f4dfad;margin:20px 0}.seat-console .admin-tabs{border:1px solid #547c69;padding:4px;gap:4px;border-radius:12px;margin:18px 0}.seat-console .admin-tabs button{flex:1;min-height:44px;font-size:16px}.seat-console .admin-tabs .active,.table-tabs .active{background:#60532e;color:#fff0cb;box-shadow:inset 0 0 0 1px #ddc28a}.event-title{text-align:center;color:#e3d7b7;font-size:14px;letter-spacing:2px}.seat-alert{border:1px solid #b5a271;border-radius:10px;padding:13px 14px;color:#f4dfac;background:#70603b30;font-size:13px;line-height:1.5}.seat-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #577968;border-radius:12px;margin:12px 0;padding:14px 0;background:#06291d99;text-align:center;font-size:13px;color:#cbdbcf}.seat-stats>div+div{border-left:1px solid #486453}.seat-stats strong{display:block;color:#eadbb9;font:32px Georgia,serif;margin-top:6px}.table-tabs{display:flex;align-items:center;gap:8px;border:1px solid #577968;padding:7px;border-radius:10px;margin-bottom:12px}.table-tabs button{flex:1;background:transparent;color:#e3e8dc;min-height:42px;padding:8px}.table-tabs small{margin:0 10px;color:#d1d8cb}.seat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.seat-card{min-width:0;text-align:center;border:1px solid #547b64;background:#05291ddd;border-radius:12px;display:flex;align-items:center;flex-direction:column;padding:9px 6px 8px;min-height:192px;box-shadow:inset 0 1px 0 #fff1}.seat-card.pending{border-color:#d9bd7e;background:#4c4325a8;box-shadow:inset 0 0 10px #c5ad5225}.seat-heading{background:none;color:#e7e9d8;padding:4px 0 9px;width:100%;font-family:'Songti SC',serif;font-size:18px}.seat-card .avatar{width:64px;height:64px;border:1.5px solid #c9b887}.seat-card>strong{font-size:15px;margin:8px 0 4px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-state{font-size:12px;color:#b9e4c7;margin-bottom:6px}.pending .seat-state{color:#f4d78c}.enter-seat{width:100%;padding:7px 4px;border-radius:16px;background:#e6c991;min-height:36px}.seat-detail{margin-top:auto;font-size:12px;padding:7px 3px;background:transparent;color:#c3ccbc;min-height:32px}.vacant-label{flex:1;display:flex;align-items:center;color:#9bae9e;font-size:22px;font-family:'Songti SC',serif}.empty>small{color:#8eab99;font-size:12px;margin-bottom:8px}.seat-guide{border:1px solid #7d875a;padding:14px 6px;border-radius:10px;text-align:center;font-size:12px;color:#d7d2b5;margin:14px 0 0}.seat-console footer{font-size:10px}.settings-panel{background:#06281dc9;border-color:#6f9277;padding:18px;margin-bottom:14px}.settings-panel>h2{font-size:22px;letter-spacing:2px;color:#f0e1bc}.settings-panel .detail-heading{border:1px solid #4d7562;padding:12px;margin:12px 0;border-radius:10px}.settings-panel .detail-heading>div:last-child{flex:0 0 auto;text-align:right}.settings-panel .detail-heading strong{display:block;font:28px Georgia,serif;margin-top:5px}.settings-panel .detail-heading h2{font-size:18px}.settings-panel .detail-heading .avatar{width:54px;height:54px}.settings-panel form>button[type=submit]{width:100%;margin-top:12px;font-weight:600;font-size:18px;background:#e1c08b;border:1px solid #f2dca8}.settings-panel input{background:#052219}.points-preview{text-align:center;color:#c8d2c6;margin:18px 0 0}.points-preview strong{font:28px Georgia,serif;color:#e9c57e}.center{text-align:center}.test-tools{border-top:1px solid #436252;padding-top:15px;font-size:13px}.test-tools button{font-size:12px;margin-right:8px}summary{cursor:pointer;min-height:32px;color:#cfc7a6}.settings-panel .section-title{display:flex;margin:0}.settings-panel .audit-list{max-height:380px;overflow:auto;margin-bottom:0}.settings-panel .audit-list article{padding:12px 0}.settings-panel .audit-list p{font-size:12px}.settings-panel .poster{margin:12px 0;min-height:140px}.settings-panel .poster h2{font-size:26px}.settings-panel #member-results{max-height:220px;overflow:auto}.sr-label{font-size:12px;color:#bbcabd}.danger{background:#8e3e36;color:#fff2df;line-height:1.5}.qr-link{display:block;text-align:center}.hint{overflow-wrap:anywhere}.attendance-card{margin:18px 0;background:#0c3325d9;border:1px solid #708d6a;border-radius:12px;padding:18px}.attendance-card.pending{border-color:#c9ad75}.attendance-card.eliminated{border-color:#a37363}.attendance-card .attendance-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.attendance-card h2{font-size:18px;margin:0}.attendance-card strong{color:#e9d49d;font-size:18px}.attendance-card p{margin:12px 0 0;line-height:1.7;font-size:13px;color:#b9c7b9}.attendance-card small{display:block;margin-top:8px}.member-page .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.member-page .stats strong{font-size:23px}.member-page{max-width:480px}.member-page .profile h1{font-family:'Songti SC',serif}.member-page .poster{min-height:150px;margin:18px 0}.member-page .poster h2{font-size:28px}.member-page .profile .member-badge{font-size:9px}.member-page .code{background:#103124}.seat-console .secondary{margin-top:5px}button:disabled{cursor:wait}@media(max-width:380px){.seat-console{padding:18px 12px}.seat-grid{gap:7px}.seat-card{min-height:185px}.seat-card .avatar{width:56px;height:56px}.seat-heading{font-size:16px}.seat-console .top h2{font-size:24px}.member-page .stats strong{font-size:20px}}
.seat-console .top{padding-bottom:0;margin-bottom:8px}.seat-console .top h2{font-size:24px}.seat-console .console-title{font-size:25px;margin:12px 0}.seat-console .admin-tabs{margin:10px 0}.seat-console .event-title{margin-bottom:10px}.seat-console .seat-stats{padding:9px 0;margin:10px 0}.seat-console .seat-stats strong{font-size:25px;margin-top:4px}.seat-console .table-tabs{margin-bottom:10px}.seat-console .seat-grid{gap:8px}.seat-console .seat-card{min-height:148px;padding:5px}.seat-console .seat-heading{font-size:16px;padding:3px 0 6px;min-height:28px}.seat-console .seat-card .avatar{width:48px;height:48px}.seat-console .seat-card>strong{margin:5px 0 3px;font-size:14px}.seat-console .seat-state{font-size:11px;margin-bottom:3px}.seat-console .enter-seat{min-height:30px;padding:5px}.seat-console .seat-detail{min-height:28px;padding:4px}.seat-console .seat-guide{margin-top:10px;padding:10px 5px;font-size:11px}.seat-console footer{margin-top:10px;padding:10px 0}.seat-console .eyebrow{font-size:9px;letter-spacing:2px}
.seat-console{padding:14px 16px}.seat-console .top{margin-bottom:4px}.seat-console .top h2{font-size:22px;margin-top:4px}.seat-console .top .eyebrow{font-size:8px}.seat-console .console-title{font-size:24px;line-height:30px;margin:7px 0}.seat-console .admin-tabs{margin:7px 0;padding:3px}.seat-console .admin-tabs button{min-height:36px;padding:7px 10px;font-size:15px}.seat-console .event-title{font-size:12px;margin:8px 0}.seat-console .seat-alert{padding:9px 11px;font-size:12px}.seat-console .seat-stats{padding:7px 0;margin:8px 0;font-size:12px}.seat-console .seat-stats strong{font-size:24px;margin-top:2px}.seat-console .table-tabs{padding:4px;margin-bottom:8px}.seat-console .table-tabs button{min-height:34px;padding:5px}.seat-console .seat-card{min-height:142px}.seat-console .seat-card .avatar{width:42px;height:42px}.seat-console .seat-heading{font-size:15px;min-height:24px;padding:2px 0 4px}.seat-console .seat-card>strong{font-size:13px;line-height:18px;margin:4px 0 2px}.seat-console .seat-state{line-height:14px}.seat-console .enter-seat{min-height:28px;padding:4px;font-size:13px}.seat-console .seat-guide{font-size:10px;padding:8px 3px;margin:8px 0}.seat-console footer{margin:4px 0 0;font-size:9px;padding:6px 0}
.seat-console #promo-preview .poster{min-height:120px;padding:16px;margin:10px 0}.seat-console #promo-preview .poster h2{font-size:26px;margin:9px 0 6px}.seat-console #promo-preview .poster p{margin-bottom:8px}.seat-console #adjust-form>label{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;align-items:center;margin:12px 0;font-size:14px}.seat-console #adjust-form>label input{margin:0}.seat-console .settings-panel{padding:16px}.seat-console .settings-panel>h2{margin-bottom:12px}.seat-console .settings-panel .audit-list{max-height:230px}.seat-console #poster-file{font-size:12px}.seat-console .points-preview{margin:12px 0 0}.seat-console .test-tools{padding-top:10px}.seat-console .settings-panel .detail-heading{padding:10px}.seat-console .settings-panel .detail-heading .avatar{width:46px;height:46px}
.member-page .attendance-card{text-align:center;padding:18px 16px}.member-page .attendance-card>small{margin:0;color:#d6d0b5}.member-page .attendance-card .my-seat{font:500 28px 'Songti SC',serif;color:#f2e4c3;margin:10px 0 0}.member-page .attendance-card>p{margin-top:8px}.attendance-status{display:block;border:1px solid #5a986b;background:#114c2d;border-radius:24px;padding:9px;margin-top:14px}.pending .attendance-status{border-color:#b69b62;background:#514223;color:#f3dda6}.eliminated .attendance-status{border-color:#996a5e;background:#4c2923;color:#e9c4b3}.member-page .stats strong{font-family:Georgia,'Songti SC',serif;font-weight:400}
/* Visual restoration v2, scoped to member/admin only. */
.admin,.member{background:#001b14!important}
.seat-console,.member-page{max-width:560px!important;margin:auto;padding:22px 18px 12px!important;min-height:100vh;background:#00251b url('/assets/member-emerald-header-v2.png') center top/100% auto no-repeat}
.seat-console .top,.member-page .top{border:0!important;padding:0!important;margin:0 0 16px!important;align-items:flex-start;min-height:49px}
.seat-console .top>div:first-child,.member-page .top>div:first-child{display:flex;flex-direction:column-reverse}
.seat-console .top h2,.member-page .top h2{font:500 29px 'Songti SC','STSong',serif!important;letter-spacing:5px;color:#f6e5bd;margin:0 0 6px!important}
.seat-console .top .eyebrow,.member-page .top .eyebrow{font:8px Georgia,serif!important;letter-spacing:3px;color:#e0cea1}
.seat-console .status,.member-page .status{font-size:10px!important;color:#a6c9b5}
.seat-console .console-title{font:600 29px 'Songti SC',serif!important;letter-spacing:4px;margin:8px 0 12px!important}
.seat-console .admin-tabs{margin:8px 0 13px!important;background:#001d1680}
.seat-console .admin-tabs button{min-height:34px!important}
.seat-console .admin-tabs .active,.table-tabs .active{background:linear-gradient(120deg,#81723fbb,#493a20bb)!important;box-shadow:inset 0 0 0 1px #e9d49d,inset 0 1px 5px #ffedb780!important}
.seat-console .event-title{font:16px 'Songti SC',serif!important;margin:10px 0 16px!important}
.seat-console .seat-alert{padding:12px!important;border-color:#e2c890;background:linear-gradient(115deg,#a28b454d,#30281366);box-shadow:inset 0 1px 5px #eddca844,0 3px 9px #0004;font:14px 'Songti SC',serif!important;line-height:1.5!important;color:#faeac3}
.seat-console .seat-stats{padding:11px 0!important;margin:9px 0!important;background:#001a1459;box-shadow:inset 0 1px 1px #c4e8cc33,0 3px 6px #0004;font:14px 'Songti SC',serif!important}
.seat-console .seat-stats strong{font:30px Georgia,serif!important;color:#f6edd4}
.seat-console .seat-stats>div:nth-child(2) strong{color:#edcf84}
.seat-console .table-tabs{padding:6px!important;margin-bottom:10px!important;background:#082c2266;box-shadow:inset 0 1px 2px #ffffff21}
.seat-console .table-tabs button{min-height:36px!important;font:20px 'Songti SC',serif;border:1px solid #648976}
.seat-console .seat-grid{gap:7px!important}
.seat-console .seat-card{position:relative;min-height:174px!important;padding:7px 6px 9px!important;border-color:#719a84;border-radius:9px;background:linear-gradient(120deg,#366a5438,#001d1770);box-shadow:inset 0 1px 1px #ddffdb1f,0 4px 8px #0005;backdrop-filter:blur(12px)}
.seat-console .seat-card.pending{border-color:#f0d59e;background:linear-gradient(130deg,#9a874d70,#14261ab0);box-shadow:inset 0 0 5px #edd99975,0 0 8px #d1b56b22}
.seat-console .seat-heading{min-height:29px!important;padding:0 0 5px!important;font:600 17px 'Songti SC',serif!important}
.seat-console .seat-card .avatar{width:66px!important;height:66px!important;flex-shrink:0;border:2px solid #dac092;box-shadow:0 2px 6px #0006}
.seat-console .seat-card>strong{font:500 15px 'Songti SC',serif!important;margin:6px 0 5px!important}
.seat-console .seat-state{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #5eaa77;border-radius:24px;width:100%;min-height:26px;color:#e1f3d8;background:linear-gradient(110deg,#1b653a,#063c28);font:600 14px 'Songti SC',serif!important;margin:0!important}
.state-icon{width:17px;height:17px;filter:invert(92%) sepia(14%) saturate(620%) hue-rotate(66deg)}
.seat-console .pending .seat-state{width:auto;min-height:21px;padding:1px 7px;color:#f2d799;background:#65502260;border-color:#ac8f48;font-size:12px!important;margin-bottom:3px!important}
.pending .state-icon{width:14px;height:14px;filter:invert(86%) sepia(28%) saturate(522%)}
.seat-console .enter-seat{min-height:28px!important;padding:3px!important;background:linear-gradient(165deg,#fff0bc,#dfb774 52%,#a57b43);border:1px solid #fff0c1;box-shadow:inset 0 1px 3px #fff8;font:600 16px 'Songti SC',serif!important;color:#20190c}
.seat-console .seat-detail{min-height:24px!important;font-size:11px!important}
.entered .seat-detail{position:absolute;inset:29px 0 0;opacity:0;width:100%;height:calc(100% - 29px);margin:0}
.entered .seat-detail:focus-visible{opacity:1;background:#063e2bea}
.vacant-avatar{width:64px;height:64px;border:1px solid #84988b;border-radius:50%;display:grid;place-items:center;margin-top:8px}
.vacant-avatar img{width:40px;height:40px;filter:invert(66%);opacity:.9}
.seat-console .vacant-label{flex:0;font-size:16px!important;color:#e5e8d9}
.seat-console .seat-guide{padding:11px 4px!important;margin-top:11px!important;font:11px 'Songti SC',serif!important;background:#183c2555}
.settings-panel{background:linear-gradient(120deg,#44685344,#001d1799)!important;border-color:#8eaa8c;box-shadow:inset 0 1px 1px #fff2,0 5px 12px #0004;backdrop-filter:blur(14px)}
.settings-panel h2{font-family:'Songti SC',serif;font-weight:600}
.settings-panel form>button[type=submit]{background:linear-gradient(165deg,#f5e0ac,#d7ae6d 55%,#ab8148)!important;box-shadow:inset 0 1px 2px #fff8;font-family:'Songti SC',serif}
.member-page{max-width:460px!important}.member-page .top{margin-bottom:27px!important;min-height:54px}.member-page .profile{gap:14px}
.member-page .profile .avatar{width:84px;height:84px;border:2px solid #dcc297}.member-page .profile h1{font:600 22px 'Songti SC',serif;margin:0 0 10px}
.member-page .profile #edit{margin-left:auto;white-space:nowrap;color:#e4d9bd;font-size:12px}.member-page .profile .profile-code{font-size:12px;color:#e4dec9;text-align:left}
.member-page .stats{margin:16px 0 12px;padding:13px 0;border:1px solid #698575;border-radius:9px;background:linear-gradient(130deg,#81978633,#09221c99)}
.member-page .stats>div{text-align:center;padding:0}.member-page .stats>div+div{border-color:#8b998c88;padding:0}.member-page .stats small{font-size:12px;color:#e0e1cb}.member-page .stats strong{font:26px Georgia,'Songti SC',serif!important;color:#f4e2b8;margin-top:6px}
.member-page .attendance-card{padding:16px 15px;margin:12px 0 18px;border-color:#b5c0a4;background:linear-gradient(125deg,#55796059,#00231b9c);box-shadow:inset 0 1px 2px #fff2;backdrop-filter:blur(12px)}
.attendance-status{margin:14px 8px 10px;background:linear-gradient(110deg,#2b633d,#103624);font:600 18px 'Songti SC',serif}
.pending .attendance-status{background:linear-gradient(110deg,#97764299,#4a3b20);border-color:#d8b671}
.member-page .section-title{margin:15px 3px 10px}.member-page .section-title h2{font:600 16px 'Songti SC',serif;color:#eadbbb}
.member-page .wallet{grid-template-columns:1fr;gap:9px}
.member-page .ticket{min-height:66px;padding:14px 25px;text-align:left;display:grid;grid-template-columns:1fr auto;align-items:center;background:#c5c5a7}
.member-page .ticket:before{background:linear-gradient(125deg,#3c614dcc,#032a1dda),url('/assets/emerald-background.png') center/cover}
.member-page .ticket strong{font:600 16px 'Songti SC',serif;color:#f0e2be}.member-page .ticket small{grid-column:1;font-size:12px;margin:5px 0 0;color:#d5dfc9}.member-page .ticket span{grid-column:2;grid-row:1/3;font-size:11px}
.member-page .poster{min-height:112px!important;margin:14px 0 0;padding:18px}.member-page .poster h2{font-family:'Songti SC',serif;font-size:27px!important;margin:7px 0}.member-page .poster .eyebrow{font-size:8px}.member-page .poster p{font-size:11px}
@media(min-width:600px){.seat-console{padding:28px 24px!important}.seat-console .seat-card{min-height:213px!important;padding:10px!important}.seat-console .seat-card .avatar,.vacant-avatar{width:86px!important;height:86px!important}.seat-console .seat-heading{font-size:20px!important}.seat-console .seat-card>strong{font-size:19px!important}.seat-console .seat-state{min-height:32px}.seat-console .enter-seat{min-height:34px!important}}
@media(max-width:370px){.seat-console,.member-page{padding-left:13px!important;padding-right:13px!important}.seat-console .seat-card{min-height:166px!important;padding-left:4px!important;padding-right:4px!important}.seat-console .seat-card .avatar{width:60px!important;height:60px!important}.seat-console .seat-heading{font-size:15px!important}.member-page .profile .avatar{width:72px;height:72px}.member-page .stats strong{font-size:23px!important}}
.seat-console .vacant-label{flex:none!important;display:block!important}
@media(max-width:599px){
.seat-console .top{min-height:42px;margin-bottom:4px!important}
.seat-console .top h2{font-size:25px!important}
.seat-console .console-title{font-size:25px!important;margin:4px 0 7px!important;line-height:1.25!important}
.seat-console .admin-tabs{margin:5px 0 8px!important}
.seat-console .event-title{font-size:14px!important;margin:7px 0 10px!important}
.seat-console .seat-alert{padding:9px!important;font-size:12px!important}
.seat-console .seat-stats{padding:7px 0!important;font-size:12px!important}
.seat-console .seat-stats strong{font-size:26px!important}
.seat-console .table-tabs{padding:4px!important}.seat-console .table-tabs button{min-height:30px!important;font-size:18px}
.seat-console .seat-card{min-height:164px!important;padding:5px!important}
.seat-console .seat-heading{min-height:24px!important;font-size:16px!important;padding-bottom:3px!important}
.seat-console .seat-card .avatar{width:62px!important;height:62px!important}
.seat-console .seat-card>strong{margin:4px 0!important;font-size:14px!important;line-height:18px!important}
.seat-console .pending .seat-state{min-height:18px!important;line-height:16px!important}
.seat-console .enter-seat{min-height:26px!important;padding:2px!important}
.seat-console .empty .seat-detail{position:absolute;inset:24px 0 0;opacity:0;width:100%;height:calc(100% - 24px)}
.seat-console .empty .seat-detail:focus-visible{opacity:1;background:#063e2bea}
}
.seat-console .settings-panel{padding:13px!important}
.settings-panel .sr-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.settings-panel #member-search{margin:0;padding:9px 12px}
.settings-panel .detail-heading{margin:8px 0!important;padding:8px!important}
.seat-console #adjust-form>label{margin:8px 0!important;font-size:12px!important}
.settings-panel input{padding:9px 10px}
.settings-panel form>button[type=submit]{padding:8px 12px;margin-top:8px;font-size:16px!important;border-radius:20px}
.settings-panel .hint{font-size:10px;line-height:1.4;margin:8px 0}
.settings-panel .test-tools{font-size:10px;padding-top:5px!important}.settings-panel summary{min-height:24px}
.settings-panel #promotion-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}
.settings-panel #promotion-form>label{margin:0;font-size:11px}
.settings-panel #poster-file{max-width:100%;padding:5px;border:0;font-size:10px!important}
.settings-panel #promotion-form>button{grid-column:2;grid-row:1;margin:0;font-size:15px!important}
.settings-panel #promotion-form>p,.settings-panel #promotion-form>details{grid-column:1/-1;margin:0}
.settings-panel .audit-list{max-height:145px!important}
.settings-panel .audit-list article{padding:8px 0!important}.settings-panel .audit-list p{margin:4px 0!important;font-size:11px!important}
.settings-panel .audit-list time{font-size:10px}
.settings-panel #records-refresh{font-size:11px;padding:7px;background:transparent}
.attendance-status .state-icon{width:22px;height:22px;vertical-align:middle;margin-right:5px}
.member-page .stats strong{font-weight:400!important}
/* Image-only promotions keep the whole uploaded picture, without a dark overlay. */
.member-page .poster.image-only,.seat-console #promo-preview .poster.image-only{padding:0!important;min-height:0!important}
.custom-poster.image-only:before{display:none}
.custom-poster.image-only .promo-image{position:static;display:block;width:100%;height:auto;object-fit:contain}
.settings-panel #promotion-form>.promo-text-toggle{grid-column:1/-1;display:flex;align-items:center;gap:9px;min-height:36px;margin:0;font-size:14px;color:#eedcba}
.settings-panel .promo-text-toggle input{width:18px;height:18px;margin:0;accent-color:#c5ac72}
.settings-panel #promotion-form>.promo-text-hint{margin:0 0 6px}
.settings-panel #promotion-form>.portrait-upload{grid-column:1/-1;border-top:1px solid #4e6b56;padding-top:10px}
.portrait-upload label{margin:0;font-size:13px}.portrait-thumbnail{display:block;max-width:150px;max-height:230px;object-fit:contain;border-radius:6px;margin:8px auto}
.member-page .promotion-open{display:block;padding:0;background:transparent;color:inherit;width:100%;text-align:left;margin-top:14px}
.member-page .promotion-open:hover{filter:none}.member-page .promotion-open .poster{margin:0}
.poster-open-hint{display:block;text-align:center;font-size:11px;color:#cbbd99;padding:8px}
dialog.poster-dialog{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;padding:64px 12px 24px;border:0;border-radius:0;background:#07110fee;overflow:auto;overscroll-behavior:contain}
.poster-dialog .full-poster{display:block;width:auto;height:auto;max-width:100%;margin:0 auto}
.poster-dialog #close{position:fixed;top:calc(12px + env(safe-area-inset-top));right:16px;min-width:70px;min-height:40px;margin:0;background:#e0c28c;color:#18251d;box-shadow:0 3px 15px #0008}
@media(min-width:700px){.poster-dialog .full-poster{max-width:600px}}
.member-top-ten{margin-top:28px}
.card-actions{display:grid;gap:14px;margin-top:24px}
.card-type-toolbar{display:flex;justify-content:flex-end;margin-top:18px}
.type-manager{max-height:90vh;overflow:auto}
.type-list article{display:flex;gap:8px;align-items:center;padding:15px 0;border-top:1px solid #466353}
.type-list article>div{flex:1;min-width:0;overflow-wrap:anywhere}
.type-list small{display:block;margin-top:6px}
.type-list button{padding:8px;flex-shrink:0}
.card-actions>button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:24px 20px;background:linear-gradient(120deg,#284b3c,#092c22);border:1px solid #8e9775;color:#f1dfb6;text-align:left}
.card-actions>button strong{font-size:22px}
.card-actions>button small{font-size:13px;color:#b6cbbf}
.card-action-number{position:absolute;right:20px;top:18px;font-size:28px;opacity:.35}
.card-explainer{line-height:1.8;margin:18px 0 28px}
.card-records p,.card-records strong{overflow-wrap:anywhere}
.card-issue-dialog{max-height:90vh;overflow:auto}
.card-issue-dialog fieldset{border:0;padding:0;margin:0;min-width:0}
.card-issue-dialog [hidden]{display:none!important}
.card-recipient{padding:14px;border:1px solid #577363;border-radius:8px;margin:12px 0 22px;background:#123328;overflow-wrap:anywhere}
.card-recipient small{display:block;margin-top:6px}
#card-member-results button{display:flex;align-items:center;gap:10px;width:100%;margin:8px 0;text-align:left;background:#193a2e;color:#e7d7b2}
#card-member-results button>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
#card-member-results small{display:block}
#card-member-results .avatar{width:36px;height:36px}
#confirm-card-issue{width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.voucher-issue-panel{margin-top:24px;padding-top:22px;border-top:1px solid #547565}
.voucher-issue-panel p{overflow-wrap:anywhere}
.voucher-issue-panel button{width:100%}
.member-top-ten ol{padding:0;margin:0;list-style:none;border:1px solid #547565;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.035)}
.member-top-ten li{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #355247;min-width:0}
.member-top-ten li:last-child{border-bottom:0}
.member-top-ten li.is-me{background:rgba(145,199,157,.12)}
.member-top-ten .avatar{width:36px;height:36px;flex-shrink:0}
.member-top-ten .ranking-place{width:24px;color:#dec697;flex-shrink:0;font-variant-numeric:tabular-nums}
.member-top-ten .ranking-name{flex:1;min-width:0;overflow-wrap:anywhere}
.member-top-ten .ranking-name small{margin-left:5px;color:#a5d9ae}
.member-top-ten li>strong{white-space:nowrap;font-variant-numeric:tabular-nums;color:#ead6aa}
.member-top-ten li>strong small{font-size:10px}
.admin-tabs #scan-voucher{white-space:nowrap}
/* Compact member wallet: preview groups at home, individual IDs in detail. */
.member .wallet-preview .section-title{align-items:center;gap:8px}
.member .wallet-preview h2{font-size:18px}
.member .wallet-preview h2 small{font:12px -apple-system,BlinkMacSystemFont,sans-serif;margin-left:5px;white-space:nowrap}
.member .wallet-link{background:transparent;color:#dfca98;padding:8px 0;min-height:40px;font-size:13px;white-space:nowrap}
.member .wallet-page{background:#00251b!important}
.member .wallet-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.member .wallet-header button{background:transparent;color:#dfca98;min-height:44px;padding:6px 0;white-space:nowrap}
.member .wallet-header h1{font-size:22px;margin:0;overflow-wrap:anywhere}
.member .wallet-tabs{display:flex;gap:5px;padding:4px;border:1px solid #4d7060;border-radius:10px;margin-bottom:20px}
.member .wallet-tabs button{flex:1;min-width:0;min-height:44px;padding:5px;font-size:13px;background:transparent;color:#a7b9ab}
.member .wallet-tabs button.active{background:#33432c;color:#f0dcaa}
.member .wallet-empty{color:#b1c1b4;padding:32px 12px;text-align:center;border:1px solid #4d7060;border-radius:10px}
.member .wallet-page .ticket strong{padding-right:68px;overflow-wrap:anywhere}
/* Admin follows the timer console. Keep member/TV emerald styling isolated. */
body.admin-surface{--console-bg:#101512;--console-panel:#191f1b;--console-line:#343e36;--console-text:#f0f2ef;--console-muted:#a1aca4;--console-gold:#d1b574;background:var(--console-bg);color:var(--console-text)}
.admin{background:var(--console-bg)!important;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
.admin .seat-console{background:var(--console-bg)!important;padding:14px 14px 10px!important;color:var(--console-text)}
.admin .seat-console .top{min-height:30px;margin:0 0 8px!important;align-items:center}
.admin .seat-console .top h2{font:600 20px/1.3 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;letter-spacing:0;color:var(--console-text);margin:0!important}
.admin .top .eyebrow{display:none}
.admin .top small,.admin .top .status{font-size:11px!important;color:var(--console-muted)!important}
.admin .console-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0!important}
.admin .admin-tabs{margin:0 0 8px!important;padding:3px;background:var(--console-panel);border-color:var(--console-line);border-radius:9px;box-shadow:none}
.admin .admin-tabs button{min-height:36px!important;font-family:inherit;font-size:14px;font-weight:500;line-height:1.2;color:var(--console-muted);border-radius:6px}
.admin .admin-tabs .active,.admin .table-tabs .active{background:#2b3024!important;color:var(--console-gold)!important;border-color:#665d40!important;box-shadow:none!important}
.admin .event-title{font:14px/1.4 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;letter-spacing:0;text-align:left;margin:6px 0!important;color:var(--console-gold)}
.admin .seat-alert{padding:7px 10px!important;font:12px/1.4 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;color:var(--console-muted);background:var(--console-panel);border:1px solid var(--console-line);border-radius:7px;box-shadow:none}
.admin .seat-stats{padding:8px 0!important;margin:6px 0!important;border-color:var(--console-line);background:var(--console-panel);box-shadow:none;border-radius:8px;font-size:12px;color:var(--console-muted)}
.admin .seat-stats>div{display:flex;align-items:center;justify-content:center;gap:7px;border-color:var(--console-line)}
.admin .seat-stats strong{display:inline;font:600 18px/1.2 -apple-system,BlinkMacSystemFont,sans-serif!important;color:var(--console-text)}
.admin .table-tabs{padding:3px!important;margin-bottom:7px!important;gap:5px;background:var(--console-panel);border-color:var(--console-line);box-shadow:none;border-radius:8px}
.admin .table-tabs button{min-height:32px!important;font:500 15px/1.2 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;background:transparent;border-color:transparent;color:var(--console-muted);border-radius:5px}
.admin .table-tabs small{font-size:11px;color:var(--console-muted)}
.admin .seat-grid{gap:7px!important}
.admin .seat-card{min-height:0!important;height:132px;padding:5px 5px 4px!important;background:var(--console-panel);border:1px solid var(--console-line);border-radius:8px;box-shadow:none;backdrop-filter:none;gap:0}
.admin .seat-card.pending{border-color:#9e8856;background:#24271e}
.admin .seat-card.entered{border-color:#327559;background:#17241d}
.admin .seat-heading{min-height:21px!important;padding:0 0 3px!important;font:600 13px/1.3 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;color:var(--console-text)}
.admin .seat-card .avatar{width:30px!important;height:30px!important;border:1px solid #6c786d}
.admin .seat-card>strong{font:500 13px/1.3 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;margin:3px 0!important;color:var(--console-text)}
.admin .seat-state,.admin .pending .seat-state{min-height:16px;padding:0 3px;font:500 11px/1.3 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;background:none;border:0;color:#8dc7a6;margin:0!important}
.admin .pending .seat-state{color:var(--console-gold)}
.admin .state-icon{width:12px;height:12px}
.admin .enter-seat{min-height:28px!important;margin-top:auto;padding:3px!important;font:600 13px/1.3 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;background:#197456;border:1px solid #379a77;color:#fff;box-shadow:none;border-radius:5px}
.admin .seat-detail{min-height:25px!important;padding:3px!important;font-size:11px!important;color:var(--console-muted)}
.admin .entered .seat-detail{inset:23px 0 0;height:calc(100% - 23px)}
.admin .vacant-avatar{width:30px;height:30px;margin-top:0;border-color:#4d5950}
.admin .vacant-avatar img{width:21px;height:21px;opacity:.7}
.admin .empty>small{font-size:10px;margin:0;color:var(--console-muted)}
.admin .seat-guide{margin:7px 0 0!important;padding:5px 0!important;font:10px/1.4 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif!important;background:none;border:0;color:var(--console-muted)}
.admin footer{font-size:10px;padding:5px 0!important;margin:0!important;color:var(--console-muted)}
.admin .settings-panel,.admin .card-actions>button,.admin .card-records{background:var(--console-panel)!important;border-color:var(--console-line)!important;box-shadow:none!important;backdrop-filter:none;color:var(--console-text)}
.admin .settings-panel h2,.admin .card-actions strong{font-family:inherit!important;color:var(--console-text)}
.admin .settings-panel form>button[type=submit]{background:#245f9e!important;color:#fff!important;border-color:#478ace!important;box-shadow:none!important}
.admin input,.admin select,.admin textarea,body.admin-surface dialog input,body.admin-surface dialog select{background:#101512;color:#f0f2ef;border-color:#424c44}
body.admin-surface dialog{background:#191f1b;color:#f0f2ef;border-color:#4e574c;box-shadow:0 20px 80px #0008}
body.admin-surface dialog h2,body.admin-surface dialog h3{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:#f0f2ef}
@media(max-height:680px) and (max-width:600px){.admin .seat-console{padding-top:8px!important}.admin .seat-card{height:120px}.admin .seat-card .avatar,.admin .vacant-avatar{width:24px!important;height:24px!important}.admin .seat-stats{padding:5px 0!important}}
/* Subtle status-only motion: no layout movement, no blinking text. */
.member-page .attendance-card.entered .attendance-status{
 position:relative;isolation:isolate;border-color:#8abf8b;
}
.member-page .attendance-card.entered .attendance-status::before{
 content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
 background-image:linear-gradient(110deg,transparent 35%,rgba(179,255,196,.12) 43%,rgba(191,255,208,.44) 50%,rgba(179,255,196,.12) 57%,transparent 65%);
 background-size:300% 100%;background-repeat:no-repeat;background-position:100% 0;
 animation:member-entered-sheen 2.8s ease-in-out infinite;
}
@keyframes member-entered-sheen{0%,15%{background-position:100% 0}85%,100%{background-position:0% 0}}
.member-page .attendance-card.entered .attendance-status::after{
 content:'';position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
 box-shadow:0 0 16px 2px rgba(104,215,145,.32),inset 0 0 12px rgba(157,244,173,.16);
 opacity:.18;animation:member-entered-breathe 3.4s ease-in-out infinite;
}
@keyframes member-entered-breathe{0%,100%{opacity:.18}50%{opacity:.85}}
@media(prefers-reduced-motion:reduce){
 .member-page .attendance-card.entered .attendance-status::before{animation:none;display:none}
 .member-page .attendance-card.entered .attendance-status::after{animation:none;opacity:.25}
}
