/* Player management page */
.players-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:14px 0}.players-filters label{flex:1;min-width:150px}
.players-list tr.selected td{background:#fff2d6}.players-list td small{display:block;color:#a08c77;font-size:11px}.players-list button{padding:5px 11px;font-size:12px}
.players-accounts{margin-top:20px}.players-accounts summary{cursor:pointer;font-weight:700}.players-accounts button{margin:2px 4px 2px 0;padding:3px 9px;font-size:11px}
.pm-editor{padding:20px}.pm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}.pm-head h3{margin:0 0 4px;font-size:20px}.pm-head .actions{display:flex;flex-wrap:wrap;gap:6px}
.pm-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:14px 0 16px;border-bottom:1px solid #e3cfb4}.pm-tabs button{border:0;border-bottom:3px solid transparent;border-radius:6px 6px 0 0;background:none;color:#8a6d4c;padding:9px 14px;font-weight:700}.pm-tabs button.selected{color:#5a3f2a;border-bottom-color:#b8925a;background:#fff5e3}
.pm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.pm-card{border:1px solid #e6d6b8;border-radius:12px;background:#fffdf6;padding:14px 16px;min-width:0}.pm-card h4{margin:0 0 8px;font-size:14px;color:#7a5a3c}.pm-card h4+h4,.pm-card .actions+h4{margin-top:16px}.pm-card label{display:block;margin-top:10px}.pm-card .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.pm-facts{display:grid;grid-template-columns:110px 1fr;gap:6px 10px;font-size:12px;margin:8px 0 0}.pm-facts dt{color:#a08c77}.pm-facts dd{margin:0;overflow-wrap:anywhere}
.pm-table{width:100%;min-width:0!important;border-collapse:collapse;font-size:12px}.pm-table th,.pm-table td{padding:6px 8px;border-bottom:1px solid #eadcc2;white-space:normal;vertical-align:middle}.pm-table input[type=number]{width:110px}.pm-table button{padding:4px 9px;font-size:11px}.pm-table tr.pm-worn td{background:#f6f1e3}
.pm-add{display:flex;gap:8px;margin-top:10px;align-items:center}.pm-add select{flex:1;min-width:0}
.pm-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.pm-slots label{margin:0;font-size:12px}
#pm-editor textarea{box-sizing:border-box;width:100%;resize:vertical;background:#fffaf0;border:1px solid #d7c49e;border-radius:8px;padding:10px;font:inherit}
#pm-editor [data-panel]>form>label{display:block;margin-top:14px}#pm-editor [data-panel]>form>.actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
@media(max-width:700px){.pm-editor{padding:12px}.pm-grid{grid-template-columns:1fr}.pm-facts{grid-template-columns:1fr}.pm-table input[type=number]{width:80px}}
/* Item 36: stat point respec card (history + give back this week's turn) */
.pm-respec .pm-respec-list{margin:6px 0 10px;padding-left:18px;font-size:13px;max-height:180px;overflow:auto}.pm-respec label{display:block;margin-top:8px}.pm-respec .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* Item 53: the town storage, read only. */
.pm-storage{margin-top:12px}.pm-storage[hidden]{display:none}.pm-storage-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;padding:0;list-style:none}.pm-storage-list li{padding:3px 10px;border:1px solid #c9d3c4;border-radius:999px;font-size:13px}
/* Friends card (item 62): read only, the list scrolls inside the card. */
.pm-friends-list{max-height:220px;margin:6px 0;padding:0;overflow:auto;list-style:none;display:grid;gap:3px}.pm-friends-list li{display:flex;align-items:center;gap:6px;font-size:13px}.pm-friend-dot{width:8px;height:8px;border-radius:50%;background:#a7a29a}.pm-friend-online .pm-friend-dot{background:#3fa63a}
/* GM tools (item 99): ban / mute / confiscate boxes, revoke box, sanction badges, the history tab. */
.pm-sanction,.pm-confiscate-form,.pm-revoke{display:grid;gap:8px}.pm-sanction[hidden],.pm-confiscate-form[hidden],.pm-revoke[hidden],.pm-confirm-extra[hidden],#pm-confirm-logout-label[hidden]{display:none}.pm-confirm-extra{display:grid;gap:6px;margin:6px 0}.pm-check{display:flex;align-items:center;gap:6px;font-weight:normal}.pm-check input{width:auto;min-height:0}.pm-scope{display:flex;flex-wrap:wrap;gap:12px;border:0;margin:0;padding:0}.pm-scope legend{font-weight:600;padding:0}.pm-presets{display:flex;flex-wrap:wrap;gap:6px}.pm-presets button.selected{background:#2f6b2c;color:#fff;border-color:#2f6b2c}.pm-conf-gear{display:grid;gap:4px}.pm-sanction-badge{font-weight:600}.pm-adminlog{margin:6px 0;padding-left:18px;max-height:240px;overflow:auto;font-size:13px}
@media(max-width:600px){.pm-sanction,.pm-confiscate-form,.pm-revoke{width:100%;box-sizing:border-box}.pm-presets button,.pm-sanction .actions button,.pm-confiscate-form .actions button,.pm-revoke .actions button,#pm-goto,#pm-mute,#pm-ban,#pm-confiscate{min-height:44px}.pm-presets button{flex:1 1 30%}}
/* Item 108: names and deletion (rename cards, "please rename", pending deletion, held names) */
.pm-deleting-badge,.pm-rename-badge{display:inline-block;margin-top:2px;font-size:12px}
.pm-lifecycle h5{margin:12px 0 4px;font-size:13px}
.pm-name-history{margin:0;padding-left:18px;font-size:13px;max-height:160px;overflow:auto}
.players-names .pm-name-release{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.players-names .pm-name-release input{min-width:120px;flex:1 1 120px}
@media(max-width:600px){.pm-lifecycle .actions button,.players-names .pm-name-release button{min-height:44px}}
/* Item 94: account security on the accounts table (status, sessions, reason + actions) and the one-time temporary password box. */
.players-accounts .pm-account-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:220px}
.players-accounts .pm-account-actions input{min-width:110px;flex:1 1 110px}
.players-accounts .pm-account-status{font-size:12px;max-width:240px}
.pm-temp-password{margin:12px 0;padding:12px 14px;border:1px solid #c79b3b;border-radius:8px;background:#fff7e3;color:#3b2a10}
.pm-temp-password p{margin:0 0 8px;font-size:13px}
.pm-temp-password code{display:inline-block;padding:6px 10px;border-radius:6px;background:#2b2116;color:#ffe9b8;font-size:18px;letter-spacing:.06em;user-select:all}
.pm-temp-password .actions{display:flex;gap:8px;margin-top:10px}
@media(max-width:600px){.players-accounts .pm-account-actions button{min-height:44px}}