/* Administration en ligne : styles limités au panneau, sans toucher au site. */
body .layout{max-width:1240px;gap:14px;padding-top:14px;padding-bottom:20px}
body .layout>.panel,body .layout .login>.panel{padding:24px;border-width:2px;background:#fffaf0;gap:16px}
body .layout .panel p{margin:0}
body .layout h2{font-family:var(--body);font-size:19px;font-weight:800;line-height:1.3}
body .layout>h1{font-size:30px;padding:4px 2px}
body .layout label{font-size:12px;color:var(--muted)}
body .layout input,body .layout select,body .layout textarea{min-height:42px;border-width:1px;border-color:#d5c9ac;border-radius:8px;font-size:14px;font-weight:400}
body .layout input:focus,body .layout select:focus,body .layout textarea:focus{border-color:var(--leaf);outline:2px solid #d8e8c6;outline-offset:1px}
body .layout input[type=checkbox]{accent-color:var(--leaf)}
body .layout input[type=file]::file-selector-button{background:#e8efdc;color:#3b5d2a;border:0;border-radius:5px;padding:5px 10px;font:600 12px var(--body);cursor:pointer;margin-right:10px}
body .layout .btn{font-family:var(--body);font-size:14px;font-weight:700;min-height:42px;padding:9px 15px;border-radius:10px;box-shadow:none;line-height:1.25}
body .layout .btn.green{background:var(--leaf)}
body .layout .btn.small{font-size:12px;min-height:36px;padding:7px 12px}
body .layout .btn:disabled{opacity:.45;cursor:default}
body .layout .btn:focus-visible{outline:3px solid var(--gold-deep);outline-offset:3px}
body .layout .stat,body .layout .item{border-width:1px;border-color:#e7dfcd;background:#fffdf7}
body .layout .stat b{font-family:var(--body);font-weight:800;font-size:30px}
body .layout .item b.t{font-size:15px}
.layout>.tabs{flex-wrap:wrap;overflow:visible;border-width:2px;gap:4px;padding:5px}
.layout>.tabs a{font-size:13px;padding:8px 10px;min-height:36px}
#online-admin{gap:20px;padding:24px;border-width:2px;background:#fffaf0}
#online-admin [hidden]{display:none!important}
#online-admin p{margin:0}
#online-admin .online-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#online-admin .online-eyebrow{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
#online-admin h1{font-size:30px}
#online-admin h2{font-family:var(--body);font-size:19px;font-weight:800;line-height:1.3}
#online-admin h3{font-size:15px;margin:0;color:var(--wood)}
#online-admin .online-caption{display:flex;flex-wrap:wrap;gap:5px 20px;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}
#online-admin .note{font-size:12px;color:var(--muted)}
#online-admin #online-status{font-size:12px}
#online-admin #online-status.error{background:#fce7e8;color:#8e1e30;padding:8px 12px;border-radius:8px;width:100%}
#online-admin .btn{font-family:var(--body);font-weight:700;font-size:14px;letter-spacing:0;min-height:42px;padding:9px 15px;border-radius:10px;box-shadow:none;line-height:1.25;width:auto}
#online-admin .btn.green{background:var(--leaf);color:#fff}
#online-admin .btn.neutral{background:#efe7d5;color:var(--wood-deep)}
#online-admin .btn:hover:not(:disabled){filter:brightness(.96)}
#online-admin .btn:disabled{opacity:.45;cursor:default}
#online-admin .btn:focus-visible,#online-admin summary:focus-visible,#online-admin a:focus-visible{outline:3px solid var(--gold-deep);outline-offset:3px}
#online-admin #player-directory{display:grid;gap:20px;min-width:0}
#online-admin .online-search{background:#f3efdf;border:1px solid #e7dfc9;border-radius:12px;padding:16px;display:grid;gap:14px}
#online-admin .online-search-line{display:flex;gap:10px;align-items:flex-end}
#online-admin .online-search-line label{flex:1;min-width:0}
#online-admin label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}
#online-admin input,#online-admin select,#online-admin textarea{min-height:42px;border-width:1px;border-color:#d5c9ac;border-radius:8px;font-size:14px;font-weight:400;color:var(--leaf-deep)}
#online-admin input:focus,#online-admin select:focus,#online-admin textarea:focus{border-color:var(--leaf);outline:2px solid #d8e8c6;outline-offset:1px}
#online-admin .online-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:10px}
#online-admin .online-reset{border:0;background:none;color:var(--wood);font:600 12px var(--body);text-decoration:underline;text-underline-offset:3px;min-height:42px;padding:0 4px;cursor:pointer}
#online-admin .online-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
#online-admin .online-count{font-size:15px;font-weight:700}
#online-admin .online-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;border:1px solid #e7dfcd;border-radius:12px;overflow:hidden;background:#fffdf7}
#online-admin .online-table th{padding:10px 14px;background:#f5f0e3;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;text-align:left;color:var(--muted)}
#online-admin .online-table td{padding:16px 14px;border-top:1px solid #ebe5d5;vertical-align:middle;overflow-wrap:anywhere;font-size:13px}
#online-admin .online-table th:first-child{width:29%}
#online-admin .online-table th:nth-child(2){width:15%}
#online-admin .online-table th:nth-child(3){width:23%}
#online-admin .online-table th:nth-child(4){width:21%}
#online-admin .online-table th:last-child{width:12%}
#online-admin .online-table tr:hover td{background:#fcfaef}
#online-admin .online-member{display:flex;gap:10px;align-items:center;min-width:0}
#online-admin .online-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;background:#e7efdb;color:var(--leaf);border-radius:12px;font-size:15px;font-weight:800}
#online-admin .online-avatar.modo{background:#eee5f7;color:#68418d}
#online-admin .online-identity{min-width:0;display:grid;gap:2px}
#online-admin .online-name{font-size:15px;font-weight:800;color:var(--wood-deep)}
#online-admin .online-email{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
#online-admin .online-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
#online-admin .online-badge{display:inline-flex;align-items:center;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700;background:#f0eadc;color:#61563d;line-height:1.4}
#online-admin .online-badge.modo{background:#eee5f7;color:#68418d}
#online-admin .online-badge.allowed{background:#e8f0de;color:#375f25}
#online-admin .online-badge.banned{background:#fce6e7;color:#962538}
#online-admin .online-meta{display:grid;gap:3px;color:var(--muted);font-size:12px;line-height:1.5}
#online-admin .online-meta strong{font-weight:600;color:var(--leaf-deep)}
#online-admin .online-open{min-height:36px;padding:8px 10px;white-space:nowrap}
#online-admin .online-empty{padding:28px 18px;border:1px dashed #d5c9ac;border-radius:10px;text-align:center;color:var(--muted);font-size:14px}
#online-admin .online-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px}
#online-admin .online-card{display:grid;gap:14px;min-width:0;padding:18px;border:1px solid #e4dac2;border-radius:12px;background:#fffdf7}
#online-admin .online-card .online-card{padding:16px;background:#faf7ed}
#online-admin #player-detail{display:grid;gap:16px;scroll-margin-top:20px}
#online-admin #player-detail:not([hidden]){animation:online-profile-in .16s ease-out}
@keyframes online-profile-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
#online-admin .online-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#online-admin .online-detail-heading{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid #e9e1ce}
#online-admin .online-detail-heading h2{font-size:25px;color:var(--wood-deep);outline:none}
#online-admin.member-open .online-eyebrow{display:none}
#online-admin.member-open .online-caption{padding-bottom:0;border:0}
#online-admin.member-open .online-caption>.note:first-child{display:none}
#online-admin .online-detail-secondary{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:start;min-width:0}
#online-admin .online-detail-tools{display:grid;gap:10px;min-width:0}
#online-admin .online-id{font:11px ui-monospace,monospace;color:var(--muted);overflow-wrap:anywhere}
#online-admin .online-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}
#online-admin .online-facts div{min-width:0}
#online-admin .online-facts dt{font-size:11px;color:var(--muted);margin-bottom:4px}
#online-admin .online-facts dd{margin:0;font-size:14px;overflow-wrap:anywhere}
#online-admin .online-actions{display:flex;flex-wrap:wrap;gap:8px}
#online-admin .online-session{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid #e9e1ce}
#online-admin details{font-size:13px;border-top:1px solid #e9e1ce;padding-top:12px;min-width:0}
#online-admin summary{font-size:13px}
#online-admin pre{max-height:360px;overflow:auto;padding:12px;background:#f2eee3;border-radius:8px;font-size:12px}
#online-admin .online-danger{margin-top:4px}
#online-admin .online-danger summary{color:var(--danger)}
#online-admin .online-danger form{display:grid;gap:12px;margin-top:12px}
#online-admin #release-form{display:grid;gap:12px}
#online-admin .online-release-meta{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:12px}
#online-admin .online-release-notes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#online-admin .online-release-notes textarea{min-height:110px}
#online-admin .online-upload-box{display:grid;gap:8px;padding:10px;border:1px dashed #c9bd9c;background:#f7f3e7;border-radius:10px}
#online-admin #apk-progress{height:6px;accent-color:var(--leaf)}
#online-admin #apk-progress-text:empty{display:none}
#online-admin #release-list>p{font-size:13px;color:var(--muted)}
@media(max-width:900px){
 #online-admin .online-filters{grid-template-columns:repeat(4,minmax(0,1fr))}
 #online-admin .online-reset{grid-column:1/-1;justify-self:start;min-height:28px}
 #online-admin .online-table th,#online-admin .online-table td{padding-left:10px;padding-right:10px}
 #online-admin .online-avatar{display:none}
}
@media(max-width:700px){
 #online-admin{padding:16px;gap:16px}
 #online-admin h1{font-size:26px}
 #online-admin .online-heading{align-items:flex-start}
 #online-admin .online-heading>.btn{min-height:36px;padding:8px 10px;font-size:12px}
 #online-admin .online-search{padding:12px}
 #online-admin .online-search-line{flex-wrap:wrap}
 #online-admin .online-search-line label{flex-basis:100%}
 #online-admin .online-filters{grid-template-columns:1fr 1fr}
 #online-admin .online-table,#online-admin .online-table tbody{display:block;border:0;background:none;border-radius:0;overflow:visible}
 #online-admin .online-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #online-admin .online-table tbody{display:grid;gap:12px}
 #online-admin .online-table tr{display:grid;grid-template-columns:1fr auto;border:1px solid #e7dfcd;border-radius:12px;background:#fffdf7;padding:14px;gap:12px}
 #online-admin .online-table td{display:block;border:0;padding:0;min-width:0}
 #online-admin .online-table td:first-child{grid-column:1/-1}
 #online-admin .online-table td:nth-child(2){grid-column:1/-1}
 #online-admin .online-table td:nth-child(3){grid-column:1/-1}
 #online-admin .online-table td:nth-child(4){align-self:center}
 #online-admin .online-table td:last-child{justify-self:end;align-self:center}
 #online-admin .online-avatar{display:flex}
 #online-admin .online-facts{grid-template-columns:1fr 1fr}
 #online-admin .online-session{align-items:flex-start;flex-wrap:wrap}
 #online-admin .online-detail-secondary{grid-template-columns:1fr}
 #online-admin .online-release-meta,#online-admin .online-release-notes{grid-template-columns:1fr}
}
@media(min-width:901px) and (max-height:850px){
 #online-admin{padding:18px;gap:14px}
 #online-admin .online-caption{padding-bottom:10px}
 #online-admin .online-search{padding:12px;gap:10px}
 #online-admin .online-table td{padding-top:12px;padding-bottom:12px}
 #online-admin .online-card{padding:14px;gap:12px}
 #online-admin .online-detail-heading{padding-bottom:12px}
 #online-admin .online-session{padding-top:8px}
 #online-admin .online-release-notes textarea{min-height:90px}
 #online-admin #release-form{gap:10px}
 #online-admin .online-upload-box{padding:8px}
}
@media(max-width:700px){body .layout>.panel,body .layout .login>.panel{padding:16px}}
@media(prefers-reduced-motion:reduce){#online-admin *{scroll-behavior:auto!important;animation:none!important}}
