:root{color-scheme:dark;--bg:#080b12;--panel:#121724;--line:#293247;--text:#edf1fa;--muted:#9da8ba;--gold:#d4aa5a;--violet:#8b5cf6;--green:#67d8a2}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0,#171225 0,transparent 38%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.site-header{min-height:68px;padding:10px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#090c14e8}.brand{color:var(--gold);font:700 20px Georgia,serif;text-decoration:none;letter-spacing:.04em}.account{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}.account form{margin:0}.page-shell{max-width:1180px;margin:0 auto;padding:64px 24px}.auth-card,.detail-card{max-width:560px;margin:0 auto;padding:36px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#151a28,#0e121c);box-shadow:0 24px 70px #0008}h1{margin:.25rem 0 1rem;font:600 clamp(2rem,5vw,3.2rem)/1.05 Georgia,serif}h2{font-family:Georgia,serif}.eyebrow,.world-name{color:var(--gold);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em}.muted{color:var(--muted);line-height:1.6}.stacked-form{display:grid;gap:18px;margin:28px 0}.stacked-form label,.stacked-form p{display:grid;gap:8px;margin:0}.stacked-form input,.stacked-form select{width:100%;padding:13px 14px;color:var(--text);border:1px solid #35415b;border-radius:9px;background:#090d16;font:inherit}.stacked-form input:focus,.stacked-form select:focus{outline:2px solid #8b5cf680;border-color:var(--violet)}.errorlist{margin:0;padding:0;list-style:none;color:#ff9c9c;font-size:.88rem}.primary,.button{display:inline-block;padding:13px 18px;border:0;border-radius:9px;background:linear-gradient(135deg,var(--violet),#6d3de0);color:white;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}.secondary{background:#20283a;border:1px solid #3b4864}.link-button{padding:0;border:0;background:none;color:#bdc8dc;cursor:pointer;text-decoration:none}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.campaign-card{display:grid;gap:12px;min-height:170px;padding:24px;color:var(--text);text-decoration:none;border:1px solid var(--line);border-radius:14px;background:#111725;transition:transform .15s,border-color .15s}.campaign-card:hover{transform:translateY(-3px);border-color:#7056aa}.campaign-card strong{font:600 1.6rem Georgia,serif}.role-pill{justify-self:start;padding:6px 9px;border-radius:999px;background:#2a2240;color:#d9c9ff;font-size:.78rem}.empty-state{grid-column:1/-1;padding:36px;border:1px dashed #39445a;border-radius:14px;text-align:center}.notice{margin:28px 0;padding:18px;border-left:3px solid var(--gold);background:#1a1d28}.notice p{margin:.45rem 0 0;color:var(--muted);line-height:1.5}.break-all{word-break:break-all}
.messages{max-width:760px;margin:0 auto 24px}.message{padding:14px 18px;border:1px solid #365c4e;border-radius:10px;background:#12251f;color:#baf4d6}.auth-links{display:grid;gap:10px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}a{color:#c8b9f8}.form-footnote,.field-help{color:#7f8b9f;font-size:.82rem;line-height:1.5}.field-help ul{margin:6px 0;padding-left:20px}.centered-card{text-align:center}.mail-symbol{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 22px;border:1px solid #7056aa;border-radius:50%;background:#251d3a;color:#d4c6ff;font-size:24px}.success-symbol{border-color:#35775d;background:#153126;color:var(--green)}
.game-launch-form{display:inline-flex;margin:.75rem .75rem 0 0}.game-launch-form button{width:auto}
.management-heading{margin-bottom:32px}.management-layout{display:grid;grid-template-columns:minmax(290px,380px) 1fr;gap:24px;align-items:start}.management-panel{padding:26px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#141a28,#0e131e)}.management-panel h2{margin:0}.create-panel{position:sticky;top:24px}.panel-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.panel-title p{margin:.4rem 0}.account-list{display:grid;gap:12px}.managed-user{display:flex;justify-content:space-between;gap:18px;padding:18px;border:1px solid #252e42;border-radius:12px;background:#0c111b}.managed-user-main{display:grid;gap:5px;min-width:0}.managed-user-main>strong{font-size:1.05rem}.managed-user-main>span{color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.status-badge{padding:4px 7px;border-radius:999px;font-size:.72rem;font-weight:700}.status-badge.verified{background:#173629;color:#8de0b5}.status-badge.pending{background:#3b2d17;color:#edc97c}.status-badge.staff{background:#2d2247;color:#cdb9ff}.membership-line{margin:6px 0 0;color:#8490a4;font-size:.8rem;line-height:1.5}.managed-actions{display:flex;align-items:center}.managed-actions form{margin:0}.small-button{padding:9px 11px;border:1px solid #3d4962;border-radius:8px;background:#1a2232;color:#dce4f2;font-weight:600;cursor:pointer;white-space:nowrap}.small-button:hover{border-color:#7560aa}
@media(max-width:840px){.management-layout{grid-template-columns:1fr}.create-panel{position:static}}@media(max-width:620px){.site-header{padding:12px 18px}.account>span{display:none}.page-shell{padding:36px 16px}.auth-card,.detail-card{padding:24px}.page-heading{align-items:start;flex-direction:column}.managed-user{flex-direction:column}.managed-actions{align-items:start}}
.gateway-heading{max-width:760px;margin:0 auto 34px;text-align:center}.gateway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:920px;margin:0 auto}.gateway-card{display:flex;align-items:center;gap:22px;min-height:210px;padding:32px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#151b2a,#0d121c);color:var(--text);text-decoration:none;box-shadow:0 22px 60px #0006;transition:.18s ease}.gateway-card:hover{transform:translateY(-4px);border-color:#745cac}.gateway-card.control{background:linear-gradient(145deg,#20192f,#10121c)}.gateway-card>span:last-child{display:grid;gap:8px}.gateway-card small{color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.13em}.gateway-card strong{font:600 2rem Georgia,serif}.gateway-card em{color:var(--muted);font-style:normal;line-height:1.5}.gateway-icon{display:grid;place-items:center;flex:0 0 64px;height:64px;border-radius:16px;background:#2a2142;color:#d8c9ff;font-size:28px}
.control-nav{display:flex;gap:8px;margin:-30px 0 42px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#0d121c;overflow:auto}.control-nav a{padding:10px 13px;border-radius:8px;color:#aeb8ca;text-decoration:none;white-space:nowrap}.control-nav a:hover,.control-nav a.active{background:#241d38;color:#eee8ff}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{display:grid;gap:7px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#111725;color:var(--text);text-decoration:none}.stat-card span{color:var(--gold);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.stat-card strong{font:600 2.4rem Georgia,serif}.stat-card small{color:var(--muted)}.dashboard-actions,.recent-panel,.wide-panel{margin-top:24px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.quick-card{display:grid;gap:7px;padding:18px;border:1px solid #2e3850;border-radius:11px;background:#0b1019;color:var(--text);text-decoration:none}.quick-card span{color:var(--muted);font-size:.86rem;line-height:1.45}.invitation-grid,.campaign-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.generated-code{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:24px;border:1px solid #7056aa;border-radius:15px;background:linear-gradient(135deg,#261d3b,#151827)}.generated-code strong{display:block;margin:7px 0;color:#fff;font:700 clamp(1.35rem,4vw,2rem) ui-monospace,monospace;letter-spacing:.08em}.generated-code p{margin:0;color:var(--muted)}.code-list,.member-list{display:grid;gap:10px}.code-row,.member-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px;border:1px solid #273046;border-radius:10px;background:#0b1019}.code-row>div:first-child,.member-row>div{display:grid;gap:5px}.code-row span,.member-row span,.member-row small{color:var(--muted);font-size:.82rem}.code-row>.badges{align-items:center;justify-content:flex-end}.muted-badge{background:#222938;color:#9da8ba}.structure-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:24px}.structure-toolbar form{margin:0}.world-list{display:grid;gap:20px;margin-top:24px}.world-panel{padding:26px;border:1px solid var(--line);border-radius:16px;background:#101521}.world-panel h2{margin:.25rem 0}.campaign-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px;margin-top:20px}.campaign-admin-card{display:grid;gap:7px;padding:18px;border:1px solid #2b354c;border-radius:11px;background:#0a0f18;color:var(--text);text-decoration:none}.campaign-admin-card span,.campaign-admin-card em{color:var(--muted);font-size:.82rem;font-style:normal}.campaign-admin-card em{color:#bda7ff}.member-row.inactive{opacity:.55}.character-legacy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.character-legacy-grid article{display:grid;gap:5px;padding:14px;border:1px solid #293247;border-radius:10px;background:#0b1019}.character-legacy-grid span,.character-legacy-grid small{color:var(--muted);overflow-wrap:anywhere}.transfer-form{display:grid;grid-template-columns:2fr 2fr auto auto;align-items:end;gap:14px;margin-top:22px}.transfer-form p{display:grid;gap:7px;margin:0}.transfer-form select{width:100%;padding:11px;color:var(--text);border:1px solid #35415b;border-radius:8px;background:#090d16}.transfer-form p:has(input[type=checkbox]){display:flex;align-items:center;max-width:200px;font-size:.82rem}.transfer-form input[type=checkbox]{width:18px;height:18px}
@media(max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:1fr}.transfer-form{grid-template-columns:1fr 1fr}.gateway-grid,.invitation-grid,.campaign-control-grid{grid-template-columns:1fr}}@media(max-width:620px){.stat-grid{grid-template-columns:1fr}.gateway-card{min-height:0;padding:24px}.gateway-icon{flex-basis:48px;height:48px}.generated-code,.code-row,.member-row,.structure-toolbar{align-items:flex-start;flex-direction:column}.transfer-form{grid-template-columns:1fr}.control-nav{margin-top:-20px}}

/* Navigation et hiérarchie d'accès unifiées */
.site-header{justify-content:flex-start;gap:28px;position:sticky;top:0;z-index:20;background:#090c14f5}.brand{flex:0 0 auto}.main-nav{display:flex;align-items:center;gap:5px;margin-right:auto}.main-nav a{padding:9px 12px;border-radius:8px;color:#aeb8ca;text-decoration:none;font-size:.9rem;white-space:nowrap}.main-nav a:hover,.main-nav a.active{background:#241d38;color:#f1ebff}.account{gap:14px}.account-identity{display:grid;gap:1px;padding:6px 9px;border-radius:8px;color:var(--text);text-align:right;text-decoration:none}.account-identity:hover,.account-identity.active{background:#181e2c}.account-identity small{color:var(--muted);font-size:.7rem}.card-action{margin-top:auto;color:#bda7ff;font-size:.85rem}.back-link{display:inline-block;margin-bottom:22px;color:#b7c2d5;text-decoration:none}.back-link:hover{color:#fff}.role-summary{display:grid;gap:6px;margin:22px 0;padding:18px;border:1px solid #3b3158;border-radius:12px;background:#171325}.role-summary span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.role-summary strong{font:600 1.45rem Georgia,serif;color:#e1d5ff}.role-summary small{color:var(--muted);line-height:1.5}.text-button{margin-left:8px;background:transparent;color:#c8b9f8}.role-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:-10px 0 24px}.role-guide div{display:grid;gap:5px;padding:15px;border:1px solid #293247;border-radius:10px;background:#0d121c}.role-guide span{color:var(--muted);font-size:.82rem;line-height:1.4}.admin-tools{margin-top:24px}.admin-tools summary{cursor:pointer;color:#d9c9ff;font:600 1.1rem Georgia,serif}.admin-tools[open] summary{margin-bottom:18px}.admin-tools .invitation-grid>section{padding-top:8px}.member-row strong small{margin-left:4px;color:#bda7ff;font-weight:500}.empty-state .button{margin-top:12px}
@media(max-width:980px){.site-header{flex-wrap:wrap;gap:8px 18px}.main-nav{order:3;width:100%;overflow:auto}.account{margin-left:auto}.page-shell{padding-top:42px}}@media(max-width:620px){.account-identity small{display:none}.main-nav a{padding:8px 9px;font-size:.82rem}.role-guide{grid-template-columns:1fr}.text-button{display:block;margin:10px 0 0}.site-header{position:static}}

/* Portail de jeu — continuité visuelle avec l'interface JDR historique */
body{background:radial-gradient(circle at 14% 12%,#24163f 0,transparent 32%),radial-gradient(circle at 86% 18%,#302319 0,transparent 27%),radial-gradient(circle at 52% 92%,#102a22 0,transparent 30%),#080a12;background-attachment:fixed}.portal-ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.portal-ambient i{position:absolute;width:34vw;aspect-ratio:1;border-radius:50%;filter:blur(90px);opacity:.12}.portal-ambient i:nth-child(1){left:-12vw;top:8vh;background:#8b5cf6}.portal-ambient i:nth-child(2){right:-14vw;top:24vh;background:#d4aa5a}.portal-ambient i:nth-child(3){left:36vw;bottom:-24vw;background:#38a77b}.site-header{border-bottom-color:#ffffff1f;background:linear-gradient(135deg,#0b0c16ed,#161024ed);backdrop-filter:blur(18px);box-shadow:0 12px 40px #0005}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d4aa5a88;border-radius:10px;background:linear-gradient(145deg,#39265c,#15101f);box-shadow:inset 0 1px #ffffff22;color:#f0ce82;font:700 21px Georgia,serif}.page-shell{position:relative}.management-panel,.auth-card,.detail-card,.campaign-card,.world-card,.world-panel,.stat-card,.gateway-card{border-color:#ffffff1c;background:linear-gradient(145deg,#ffffff12,#ffffff05),linear-gradient(155deg,#171527e8,#0c1019ed);box-shadow:0 24px 70px #0005,inset 0 1px #ffffff13;backdrop-filter:blur(13px)}.button,.primary{box-shadow:0 9px 25px #6d3de044,inset 0 1px #ffffff35}.button:hover,.primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.access-heading{padding-bottom:26px;border-bottom:1px solid #ffffff17}.access-section{margin-top:42px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading h2{margin:.2rem 0 0;font-size:1.8rem}.section-hint{color:#8995a9;font-size:.78rem}.world-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.world-card{position:relative;display:flex;align-items:center;gap:22px;min-height:170px;padding:26px;border:1px solid #ffffff1c;border-radius:18px;color:var(--text);text-decoration:none;overflow:hidden;transition:.18s ease}.world-card:hover,.campaign-card:hover{transform:translateY(-4px);border-color:#a484eb88;box-shadow:0 28px 75px #0008,0 0 35px #7c3aed18}.world-card>span:last-child{display:grid;gap:8px}.world-card small{color:#d4aa5a;font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.world-card strong{font:600 1.7rem Georgia,serif}.world-card em{color:#bca8ef;font-size:.84rem;font-style:normal}.world-orbit{position:relative;flex:0 0 64px;height:64px;border:1px solid #d4aa5a66;border-radius:50%;box-shadow:0 0 0 10px #8b5cf610,0 0 38px #8b5cf633}.world-orbit::before,.world-orbit::after{content:"";position:absolute;border-radius:50%}.world-orbit::before{inset:15px;background:radial-gradient(circle at 35% 30%,#dfc6ff,#8b5cf6 42%,#3b1d72);box-shadow:0 0 20px #8b5cf688}.world-orbit::after{width:8px;height:8px;right:-3px;top:8px;background:#e3bd69;box-shadow:0 0 10px #e3bd69}.campaign-card{border-radius:18px}.campaign-card.role-player{border-left:3px solid #5fd39d}.campaign-card.role-gm,.campaign-card.role-owner{border-left:3px solid #b28af6}.role-pill{background:linear-gradient(135deg,#33244f,#21182f);border:1px solid #b28af633}.role-player .role-pill{background:#143528;border-color:#65d6a044;color:#9af0c4}
.world-hero{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:30px;padding:30px;border:1px solid #ffffff1d;border-radius:22px;background:linear-gradient(115deg,#7c3aed22,#d4aa5a12 58%,#33b88412),#10121de8;box-shadow:0 24px 70px #0005}.world-hero h1{margin-bottom:.4rem}.world-access-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px}.world-code-form{margin-top:24px;padding-top:20px;border-top:1px solid #ffffff17}.role-accent-player{border-top:3px solid #5ed59d}.invitation-grid>section:last-child{border-top:3px solid #d4aa5a}.generated-code-qr{display:grid;grid-template-columns:auto 1fr auto}.invite-qr{width:132px;height:132px;padding:8px;border-radius:12px;background:#fff}.generated-code .break-all{font-size:.76rem}.invitation-entry-card{position:relative;overflow:hidden;border-color:#8b5cf655}.invitation-entry-card::after{content:"";position:absolute;right:-90px;top:-90px;width:220px;height:220px;border:1px solid #d4aa5a22;border-radius:50%;box-shadow:0 0 0 28px #8b5cf60b;pointer-events:none}.portal-role-mark{display:grid;place-items:center;width:48px;height:48px;margin-bottom:20px;border:1px solid #d4aa5a66;border-radius:14px;background:#2a1d43;color:#edcb80;font-size:23px;box-shadow:0 12px 35px #0005}.access-section .empty-state{background:#ffffff06}.section-heading .eyebrow{margin:0}.management-panel .campaign-admin-card:hover{border-color:#8267bc;transform:translateY(-2px)}
@media(max-width:900px){.world-access-layout{grid-template-columns:1fr}.world-hero{align-items:flex-start;flex-direction:column}.generated-code-qr{grid-template-columns:auto 1fr}.generated-code-qr .small-button{grid-column:1/-1}}@media(max-width:620px){.section-heading{align-items:flex-start;flex-direction:column}.world-card{min-height:145px;padding:20px}.world-orbit{flex-basis:52px;height:52px}.generated-code-qr{display:flex}.invite-qr{width:112px;height:112px}.access-heading .button{width:100%}}
.danger-zone{margin-top:34px;border:1px solid #ff75752e;border-radius:16px;background:#2c111455}.danger-zone summary{padding:16px 20px;color:#ffaaaa;font-weight:800;cursor:pointer}.danger-zone>div{padding:0 20px 20px}.danger-zone p{color:var(--muted)}.danger-button{display:inline-block;padding:12px 16px;border:1px solid #ff797955;border-radius:9px;background:linear-gradient(135deg,#8d2838,#5e1826);color:#fff;font-weight:800;text-decoration:none;cursor:pointer}.danger-notice{border-left-color:#ee6476;background:#2c1117}.danger-confirm-card{border-color:#ff727238}

/* Tableau de bord opérationnel */
.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.dashboard-heading>div{max-width:760px}.network-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:22px;padding:18px 22px;border:1px solid #d4aa5a35;border-radius:14px;background:linear-gradient(110deg,#2c211744,#121622)}.network-status.is-local{border-color:#67d8a255;background:linear-gradient(110deg,#12312677,#111723)}.network-status p,.network-status strong,.network-status small{margin:0}.network-status strong{display:block;margin:4px 0;color:#fff;word-break:break-all}.network-status small{color:var(--muted);line-height:1.45}.network-dot{width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px #d4aa5aaa}.is-local .network-dot{background:var(--green);box-shadow:0 0 18px #67d8a2aa}.network-jdr{display:grid;gap:4px;max-width:280px;text-align:right}.network-jdr span{color:var(--gold);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.network-jdr small{word-break:break-all}.dashboard-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.dashboard-panel{min-width:0}.dashboard-panel .panel-title{align-items:center}.dashboard-panel .panel-title h2{margin:.2rem 0}.dashboard-panel .panel-title a{font-size:.82rem;white-space:nowrap}.dashboard-list{display:grid;gap:9px}.dashboard-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #ffffff14;border-radius:10px;background:#090e1788}.dashboard-row>div:first-child{display:grid;gap:4px;min-width:0}.dashboard-row span,.dashboard-row small{color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.dashboard-row-action{display:flex;align-items:center;gap:8px}.dashboard-row-action form{margin:0}.dashboard-empty{margin:0;padding:22px;border:1px dashed #ffffff20;border-radius:10px;color:var(--muted);text-align:center}
@media(max-width:900px){.dashboard-board{grid-template-columns:1fr}.network-status{grid-template-columns:auto 1fr}.network-jdr{grid-column:2;text-align:left}}
@media(max-width:620px){.dashboard-heading{align-items:flex-start;flex-direction:column}.network-status{grid-template-columns:1fr}.network-dot{display:none}.network-jdr{grid-column:auto}.dashboard-row{align-items:flex-start;flex-direction:column}.dashboard-row-action{width:100%;justify-content:space-between}}

/* Demandes de comptes, attribution multiple et lecture croisée des droits */
.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashboard-panel-wide{grid-column:1/-1}.danger-button.small-button{padding:9px 11px}.access-request-dialog{width:min(760px,calc(100vw - 28px));max-height:90vh;padding:0;border:1px solid #8b5cf677;border-radius:18px;background:#101521;color:var(--text);box-shadow:0 32px 100px #000c}.access-request-dialog::backdrop{background:#05070dcc;backdrop-filter:blur(8px)}.access-request-form{display:grid;gap:20px;padding:28px}.dialog-heading{display:flex;justify-content:space-between;gap:20px}.dialog-heading h2,.dialog-heading p{margin:.25rem 0}.dialog-close{align-self:start;width:38px;height:38px;border:1px solid #ffffff22;border-radius:50%;background:#ffffff0c;color:#fff;font-size:24px;cursor:pointer}.compact-role-guide{grid-template-columns:repeat(2,1fr);margin:0}.access-grant-list{display:grid;gap:10px}.access-grant-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr) auto;align-items:end;gap:10px;padding:12px;border:1px solid #ffffff17;border-radius:11px;background:#090e18}.access-grant-row label,.rights-filters label{display:grid;gap:7px;color:#b9c3d4;font-size:.8rem}.access-grant-row select,.rights-filters select{width:100%;padding:11px;border:1px solid #35415b;border-radius:8px;background:#090d16;color:var(--text)}.access-grant-row select:disabled{opacity:.8;color:#e5d8ff}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.rights-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:14px;padding:18px;border:1px solid #ffffff1c;border-radius:14px;background:#0d121ccc}.selection-banner{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px 18px;border-left:3px solid var(--gold);background:#241b2d}.selection-banner span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.rights-table-wrap{overflow:auto}.rights-table{width:100%;border-collapse:collapse}.rights-table th,.rights-table td{padding:15px;text-align:left;vertical-align:top;border-bottom:1px solid #ffffff14}.rights-table th{color:var(--gold);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.rights-person{display:grid;gap:4px;min-width:190px;color:var(--text);text-decoration:none}.rights-person span,.rights-person small{color:var(--muted);font-size:.78rem}.rights-tags{display:flex;flex-wrap:wrap;gap:7px}.rights-tag{display:grid;gap:3px;min-width:130px;padding:8px 10px;border:1px solid #8b5cf644;border-radius:8px;background:#211a33;color:#eee8ff;text-decoration:none}.rights-tag span{color:#b8adc9;font-size:.7rem}.rights-tag.world-right{border-color:#d4aa5a55;background:#2b2117}.rights-tag.role-player{border-color:#67d8a255;background:#132a22}.rights-tag:hover,.rights-person:hover{filter:brightness(1.18)}
.selection-banner small{margin-left:auto;color:var(--muted)}
@media(max-width:760px){.access-grant-row,.rights-filters{grid-template-columns:1fr}.compact-role-guide{grid-template-columns:1fr}.dialog-actions{align-items:stretch;flex-direction:column-reverse}.selection-banner{align-items:flex-start;flex-direction:column}.selection-banner small{margin-left:0}.rights-table{min-width:720px}}

/* Équipes, propriété et notifications */
.notification-link{position:relative;display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff1d;border-radius:11px;background:#ffffff09;color:#e8ddff;text-decoration:none}.notification-link:hover{border-color:#8b5cf688;background:#241d38}.notification-link strong{position:absolute;right:-5px;top:-6px;min-width:20px;padding:3px 5px;border:2px solid #0d1019;border-radius:999px;background:#d4506d;color:#fff;font-size:.68rem;text-align:center}.access-card-stats{color:#9faac0;font-size:.78rem}.member-chips{display:flex;flex-wrap:wrap;gap:7px}.member-chips>span,.member-chips>i{display:grid;gap:2px;padding:8px 10px;border:1px solid #ffffff1b;border-radius:9px;background:#ffffff08;font-style:normal}.member-chips strong{font:600 .82rem system-ui,sans-serif}.member-chips small{color:var(--muted);font-size:.7rem}.member-chips.compact{gap:5px;margin-top:5px}.member-chips.compact i{display:inline-block;padding:5px 7px;color:#b8c2d3;font-size:.68rem;line-height:1.25}.campaign-card .member-chips.compact{margin:4px 0 8px}.campaign-admin-card .member-chips.compact{align-self:start}.campaign-roster{margin:22px 0;padding:18px;border:1px solid #ffffff1a;border-radius:13px;background:#090e1888}.campaign-roster h2{margin:.2rem 0;font-size:1.15rem}.ownership-panel{margin-top:24px;padding:18px;border:1px solid #e6ad5e38;border-radius:13px;background:#2b21152e}.ownership-panel summary{color:#e9c780;font-weight:800;cursor:pointer}.ownership-panel[open] summary{margin-bottom:15px}.ownership-panel form{max-width:560px}.owner-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.owner-actions section+section{padding-left:28px;border-left:1px solid #ff75752e}.notifications-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.notification-list{display:grid;gap:11px;margin-top:26px}.notification-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #ffffff16;border-radius:13px;background:#0e1420}.notification-card.unread{border-color:#8b5cf677;background:linear-gradient(120deg,#261c3e99,#111723)}.notification-card>div{display:grid;gap:5px}.notification-card p,.notification-card small{margin:0;color:var(--muted)}.notification-card p{line-height:1.45}.notification-card small{font-size:.75rem}
@media(max-width:760px){.owner-actions{grid-template-columns:1fr}.owner-actions section+section{padding:22px 0 0;border-top:1px solid #ff75752e;border-left:0}.notifications-heading,.notification-card{align-items:flex-start;flex-direction:column}.notification-card form,.notification-card button{width:100%}}

/* Supervision du VPS */
.monitor-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.monitor-heading>div{max-width:780px}.control-heading h1{margin-bottom:.4rem}.status-pill{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #67d8a255;border-radius:999px;background:#153126;color:#98edc2;font-size:.78rem;font-weight:800}.status-pill.warning{border-color:#e2ad5d55;background:#352817;color:#f0cb85}.monitor-service-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;padding:14px 18px;border:1px solid #ffffff17;border-radius:13px;background:#0d121ccc}.monitor-service-strip>small{margin-left:auto;color:var(--muted)}.service-state{display:flex;align-items:center;gap:7px;color:#ffb2b2;font-size:.78rem;font-weight:700}.service-state i{width:8px;height:8px;border-radius:50%;background:#d85f6d;box-shadow:0 0 12px #d85f6d88}.service-state.online{color:#9cecc5}.service-state.online i{background:#67d8a2;box-shadow:0 0 12px #67d8a288}.monitor-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.monitor-kpi{position:relative;display:grid;gap:7px;overflow:hidden;padding:22px;border:1px solid #ffffff1b;border-radius:15px;background:linear-gradient(145deg,#ffffff10,#ffffff04),#0d121d}.monitor-kpi::after{content:"";position:absolute;right:-42px;bottom:-58px;width:130px;height:130px;border-radius:50%;opacity:.2;filter:blur(3px)}.monitor-kpi.cpu::after{background:#d4aa5a}.monitor-kpi.ram::after{background:#8b5cf6}.monitor-kpi.swap::after{background:#57c7d4}.monitor-kpi.disk::after{background:#67d8a2}.monitor-kpi span{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.monitor-kpi strong{font:600 2.25rem Georgia,serif}.monitor-kpi small{z-index:1;color:#9aa6ba}.monitor-history{margin-bottom:20px}.monitor-panel-title{align-items:center}.range-switch{display:flex;padding:4px;border:1px solid #ffffff1c;border-radius:10px;background:#080c14}.range-switch button{padding:8px 11px;border:0;border-radius:7px;background:transparent;color:#9eabc0;font-weight:700;cursor:pointer}.range-switch button:hover,.range-switch button.active{background:#2a2041;color:#f0e9ff}.chart-legend{display:flex;gap:17px;flex-wrap:wrap;margin-bottom:10px}.chart-legend span{display:flex;align-items:center;gap:7px;color:#aab4c6;font-size:.75rem}.chart-legend span::before{content:"";width:18px;height:3px;border-radius:99px;background:currentColor}.chart-legend .cpu{color:#e1b765}.chart-legend .ram{color:#a987f5}.chart-legend .swap{color:#5ed3df}.chart-legend .disk{color:#65d6a0}.metric-chart{position:relative;min-height:300px;border:1px solid #ffffff12;border-radius:13px;background:linear-gradient(180deg,#10172599,#090d16);overflow:hidden}.metric-chart svg{display:block;width:100%;height:auto;min-height:280px}.metric-chart>p{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--muted)}.metric-chart.has-data>p{display:none}.monitor-grid-line{stroke:#ffffff13;stroke-width:1}.monitor-axis-label{fill:#79869a;font:24px system-ui,sans-serif}.monitor-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 1.15s cubic-bezier(.2,.75,.2,1)}.monitor-line.cpu{stroke:#e1b765}.monitor-line.ram{stroke:#a987f5}.monitor-line.swap{stroke:#5ed3df}.monitor-line.disk{stroke:#65d6a0}.chart-foot{display:flex;justify-content:space-between;gap:15px;margin-top:10px;color:var(--muted);font-size:.75rem}.monitor-storage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}.monitor-storage-grid .panel-title small{color:var(--muted)}.storage-bars{display:grid;gap:13px}.storage-bars article{display:grid;gap:7px}.storage-bars article>div{display:flex;justify-content:space-between;gap:12px}.storage-bars strong{font-size:.84rem}.storage-bars span{color:var(--muted);font-size:.78rem}.storage-bars meter{width:100%;height:9px;border:0;background:none}.storage-bars meter::-webkit-meter-bar{border:0;border-radius:99px;background:#ffffff12}.storage-bars meter::-webkit-meter-optimum-value{border-radius:99px;background:linear-gradient(90deg,#7454b5,#b08aec)}.world-bars meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#2d8868,#67d8a2)}.storage-bars meter::-moz-meter-bar{border-radius:99px;background:linear-gradient(90deg,#7454b5,#b08aec)}.monitor-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.monitor-details>div{display:grid;gap:6px;padding:20px}.monitor-details>div+div{border-left:1px solid #ffffff16}.monitor-details span,.monitor-details small{color:var(--muted);font-size:.75rem}.monitor-details strong{font-size:.94rem}
@media(max-width:900px){.monitor-kpis,.monitor-details{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-storage-grid{grid-template-columns:1fr}.monitor-details>div:nth-child(3){border-left:0;border-top:1px solid #ffffff16}.monitor-details>div:nth-child(4){border-top:1px solid #ffffff16}}
@media(max-width:620px){.monitor-heading,.monitor-panel-title{align-items:flex-start;flex-direction:column}.monitor-kpis,.monitor-details{grid-template-columns:1fr}.monitor-service-strip>small{width:100%;margin-left:0}.range-switch{width:100%}.range-switch button{flex:1}.monitor-details>div+div,.monitor-details>div:nth-child(3){border-top:1px solid #ffffff16;border-left:0}.metric-chart{min-height:240px}.metric-chart svg{min-height:240px}}
