:root{color-scheme:dark;--bg:#0b1012;--panel:#111a1e;--line:#27343a;--text:#e0e8e9;--muted:#98acb3;--accent:#65e7d4;--amber:#e8b777;font-family:Segoe UI,Arial,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}html:has(body[data-accent=amber]),body[data-accent=amber]{--accent:#efb86c}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent)}.sidebar{width:244px;position:fixed;inset:0 auto 0 0;padding:28px 20px 16px;background:#0e1518;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}.brand{font-size:25px;font-weight:800;letter-spacing:2px;display:flex;align-items:center;gap:11px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:6px}.brand-mark{color:#0b1012;background:var(--accent);font-size:29px;width:42px;height:46px;display:grid;place-items:center;clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,25% 100%,0 75%)}.accent{color:var(--accent)}.station{font:10px Consolas,monospace;letter-spacing:1px;border:1px solid var(--line);padding:12px;margin:27px 0 10px;display:flex;gap:9px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.muted{color:var(--muted)}nav h2{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:22px 10px 8px}nav a{padding:9px 11px;display:flex;align-items:center;gap:10px;color:#aec0c5;font-size:12px;border-left:2px solid transparent}nav a:hover{background:#172327}nav a.active{border-left-color:var(--accent);background:#182d2d;color:var(--accent)}.sidebar-foot{font:9px Consolas,monospace;color:var(--muted);margin-top:auto;padding-top:24px;display:flex;justify-content:space-between}.workspace{margin-left:244px}header{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-size:12px}header>span:first-child::before{content:'// ';color:var(--accent)}.badge{font:10px Consolas,monospace;letter-spacing:1px;color:var(--amber);border:1px solid #655133;padding:7px 10px}main{max-width:1450px;margin:auto;padding:38px 40px;min-height:calc(100vh - 120px)}.eyebrow{color:var(--accent);font:10px Consolas,monospace;letter-spacing:3px;text-transform:uppercase}h1{font-size:clamp(28px,3.5vw,44px);font-weight:600;letter-spacing:-1.5px;margin:13px 0}p{color:var(--muted);line-height:1.7}h2{font-size:17px;font-weight:500;margin:0 0 18px}.hero{position:relative;overflow:hidden;border:1px solid var(--line);padding:30px;margin:25px 0;background:linear-gradient(115deg,#182c2d,#121e23 65%,#26302a);min-height:218px}.hero:after{content:'';position:absolute;right:-10px;bottom:-1px;width:43%;height:150px;opacity:.28;background:#66817a;clip-path:polygon(0 100%,0 75%,10% 75%,10% 50%,17% 50%,17% 65%,26% 65%,26% 20%,32% 5%,40% 28%,40% 80%,50% 80%,50% 46%,65% 46%,65% 17%,71% 17%,71% 60%,86% 60%,86% 34%,100% 34%,100% 100%)}.hero h2{font-size:27px;margin:15px 0 6px}.hero p{max-width:520px;position:relative;z-index:1}.hero .badge{display:inline-block}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:25px}.stat,.panel{background:var(--panel);border:1px solid var(--line);padding:23px}.stat small{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.stat strong{display:block;font-weight:500;font-size:32px;margin:12px 0 8px}.stat span{font-size:11px;color:var(--muted)}.columns{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading a{font-size:11px;color:var(--accent)}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:400;padding:12px 10px}td{padding:17px 10px;border-top:1px solid var(--line)}.table-wrap{overflow:auto}.role{font:10px Consolas,monospace;color:var(--accent);background:#1b2c2d;padding:4px 6px}.step{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.step b{font:11px Consolas,monospace;color:var(--accent);padding-top:3px}.step strong{font-size:12px;font-weight:500}.step p{font-size:11px;margin:5px 0 0}.button,button{border:1px solid var(--accent);background:var(--accent);color:#0c1718;padding:11px 16px;font-size:12px;font-weight:600;cursor:pointer;display:inline-block}.button.secondary{color:var(--accent);background:transparent}.actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}button:disabled{opacity:.5;cursor:wait}.notice{padding:13px 17px;border-left:2px solid var(--amber);background:#24241e;font-size:12px;color:#d5c6ab;margin:20px 0}.form{max-width:650px}.form label{display:block;color:var(--muted);font-size:12px;margin:20px 0 8px}input,select{background:#0c1316;color:var(--text);border:1px solid #405158;padding:12px;width:100%}.form button{margin-top:25px}.terminal{background:#070d0f;border:1px solid var(--line);padding:24px;min-height:240px;max-height:450px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.8 Consolas,monospace;color:var(--accent)}.command-form{display:flex;gap:12px}.plugin{margin-top:18px}.plugin h2{color:var(--accent)}.placeholder{max-width:750px;margin-top:28px}.placeholder p{font-size:14px}footer{border-top:1px solid var(--line);padding:18px 40px;color:var(--muted);display:flex;justify-content:space-between;font:9px Consolas,monospace;letter-spacing:1px}#toast{position:fixed;bottom:24px;right:24px;max-width:420px;background:var(--accent);color:#0b1012;padding:15px 20px;display:none;z-index:10}#toast.visible{display:block}@media(min-width:1500px){main{padding-top:50px}.hero{min-height:250px}}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}main{padding:28px 24px}header{padding:0 24px}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:18px}.sidebar nav{display:flex;overflow:auto;gap:5px;margin-top:18px}.sidebar nav h2,.station,.sidebar-foot{display:none}nav a{white-space:nowrap}.workspace{margin:0}header{height:55px}.brand small{font-size:8px}main{padding:22px 16px}.hero{padding:20px}.stats{gap:8px}.stat{padding:18px}.stat strong{font-size:26px}footer{padding:18px 16px}footer span{display:none}.command-form{flex-wrap:wrap}}



.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:24px 0}.toolbar .actions{margin:0}.server-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:20px}.server-card h2{margin:0;overflow-wrap:anywhere}.server-card .panel-heading{align-items:flex-start;flex-wrap:wrap}.server-card .badge{white-space:nowrap}.server-card dl{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;font-size:12px;margin:25px 0}.server-card dt{color:var(--muted)}.server-card dd{margin:0;overflow-wrap:anywhere}.secondary{background:transparent;color:var(--accent)}.install{border-top:1px solid var(--line);margin-top:24px;padding-top:12px}.install h3{font-size:14px;font-weight:500}.install p,.help{font-size:12px}.form .actions button{margin-top:0}#server-editor:not(:empty){margin-bottom:20px}.stat a{font-size:11px;color:var(--accent)}@media(max-width:700px){.toolbar{align-items:flex-start;flex-direction:column}.server-card{padding:18px}.server-card dl{grid-template-columns:1fr 1fr}}



.server-picker{display:flex;align-items:center;gap:16px;max-width:550px;margin:25px 0}.server-picker label{font-size:12px;color:var(--muted)}.server-card dl>div{display:contents}.stat strong.stat-detail{font-size:18px;overflow-wrap:anywhere}.install li{margin:16px 0}.help{margin-bottom:0}



.command-entry { padding: 12px 0; border-bottom: 1px solid var(--line); }

.command-entry summary { cursor: pointer; overflow-wrap: anywhere; }

.command-entry pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 300px; overflow: auto; }

#game-log { height: 320px; white-space: pre-wrap; overflow-wrap: anywhere; }

#live-command-form { margin-bottom: 22px; }



.chat-style{border:1px solid var(--line);padding:20px;margin:25px 0 0;min-width:0}

.chat-style legend{color:var(--accent);font-size:13px;padding:0 8px}

.prefix-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start;margin-top:12px}

.prefix-field{min-width:0}

.color-heading{display:flex;flex-direction:column;align-items:center;gap:0;margin:0}

.form .prefix-row label{margin:0 0 8px}

.color-heading input[type=color]{width:36px;height:36px;margin-top:5px;padding:3px;border-radius:6px;cursor:pointer}

@media(max-width:420px){.prefix-row{grid-template-columns:1fr;gap:14px}}

.chat-preview{margin-top:22px;padding:18px;background:#070d0f;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}

.preview-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}

.chat-preview p{color:#fff;margin:12px 0 0;font-size:14px}



.check-label{display:flex!important;align-items:center;gap:10px;font-size:12px}.check-label input[type=checkbox]{width:16px;height:16px;flex:none;accent-color:var(--accent)}.catalog-card{margin-bottom:16px}.catalog-card h2{margin:0}.catalog-card code{font:12px Consolas,monospace;color:var(--muted);overflow-wrap:anywhere}.catalog-form{margin-bottom:20px}.catalog-form .panel-heading button{margin:0}.prepared-command{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:#080f11;border:1px solid var(--line)}#catalog-result{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto;margin-top:18px;font:12px/1.7 Consolas,monospace}



.sidebar-server{margin:4px 0 10px}.sidebar-server label{display:block;font-size:10px;color:var(--muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:1px}.sidebar-server select{font-size:12px;padding:10px 8px;width:100%;min-width:0}

#command-directory{color:var(--text);background:var(--panel);border:1px solid var(--line);padding:0;width:min(1100px,94vw);max-width:94vw;max-height:88vh;box-shadow:0 24px 80px #0008}

#command-directory[open]{display:flex;flex-direction:column}#command-directory::backdrop{background:#02090dcc}

.directory-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:22px 24px;border-bottom:1px solid var(--line)}.directory-header h2{margin:0;font-size:22px}.directory-header p{margin:10px 0 0;color:var(--muted);font-size:12px}

.directory-filters{display:flex;gap:18px;padding:18px 24px 8px}.directory-filters label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:12px}.directory-search{flex:1}.directory-filters select{min-width:155px}.directory-filters input,.directory-filters select{font-size:12px}

#directory-count{font-size:11px;color:var(--muted);margin:8px 24px 14px}.directory-results{overflow:auto;min-height:0;padding:0 24px}.directory-results table{min-width:640px}.directory-results th{position:sticky;top:0;background:var(--panel);z-index:1}.directory-results td{vertical-align:top}.directory-results td:first-child{width:22%}.directory-results td:nth-child(2){width:48%}.directory-results code{color:var(--accent);font-size:12px;overflow-wrap:anywhere}.directory-results p{margin:0 0 8px;line-height:1.6}.directory-aliases{font-size:11px;color:var(--muted);margin-top:8px!important}.directory-original{font-size:11px;color:var(--muted)}.directory-original summary{cursor:pointer}.directory-original p{margin-top:8px}.directory-origin{font-size:10px;color:var(--muted)}.directory-results button{padding:8px 10px;font-size:11px}.directory-footer{padding:16px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.directory-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

@media(max-width:700px){.sidebar-server{max-width:360px;margin-top:18px}.directory-filters{flex-direction:column;padding:14px}.directory-header{padding:16px}.directory-header h2{font-size:18px}.directory-results{padding:0 12px}.directory-footer{padding:12px}#command-directory{max-height:94vh}}



/* Shared boolean controls and compact server context. */

input[type=checkbox],.check-label input[type=checkbox]{appearance:none;width:38px;height:22px;border:1px solid #53656c;border-radius:12px;background:#1d2a30;padding:0;position:relative;flex:none;vertical-align:middle;cursor:pointer;box-shadow:0 0 0 transparent;transition:background-color .32s ease,border-color .32s ease,box-shadow .4s ease}

input[type=checkbox]::before{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#a5b6bb;border-radius:50%;box-shadow:0 1px 3px #0004;transition:transform .32s cubic-bezier(.22,1,.36,1),background-color .32s ease,box-shadow .32s ease}

input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 22%,transparent)}input[type=checkbox]:checked::before{transform:translateX(16px);background:#102222}input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.check-label{cursor:pointer}

.directory-results td:last-child{text-align:right;width:150px;padding-left:32px;white-space:nowrap}.directory-results td:nth-child(2){width:auto}.directory-results td:last-child button{margin-left:12px}

.sidebar-server{margin-top:27px;margin-bottom:0}.station{margin:10px 0 0;padding:9px 10px;font-size:9px}

button.danger{background:#b44646;border-color:#d97878;color:#fff}button.secondary.danger{background:transparent;color:#efa7a7}button.danger:hover{background:#743737;color:#fff}

@media(max-width:700px){.station{display:flex;max-width:360px}.directory-results td:last-child{padding-left:20px}}

@media(prefers-reduced-motion:reduce){input[type=checkbox],.check-label input[type=checkbox],input[type=checkbox]::before{transition:none}}

@media(forced-colors:active){input[type=checkbox],.check-label input[type=checkbox]{appearance:auto}input[type=checkbox]::before{display:none}}



#player-card{color:var(--text);background:var(--panel);border:1px solid var(--line);padding:0;width:min(600px,94vw);max-height:90vh;overflow:auto}#player-card::backdrop{background:#02090dcc}.player-card-body{padding:0 24px 24px}.player-card-body label{display:block;font-size:12px;color:var(--muted);margin:20px 0 10px}.player-card-body a{font-size:12px}#private-result{white-space:pre-wrap;overflow-wrap:anywhere}



.kali-icon{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.player-menu-button{font-size:22px;padding:1px 12px;line-height:28px}#kali-context-menu{position:fixed;z-index:30;width:240px;max-width:calc(100vw - 16px);padding:7px;background:#101b1d;border:1px solid #35474a;border-radius:8px;box-shadow:0 12px 35px #0008}#kali-context-menu[hidden]{display:none}.context-title{font-size:11px;letter-spacing:1px;color:var(--accent);padding:10px;overflow-wrap:anywhere;border-bottom:1px solid var(--line);margin-bottom:5px}#kali-context-menu button{display:flex;align-items:center;gap:12px;width:100%;background:transparent;color:var(--text);border:0;border-radius:4px;text-align:left;padding:12px 10px;font-weight:400}#kali-context-menu button:hover,#kali-context-menu button:focus-visible{background:#1d3333;color:var(--accent)}



#moderation-card{color:var(--text);background:var(--panel);border:1px solid var(--line);padding:0;width:min(640px,94vw);max-height:90vh;overflow:auto}#moderation-card::backdrop{background:#02090dcc}.duration-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.duration-row input,.duration-row select{margin-top:8px}#moderation-result{white-space:pre-wrap;overflow-wrap:anywhere}#kali-context-menu .menu-danger{color:#efa7a7}



.ban-search{display:block;max-width:420px;flex:1;font-size:12px;color:var(--muted)}.ban-search input{margin-top:8px}.ban-table{min-width:850px}.ban-table td{max-width:250px;overflow-wrap:anywhere}.ban-table small{color:var(--muted)}.ban-actions{display:flex;gap:8px}.ban-actions button{white-space:nowrap}#ban-editor{color:var(--text);background:var(--panel);border:1px solid var(--line);padding:0;width:min(680px,94vw);max-height:90vh;overflow:auto}#ban-editor::backdrop{background:#02090dcc}#ban-result{white-space:pre-wrap;overflow-wrap:anywhere}



.ban-table{min-width:600px}.ban-table th:last-child,.ban-table td:last-child{width:64px;text-align:right}.ban-information{display:grid;grid-template-columns:160px minmax(0,1fr);gap:18px 24px;margin:8px 0 0}.ban-information dt{color:var(--muted);font-size:12px}.ban-information dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:500px){.ban-information{grid-template-columns:1fr;gap:8px}.ban-information dd{margin-bottom:12px}}



/* Shared controls and layout. */

.header-actions{display:flex;align-items:center;gap:16px}.icon-refresh{background:transparent;border:1px solid var(--line);color:var(--accent);font-size:24px;line-height:1;padding:5px 9px}

button.icon-close{background:transparent;color:#ed8585;border:0;border-radius:4px;padding:0;width:30px;height:30px;display:inline-grid;place-items:center;line-height:1;font-size:25px;flex:none;margin:0}button.icon-close:hover{background:#5b282844;color:#ffb5b5}.card-delete{position:absolute;right:10px;top:10px}.server-card,.catalog-card{position:relative}.server-card>.panel-heading,.catalog-card .panel-heading{padding-right:26px;align-items:flex-start}.server-card h2{overflow-wrap:anywhere}

.server-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.server-card{min-width:0}.server-card dl{grid-template-columns:38% minmax(0,1fr)}.path-preview{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.server-card:has(.install){grid-column:span 2}.server-card .install{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}@media(max-width:1200px){.server-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.server-grid{grid-template-columns:minmax(0,1fr)}.server-card:has(.install){grid-column:auto}}

.centered-table th,.centered-table td{text-align:center;vertical-align:middle}.ban-table th:last-child,.ban-table td:last-child{text-align:center}

.kali-switch{display:inline-block;position:relative;width:40px;height:24px;flex:none;vertical-align:middle}.kali-switch input[type=checkbox],.check-label .kali-switch input[type=checkbox]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;z-index:1;cursor:pointer}.kali-switch input::before{display:none}.switch-track{position:absolute;inset:0;border:1px solid #53656c;border-radius:20px;background:#1d2a30;pointer-events:none;transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease}.switch-track::before{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#a5b6bb;transition:transform .5s cubic-bezier(.4,0,.2,1),background-color .5s ease}.kali-switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 20%,transparent)}.kali-switch input:checked+.switch-track::before{transform:translateX(16px);background:#102222}.kali-switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:4px}.kali-switch input:disabled+.switch-track{opacity:.45}@media(forced-colors:active){.kali-switch input[type=checkbox]{opacity:1;appearance:auto}.switch-track{display:none}}



/* Shared card headers, bordered close controls and compact dialogs. */

button.icon-close{border:1px solid #d97878;border-radius:0;width:28px;height:28px;font-size:21px;color:#ef9292;background:transparent}.card-delete{position:static;flex:none}.server-card>.panel-heading,.catalog-card .panel-heading{padding-right:0;align-items:center}.card-heading{flex-wrap:wrap;gap:10px}.card-heading h2{flex:1 1 75px;min-width:0;margin:0;overflow-wrap:anywhere}.card-tools{display:flex;align-items:center;gap:10px;margin-left:auto}.card-tools .badge{white-space:nowrap}.server-card .actions,.catalog-card .actions,.kali-dialog .actions{justify-content:center}.server-card:has(.install){grid-column:auto}.server-card dl{margin-top:22px}

.header-actions{align-items:center;gap:16px}.header-actions .badge{display:inline-flex;align-items:center;height:28px;line-height:1;padding:0 10px}.header-actions .icon-refresh{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;font-size:18px;line-height:1}

.kali-dialog{inset:5vh 0 auto;margin:0 auto;overflow-y:auto;overflow-anchor:none;color:var(--text);background:var(--panel);border:1px solid var(--line);padding:0;width:min(580px,94vw);max-width:94vw;max-height:90vh;box-shadow:0 24px 80px #0008}.kali-dialog.modal-wide{width:min(720px,94vw)}.kali-dialog::backdrop{background:#02090dcc}.kali-dialog .directory-header{align-items:center}.kali-dialog .directory-header h2{overflow-wrap:anywhere}.modal-body{padding:22px 24px}.modal-body>p:first-child{margin-top:0}.modal-body label{display:block;color:var(--muted);font-size:12px;margin:16px 0 8px}.modal-body .panel{padding:0;border:0}.modal-body .form-error{color:#efa7a7}.agent-versions{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:12px}.agent-versions dt{color:var(--muted)}.agent-versions dd{margin:0}.connection-settings{margin:20px 0}.connection-settings summary{cursor:pointer;margin-bottom:16px}

#toast.visible{display:flex;align-items:center;gap:18px;max-width:min(480px,calc(100vw - 32px));box-shadow:0 12px 36px #0009;border:1px solid var(--line);background:var(--panel);color:var(--text)}#toast .icon-close{flex:none}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.catalog-card{min-width:0;margin:0;display:flex;flex-direction:column}.catalog-card .command-body{flex:1}.catalog-card p{overflow-wrap:anywhere}.command-enabled{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;margin:20px 0 0}.command-disabled{opacity:.72}.catalog-card .actions{margin-top:16px}.toolbar-end{justify-content:flex-end}@media(max-width:1200px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.catalog-grid{grid-template-columns:minmax(0,1fr)}}



.catalog-empty{grid-column:1/-1}.catalog-card .command-body{margin-top:16px}.catalog-card .command-body p:first-child{margin-top:0}.catalog-card button:disabled{cursor:not-allowed}.command-enabled{cursor:pointer}.directory-header{align-items:center}.player-card-body .actions{justify-content:center}.modal-body .install{border:0;margin:0;padding:0}#toast{margin:0;inset:auto 24px 24px auto}.form-error:empty{display:none}



/* Geometric close mark: identical centering regardless of the system font. */

button.icon-close{position:relative;inset:auto;font-size:0}

button.icon-close::before,button.icon-close::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;pointer-events:none}

button.icon-close::before{transform:translate(-50%,-50%) rotate(45deg)}

button.icon-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.server-grid{align-items:stretch}.server-card{display:flex;flex-direction:column}.server-card>.actions{margin-top:auto}



/* Shared actions and unobtrusive notifications. */

.server-card .actions,.catalog-card .actions,.kali-dialog .actions,.player-card-body .actions{justify-content:flex-start}

.command-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px}.command-footer .actions{margin:0;gap:8px}.command-footer .command-enabled{margin:0 0 0 auto;justify-content:flex-end;font-size:11px;gap:8px}.command-footer .actions button{padding:10px 12px}

.server-status{display:flex;gap:8px;align-items:center}.server-status::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:#b78383}.server-status.is-online::before{background:var(--accent)}

#toast.visible{inset:86px 24px auto auto;width:max-content;max-width:min(420px,calc(100vw - 32px));padding:14px 16px;gap:12px;border-radius:10px;border:1px solid #35474a;border-left:3px solid var(--accent);background:#142124;box-shadow:0 12px 32px #0005;font-size:13px;font-weight:400;animation:notification-enter .22s ease-out}.notification-message{line-height:1.5;overflow-wrap:anywhere}.notification-symbol{display:grid;place-items:center;flex:none;width:20px;height:20px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font:13px Georgia,serif}@keyframes notification-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){#toast.visible{animation:none}}.offline-section{margin-top:22px}.offline-section h2{margin-bottom:12px}



/* Themes and live overview share the same accent tokens. */

nav a.active,nav a:hover{background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.all-players{min-width:950px}@media(max-width:1400px){.all-players{min-width:830px}}

html:has(body[data-accent=blue]),body[data-accent=blue]{--accent:#83b8ff}html:has(body[data-accent=violet]),body[data-accent=violet]{--accent:#c3a1ff}html:has(body[data-accent=rose]),body[data-accent=rose]{--accent:#f69ec8}html:has(body[data-accent=green]),body[data-accent=green]{--accent:#91dea4}

.badge{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.role{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.notice{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}#toast.visible{background:var(--panel);border-color:var(--line);border-left-color:var(--accent)}

.overview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:26px 0 20px}.overview-stats .stat{padding:20px 22px}.overview-stats strong{font-size:23px;margin-bottom:0}.telemetry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:20px}.metric-card{min-width:0}.metric-card h2{font-size:12px;color:var(--muted);margin-bottom:20px}.metric-card>strong{font-size:30px;font-weight:500;color:var(--accent);font-variant-numeric:tabular-nums}.telemetry-chart,.chart-empty{display:block;width:100%;height:70px;margin-top:18px}.telemetry-chart polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.chart-baseline{stroke:var(--line);stroke-width:1}.overview-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.overview-columns .panel-heading h2{margin:0}.overview-player-list{margin-top:18px}.overview-player-list>div{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;padding:18px 0;border-top:1px solid var(--line);font-size:12px}.overview-player-list strong{font-weight:500}.overview-player-list span{color:var(--muted)}.overview-details{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;font-size:12px;margin:0}.overview-details dt{color:var(--muted)}.overview-details dd{margin:0;overflow-wrap:anywhere}.player-list-panel{margin-top:26px;padding:16px}.all-players{min-width:1000px}.all-players td:first-child{font-weight:600;max-width:180px;overflow-wrap:anywhere}.all-players th,.all-players td{padding:15px 9px}.all-players td{font-variant-numeric:tabular-nums}.all-players time{display:block;white-space:nowrap;color:var(--muted);font-size:11px;margin-top:7px}.player-presence{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.player-presence::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--muted)}.player-presence.is-online::before{background:var(--accent)}.directory-header p:empty,.player-card-body p:empty{display:none}

@media(max-width:1100px){.overview-columns{grid-template-columns:1fr}.metric-card{padding:18px}.metric-card>strong{font-size:25px}}@media(max-width:750px){.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-grid{grid-template-columns:1fr}.overview-player-list>div{gap:10px}.overview-stats .stat{padding:16px}.overview-stats strong{font-size:20px}}



.all-players{min-width:950px}@media(max-width:1400px){.all-players{min-width:830px}}



/* Shared focus ring remains inside its control. */

input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.all-players td:first-child{color:var(--accent)}#private-form{display:grid;gap:12px}#private-form label{margin-bottom:0}#private-send{justify-self:start}#console-status:empty{display:none}#game-log{margin-top:25px}.command-form input{flex:1;min-width:150px;width:auto}.command-form button{flex:none;white-space:nowrap}.command-form #clear-console{margin-left:auto}.all-players{min-width:830px}



.kali-select{position:relative;display:block;width:100%;min-width:0}.kali-select select[hidden]{display:none}.select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:46px;padding:11px 12px;border:1px solid #405158;background:#0c1316;color:var(--text);text-align:left;font-weight:400;margin:0!important}.select-trigger::after{content:'⌄';margin-left:16px;color:var(--muted)}.select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.kali-select.is-open .select-trigger{border:2px solid var(--accent);border-bottom-color:transparent;padding:10px 11px;outline:0}.select-options{display:block;position:absolute;top:calc(100% - 2px);left:0;right:0;max-height:240px;overflow:auto;z-index:15;border:2px solid var(--accent);border-top:0;background:#0c1316;box-shadow:0 12px 22px #0005;padding:5px}.select-options[hidden]{display:none}.select-options button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);padding:10px 8px;font-weight:400;margin:0!important}.select-options button:hover,.select-options button:focus-visible{background:color-mix(in srgb,var(--accent) 16%,var(--panel));outline:0}.select-options button[aria-selected=true]{color:var(--accent)}

.kali-select.is-open.opens-up .select-trigger{border-top-color:transparent;border-bottom-color:var(--accent)}.kali-select.opens-up .select-options{top:auto;bottom:calc(100% - 2px);border-top:2px solid var(--accent);border-bottom:0}



.duration-row{align-items:start;margin-top:18px}.duration-row>label{display:flex;flex-direction:column;gap:8px;margin:0!important}.duration-row input,.duration-row select{margin-top:0;height:46px}.duration-row .kali-select{margin:0}.duration-row .select-trigger{height:46px;min-height:46px}.duration-row+.actions{margin-top:20px}.player-card-body .unban-actions{justify-content:center}.blood-moon-countdown{color:#f18a8a!important;font-size:14px!important;white-space:nowrap}.overview-stats .stat-detail{font-size:21px}



.overview-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.overview-stats .stat{padding:18px 14px}.overview-stats .stat-detail{font-size:19px}.overview-stats small{font-size:10px}@media(max-width:1300px){.overview-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}



/* Shared compact panels and themed feedback. */

*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 45%,var(--line)) var(--bg)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 40%,var(--line));border:2px solid var(--bg);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}

.blood-moon-countdown{color:var(--accent)!important}.confirmation-dialog .directory-header{justify-content:center;text-align:center}.confirmation-dialog h2{font-size:20px}.unban-actions button{min-width:92px}.profile-form{max-width:none}.profile-form label:first-child{margin-top:0}.profile-form .chat-style{margin-top:22px}.profile-form .chat-preview{border-radius:0}

.recent-journal{list-style:none;padding:0;margin:20px 0 0}.recent-journal li{padding:14px 0;border-top:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}.recent-journal li>div{display:flex;justify-content:space-between;gap:16px}.recent-journal time,.recent-journal li>span{font-size:10px;color:var(--muted)}.recent-journal li>span{display:block;margin-top:6px}.recent-journal p{font:11px Consolas,monospace;margin:9px 0 0}.journal-status{color:var(--accent);margin-left:8px}.journal-empty{font-size:12px;color:var(--muted);margin-top:22px}

#kali-hint{position:fixed;inset:auto;margin:0;background:var(--panel);color:var(--text);border:1px solid var(--accent);box-shadow:0 8px 24px #0005;padding:10px 14px;max-width:min(360px,calc(100vw - 24px));font:12px/1.5 Segoe UI,Arial,sans-serif;pointer-events:none;overflow-wrap:anywhere}#kali-hint[data-error=true]{border-left-width:3px}[aria-invalid=true]{border-color:var(--accent)!important}.installation-flow{display:grid;gap:20px}.installation-step{border-left:2px solid var(--accent);padding-left:16px}.installation-step h3{margin:0 0 10px;font-size:14px}.installation-step p{font-size:12px;margin:8px 0;line-height:1.6}.installation-flow code{color:var(--accent);overflow-wrap:anywhere}.installation-status{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:14px}.connection-repair{border-top:1px solid var(--line);padding-top:16px}.connection-repair summary{font-size:12px;cursor:pointer;color:var(--muted)}.connection-repair p{font-size:12px}.connection-repair button{margin-top:10px}



.overview-stats .stat-detail .game-clock{font-size:inherit;color:inherit;white-space:nowrap}.overview-stats .blood-moon-countdown{font-size:inherit!important;line-height:inherit;vertical-align:baseline}.overview-stats .stat-detail{font-size:clamp(14px,1.1vw,19px)}



.journal-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.journal-filters label{font-size:12px;color:var(--muted)}.journal-filters .kali-select{display:block;margin-top:8px}.role-grants{border:1px solid var(--line);margin-top:24px;padding:16px}.role-grants legend{color:var(--accent);font-size:12px}.role-grants .grant{display:flex;align-items:center;gap:12px;margin:12px 0}.role-grants .grant input{width:auto}.staff-panel{margin-top:24px}.steam-access p{font-size:12px}.role-grants p{line-height:1.6}.role-sample{font-weight:600}@media(max-width:700px){.journal-filters{grid-template-columns:1fr}}



.role-grants:has(.grant){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}.role-grants .grant{margin:8px 0;font-size:11px}@media(max-width:650px){.role-grants:has(.grant){grid-template-columns:1fr}}



.permission-group h3{margin:4px 0 14px;font-size:12px;color:var(--accent)}.role-grants .permission-group .grant{display:flex;gap:12px;align-items:center;min-height:36px}.role-card h2{overflow-wrap:anywhere}.role-card .actions{margin-top:24px}



.roles-table .role-name{color:var(--text);font-weight:600}.roles-table .role-actions{text-align:right;width:120px}.permission-row{display:grid;grid-template-columns:1fr minmax(160px,220px);gap:20px;align-items:center;margin:10px 0}.permission-row>span{font-size:12px}.player-role-actions{padding:4px 12px 12px;border-left:2px solid var(--accent)}.player-role-actions .grant{display:flex;align-items:center;gap:12px;margin:10px 0}.permission-rows .permission-row:last-child{color:var(--muted)}@media(max-width:550px){.permission-row{grid-template-columns:1fr}}



[hidden]{display:none!important}



/* Tableaux : même axe pour les titres et les cellules, y compris Actions. */

table th,table td{ text-align:center!important;vertical-align:middle }

fieldset{border:1px solid var(--accent);min-inline-size:0;margin:0;padding:16px}legend{color:var(--accent);padding:0 8px}

.permission-matrix{width:100%;table-layout:fixed}.permission-matrix th,.permission-matrix td{padding:10px 6px}.permission-matrix tbody th{font-size:12px;letter-spacing:0;text-transform:none}.permission-choice{display:flex!important;justify-content:center;align-items:center;min-height:32px;margin:0!important;cursor:pointer}.permission-choice input[type=radio]{appearance:none;width:18px;height:18px;min-height:0;padding:0;margin:0;border:1px solid var(--accent);border-radius:50%;background:var(--bg);cursor:pointer}.permission-choice input:checked{background:var(--accent);box-shadow:inset 0 0 0 4px var(--bg)}.player-action-options{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 20px}.player-action-options .grant{display:flex;align-items:center;gap:8px;font-size:11px}#role-editor .form{gap:16px}





/* Roles: balanced columns, quiet frames, centered disclosure. */

.roles-table{table-layout:fixed}

.roles-table .role-actions{width:auto}

.role-definitions col{width:33.333%}

.role-action-slot{display:block;width:64px;margin:auto;text-align:center}

#role-editor fieldset{border:1px solid #405158;padding:14px 16px;margin-top:24px}

#role-editor fieldset+fieldset{margin-top:26px}

#role-editor legend{color:var(--text);font-size:13px}

#role-editor .role-appearance-note{font-size:11px;margin:8px 0 0;line-height:1.5;color:var(--muted)}

.permission-matrix td{position:relative}

.permission-matrix .permission-expand{position:absolute;left:calc(50% + 18px);top:50%;transform:translateY(-50%);width:24px;height:24px;min-height:0;padding:0;margin:0!important;border:0;background:transparent!important;box-shadow:none;color:var(--accent);display:flex;align-items:center;justify-content:center}

.permission-expand svg{display:block;width:8px;height:8px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}

.permission-expand[aria-expanded="true"] svg{transform:rotate(180deg)}

.permission-expand:hover{color:var(--text)}

.kali-switch{height:18px;width:38px}

.switch-track::before{top:0;left:2px}

.role-ink{text-shadow:none;-webkit-text-stroke:0;font-weight:600}

.overview-connected{margin-top:20px}

.overview-connected table{table-layout:fixed}

.overview-connected th{width:25%}.overview-connected th,.overview-connected td{text-align:center;overflow-wrap:anywhere}

.overview-connected td{padding:16px 10px;font-variant-numeric:tabular-nums}

.overview-connected .connected-name{font-size:13px;font-weight:500;overflow-wrap:anywhere;color:var(--text)}



.chat-history-filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.chat-history-filters label{flex:1;min-width:150px}.chat-history-filters button{margin-bottom:8px}.chat-history-table td{white-space:pre-wrap;overflow-wrap:anywhere}.chat-history-table td:last-child{text-align:left!important;min-width:180px}.chat-history-table th:last-child{width:55%}#role-editor .chat-grant{display:flex;align-items:center;gap:12px;margin-top:20px;line-height:1.5}



#chat-history{width:min(1000px,94vw);min-height:min(560px,90vh)}.chat-history-table td.short-message{text-align:center!important}.chat-history-table td.long-message{text-align:left!important}.player-action-options{display:grid;grid-template-columns:max-content max-content;justify-content:center;column-gap:48px;row-gap:14px;text-align:left;padding:8px 0}.player-action-options .grant{min-height:24px;margin:0;font-size:11px}@media(max-width:560px){.player-action-options{grid-template-columns:1fr}}



/* Vanilla V3.2 b10 XUiC_ChatOutput defaults; independent of the panel theme. */

.chat-channel.channel-global{color:#ffffff}.chat-channel.channel-friends{color:#00bf00}.chat-channel.channel-party{color:#ffcc00}.chat-channel.channel-whisper{color:#cc0000}



.role-inheritance{display:flex;flex-wrap:wrap;gap:16px;padding:10px 0}.lua-source{width:100%;box-sizing:border-box;font-family:monospace;line-height:1.5;resize:vertical;min-height:220px}.plugin-command{margin-block:20px}





/* Shared form controls: keep labels clear of compact switch tracks. */

.form label.grant{display:flex;align-items:center;gap:12px;line-height:1.5;cursor:pointer}

.form .grant .kali-switch{flex-shrink:0;margin:0}

#plugin-editor fieldset{border:1px solid #405158;padding:14px 16px}

#plugin-editor legend{color:var(--text);font-size:13px}

.plugin-assistant{display:grid;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}

.plugin-assistant h3{margin:0;font-size:15px}.plugin-assistant textarea{width:100%;box-sizing:border-box;min-height:90px;resize:vertical}

.plugin-validation{color:var(--muted);line-height:1.6;margin:0}


.docs-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;margin-top:24px;align-items:start}.docs-nav{display:grid;gap:8px}.docs-nav button{text-align:left}.docs-nav [aria-current=true]{border-color:var(--accent);color:var(--accent)}.docs-search{display:block;max-width:440px}.docs-search input{display:block;width:100%;margin-top:8px}.doc-article{margin:0;line-height:1.8}.doc-article h2{margin-top:0}.doc-article h3,.doc-article h4{margin-top:28px}.doc-article pre{padding:18px;background:var(--bg);overflow:auto;border:1px solid #405158}.doc-article li{margin:8px 0}.doc-article td{text-align:left;white-space:normal}.docs-nav [hidden],[hidden]#docs-fallback,[hidden]#copy-doc-fallback{display:none!important}#plugin-create .plugin-assistant{border:0;padding:0}#plugin-create .plugin-assistant+section{border-top:1px solid var(--line);padding-top:24px}@media(max-width:750px){.docs-layout{grid-template-columns:1fr}.docs-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}

.plugin-source-details{border-top:1px solid var(--line);padding-top:16px}.plugin-source-details summary{cursor:pointer;color:var(--accent);margin-bottom:16px}#plugin-settings fieldset{display:grid;gap:18px}

.lua-source,.plugin-assistant textarea{background:var(--bg);color:var(--text);border:1px solid #405158;padding:12px;line-height:1.5}.plugin-assistant p{margin:0}#plugin-create .lua-source{min-height:150px}.plugin-assistant .actions{margin:0}

@media(min-width:751px){.docs-nav{max-height:65vh;overflow:auto;position:sticky;top:24px;padding-right:8px}}

.kali-dialog.modal-confirm{inset:0;margin:auto;width:min(440px,94vw);height:fit-content;max-height:90vh}.kali-dialog.modal-confirm .directory-header h2{font-size:18px}.plugin-search{display:block;max-width:440px;margin-bottom:24px}.plugin-search input{display:block;width:100%;margin-top:8px}.plugin-description{min-height:85px}.catalog-grid+.catalog-grid{margin-top:24px}#lua-command-editor fieldset{border:1px solid #405158}#lua-command-editor legend{color:var(--text)}

#lua-command-editor.kali-dialog{inset:0;margin:auto;width:min(460px,94vw);height:fit-content;max-height:90vh}#lua-command-editor .directory-header h2{font-size:19px}#lua-command-editor .modal-body{padding:18px 22px}#lua-command-editor .command-access-title{font-size:12px;margin:12px 0 0;color:var(--muted)}#lua-command-editor .role-inheritance{padding:0;gap:8px 18px}#lua-command-editor .role-inheritance .grant{margin:6px 0}#lua-command-editor .duration-row{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}#lua-command-editor .duration-row label{display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:12px;margin:0;line-height:1.5}#lua-command-editor .duration-row input{width:84px;min-width:0;height:36px;min-height:36px;padding:6px 10px;box-sizing:border-box}#catalog-list:empty{display:none}

#lua-command-editor .duration-row:empty{display:none}

/* Role ordering: preserve centered columns while exposing a dedicated grip. */
.role-definitions .role-name{position:relative;padding-left:48px;padding-right:48px}
.role-drag-handle{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:32px;height:36px;padding:8px;border:0;background:transparent;color:#8ca3ac;cursor:grab;touch-action:none}
.role-drag-handle svg{width:12px;height:18px;fill:currentColor}
.role-drag-handle:hover,.role-drag-handle:focus-visible{background:#20363a;color:#60dfcf}
.role-definitions tr[hidden]{display:none}
.role-drop-space td{box-sizing:border-box;border:1px dashed #60dfcf;background:#173336;color:#60dfcf;text-align:center;font-size:12px}
.role-drag-preview{position:fixed;z-index:10000;pointer-events:none;padding:14px 24px;background:#17292d;border:1px solid #60dfcf;color:#dce5e7;box-shadow:0 8px 24px #0005}
.role-sorting,.role-sorting *{cursor:grabbing!important;user-select:none}

/* Center the compact plugin editor; keep its top fixed when details expand. */
#plugin-editor.kali-dialog{inset:0;margin:auto;width:min(520px,94vw);height:fit-content;max-height:90vh}
#plugin-editor .directory-header h2{font-size:19px}
#plugin-editor.source-expanded{inset:var(--plugin-editor-top,5vh) 0 auto;margin:0 auto;max-height:calc(95vh - var(--plugin-editor-top,5vh))}

.buff-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:12px;align-items:center;margin-bottom:10px}.buff-row button{padding:6px;min-width:0}.buff-settings{margin:16px 0}.buff-settings>button{margin-top:6px}

#plugin-settings label:has(>input[type=number]){display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:12px}#plugin-settings input[type=number]{width:84px;min-width:0;height:36px;min-height:36px;padding:6px 10px}.command-footer select{max-width:180px}

/* Compact plugin parameters, independent of generic form label spacing. */
#plugin-settings>fieldset{gap:12px;margin:0;padding:14px}
#plugin-settings label{margin:0;line-height:1.4}
#plugin-settings input,#plugin-settings select{margin:0}
#plugin-settings .buff-settings{margin:4px 0 0;gap:10px;padding:12px}
#plugin-settings .buff-row{margin:0 0 10px;align-items:center}
#plugin-settings .buff-row input{height:40px;min-height:40px;padding:8px 10px;box-sizing:border-box}
#plugin-settings .buff-row button{height:32px;min-height:32px;align-self:center;margin:0;line-height:1}
#plugin-settings .buff-settings>button{margin:0}
#plugin-settings .schedule-settings{margin:0;gap:12px;padding:12px}
.weekdays{display:flex;gap:5px;flex-wrap:wrap}.weekdays label{position:relative;cursor:pointer}.weekdays input{position:absolute;opacity:0;width:1px;height:1px}.weekdays span{display:block;padding:8px;border:1px solid var(--line);font-size:11px}.weekdays input:checked+span{background:var(--accent);color:var(--bg);border-color:var(--accent)}.weekdays input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}
.schedule-interval{display:flex;gap:10px;align-items:center}.schedule-interval[hidden]{display:none}.schedule-interval select{flex:1}.schedule-time{display:flex!important;align-items:center;justify-content:space-between}.schedule-time input{width:130px}
.role-list-panel{max-width:760px;margin:0 auto}.role-definitions col:first-child{width:70%}.role-definitions col:last-child{width:30%}
#role-members.kali-dialog{inset:0;margin:auto;width:min(600px,94vw);height:fit-content;max-height:90vh}#role-members .directory-header h2{font-size:19px}#role-members td,#role-members th{padding:10px}.member-add{display:grid;gap:12px;margin-top:18px}.member-add label{margin:0}.member-actions{display:flex;justify-content:center;gap:8px}

#plugin-settings>fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}#plugin-settings>fieldset>label:not(.plugin-number),#plugin-settings>fieldset>fieldset{grid-column:1/-1}#plugin-settings .plugin-number{grid-template-columns:1fr 60px!important;gap:8px!important}#plugin-settings .plugin-number input{width:60px}@media(max-width:440px){#plugin-settings>fieldset{grid-template-columns:1fr}}

#plugin-settings .weekdays input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;padding:0;margin:0}#plugin-settings .weekdays label{display:block}#plugin-settings .weekdays span{padding:8px}#plugin-settings .schedule-interval>span:not(.kali-select){white-space:nowrap;flex-shrink:0}#plugin-settings .schedule-interval input{width:64px}

#plugin-settings .schedule-interval>.kali-select{width:auto;min-width:0;flex:1}#plugin-settings .schedule-interval>input{flex:0 0 64px}

.member-add .grant{display:flex;align-items:center;gap:12px}.member-add .grant .kali-switch{flex-shrink:0}

/* 0.49: aligned compact controls and role actions. */
#plugin-settings .buff-row input{height:32px;min-height:32px;padding:5px 10px}
.roles-toolbar{max-width:760px;margin-left:auto;margin-right:auto}
.all-players td[data-rank-color=""],.overview-connected [data-rank-color=""]{color:#fff}
#plugin-settings .schedule-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#plugin-settings .schedule-interval{gap:7px;flex:0 1 auto}
#plugin-settings .schedule-interval>input{flex:0 0 46px;width:46px;padding:4px 5px}
#plugin-settings .schedule-interval>.kali-select{flex:0 0 92px;width:92px}
#plugin-settings .schedule-line .select-trigger{height:34px;min-height:34px;padding:6px;font-size:11px}
#plugin-settings .schedule-time{gap:7px;flex:0 0 auto;font-size:11px}
#plugin-settings .schedule-time input{width:88px;height:34px;min-height:34px;padding:4px}
#plugin-settings .schedule-interval>span:not(.kali-select){font-size:11px}
/* Compact and consistent automation controls. */
#plugin-settings .weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%}
#plugin-settings .weekdays label{margin:0!important;min-width:0;text-align:center}
#plugin-settings .weekdays span{padding:8px 0}
#plugin-settings .schedule-line{gap:8px}
#plugin-settings .schedule-line input,#plugin-settings .schedule-line .select-trigger{height:34px;min-height:34px;font-weight:400;line-height:1.2;font-family:inherit;font-size:12px;box-sizing:border-box;margin:0}
#plugin-settings .schedule-line span:not(.kali-select),#plugin-settings .schedule-time{font-size:12px}
#plugin-settings .schedule-time{margin:0 0 0 auto!important;gap:8px}
#plugin-settings .schedule-time input{width:96px}
#plugin-settings .schedule-interval>input{height:34px;font-size:12px}
.select-trigger::after{content:'';width:5px;height:5px;flex:0 0 5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:10px}
#plugin-settings .role-buff-settings{display:flex;flex-direction:column;gap:12px}
#plugin-settings .role-buff-settings p{margin:0;font-size:12px}
#plugin-settings .role-buff-group{display:flex;flex-direction:column;gap:10px;margin:0 0 12px;padding:12px}
#plugin-settings .role-buff-heading{display:flex;gap:12px;align-items:end}
#plugin-settings .role-buff-heading label{flex:1;margin:0}
#plugin-settings .role-buff-heading>button{height:34px;width:36px;padding:0;margin:0}
#plugin-settings .role-buff-heading .select-trigger{min-height:34px;height:34px;padding:6px 10px}
/* All present and future modal panels share the same centered layout. */
dialog:not(#toast){inset:0!important;margin:auto!important;height:fit-content;max-height:90vh;max-height:90dvh!important;overflow-y:auto}
#kali-context-menu{inset:auto;margin:0;color:var(--text)}
#role-members .member-add{margin:0 0 18px;gap:12px}
.member-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#role-members .member-controls>label{display:flex;flex-direction:column;gap:9px;margin:0}
#role-members .member-controls input,#role-members .member-controls .select-trigger{height:42px;min-height:42px;margin:0;font-size:12px}
#role-members .member-add .actions{margin:0}
#role-member-list{max-height:45vh;overflow:auto}
#role-member-list thead{position:sticky;top:0;background:var(--panel)}
#plugin-settings .buff-item{margin-bottom:12px}
#plugin-settings .buff-row .player-menu-button{height:32px;min-height:32px;padding:0 8px;font-size:20px;line-height:30px}
#plugin-settings .buff-empty-roles{display:grid;gap:8px}
#buff-roles{width:min(460px,94vw)}
.buff-role-choices{display:flex;flex-direction:column;gap:10px;margin:20px 0}
#buff-roles .grant{display:flex;align-items:center;gap:12px;margin:0}
@media(max-width:520px){.member-controls{grid-template-columns:1fr}}

/* The buff field and its action control have exactly the same outer height. */
#plugin-settings .buff-row input,#plugin-settings .buff-row .player-menu-button{box-sizing:border-box;height:32px;min-height:32px;max-height:32px;margin:0;align-self:center}
#plugin-settings .buff-row .player-menu-button{display:flex;align-items:center;justify-content:center;line-height:1;padding:0}

/* Structured Lua settings follow the same compact, centered editor. */
.lua-coordinates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lua-coordinates label,.lua-item-row label{display:flex;flex-direction:column;gap:8px;margin:0}
.lua-coordinates input,.lua-item-row input{width:100%;min-width:0;height:34px;box-sizing:border-box;font-size:12px;padding:7px 10px}
.lua-position-player{display:flex;align-items:center;gap:10px;margin-top:12px}.lua-position-player>select,.lua-position-player>.custom-select{flex:1;min-width:0}
.lua-item-row{display:grid;grid-template-columns:minmax(100px,1fr) 70px 60px 34px;gap:8px;align-items:end;margin-bottom:12px}.lua-item-row button{height:34px;width:34px;padding:0}.lua-items>[data-item-add]{width:100%}
@media(max-width:420px){.lua-position-player{flex-direction:column;align-items:stretch}.lua-item-row{grid-template-columns:minmax(80px,1fr) 52px 48px 30px;gap:5px}}

#plugin-settings .lua-position,#plugin-settings .lua-items{gap:12px;padding:12px;margin:0}
#plugin-settings .lua-coordinates label:has(>input[type=number]){grid-template-columns:12px minmax(0,1fr);gap:6px}
#plugin-settings .lua-coordinates input,#plugin-settings .lua-item-row input{width:100%;height:34px;min-height:34px;font-size:12px;box-sizing:border-box;margin:0}
#plugin-settings .lua-position-player{margin:0;gap:10px}
#plugin-settings .lua-position-player>.kali-select{flex:1;min-width:0;width:auto}
#plugin-settings .lua-position-player>.secondary{flex:0 0 146px;width:146px;margin:0;padding:6px 9px;white-space:nowrap}
#plugin-settings .lua-position-player .select-trigger,#plugin-settings .lua-position-player>.secondary{height:34px;min-height:34px;font-size:12px;line-height:1.2;box-sizing:border-box}
#plugin-settings .lua-position-player .select-trigger{padding:6px 10px}
#plugin-settings .lua-item-row label:has(>input){display:flex;flex-direction:column;gap:8px;margin:0;align-items:stretch}
#plugin-settings .lua-item-row button{margin:0;height:34px;min-height:34px;padding:0;align-self:end}
#plugin-settings .lua-items>[data-item-add]{margin:0}
@media(max-width:420px){#plugin-settings .lua-position-player>.secondary{flex:auto;width:100%}}

/* Teleport list: compact fields, identical heights, internal dialog scrolling. */
#plugin-settings .lua-teleport-row {padding:12px 0;border-bottom:1px solid var(--border,#293c42);}
#plugin-settings .lua-teleport-row:first-child {padding-top:0;}
#plugin-settings .lua-teleport-head {display:grid;grid-template-columns:minmax(100px,1fr) 34px;gap:10px;align-items:end;}
#plugin-settings .lua-teleport-row label {display:flex;flex-direction:column;gap:6px;margin:0;font-size:12px;}
#plugin-settings .lua-teleport-row input,#plugin-settings .lua-teleport-row select,#plugin-settings .lua-teleport-row button,#plugin-settings .lua-teleport-row .custom-select-trigger {height:34px;min-height:34px;box-sizing:border-box;margin:0;font:inherit;}
#plugin-settings .lua-command-name {display:flex;align-items:center;gap:5px;}
#plugin-settings .lua-command-name input {width:100%;min-width:0;}
#plugin-settings [data-tp-position] {margin-top:10px;}
#plugin-settings [data-tp-position][hidden] {display:none;}
#plugin-settings .lua-teleport-row .lua-position-player {margin-top:8px;}
#plugin-settings [data-teleport-add] {width:100%;margin-top:12px;}
@media(max-width:520px){#plugin-settings .lua-teleport-head {grid-template-columns:minmax(80px,1fr) 34px;gap:6px;}}

#plugin-settings .lua-teleport-row {display:grid;grid-template-columns:minmax(95px,1fr) repeat(3,minmax(48px,72px)) 34px;gap:8px;align-items:end;}
#plugin-settings .lua-teleport-head,#plugin-settings .lua-teleport-row [data-tp-position],#plugin-settings .lua-teleport-row .lua-coordinates {display:contents;}
#plugin-settings .lua-teleport-head>label {grid-column:1;grid-row:1;}
#plugin-settings [data-tp-remove] {grid-column:5;grid-row:1;}
#plugin-settings .lua-teleport-row .lua-coordinates label {grid-row:1;}
#plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(1) {grid-column:2;}
#plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(2) {grid-column:3;}
#plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(3) {grid-column:4;}
#plugin-settings .lua-teleport-row .lua-position-player {grid-column:1/-1;margin-top:0;}
#plugin-settings .lua-teleport-row input {width:100%;min-width:0;}
@media(max-width:520px){#plugin-settings .lua-teleport-row {grid-template-columns:minmax(70px,1fr) repeat(3,minmax(35px,1fr)) 32px;gap:5px;}#plugin-settings .lua-teleport-row input {padding:5px;}}
#plugin-settings .lua-teleport-row .lua-coordinates label:has(>input[type=number]){display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;}
@media(max-width:520px){
 #plugin-settings .lua-teleport-row{grid-template-columns:repeat(3,minmax(0,1fr)) 32px;}
 #plugin-settings .lua-teleport-head>label{grid-column:1/4;grid-row:1;}
 #plugin-settings [data-tp-remove]{grid-column:4;grid-row:1;}
 #plugin-settings .lua-teleport-row .lua-coordinates label{grid-row:2;}
 #plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(1){grid-column:1;}
 #plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(2){grid-column:2;}
 #plugin-settings .lua-teleport-row .lua-coordinates label:nth-child(3){grid-column:3;}
 #plugin-settings .lua-teleport-row .lua-position-player{grid-row:3;}
 #plugin-settings .lua-teleport-row .lua-position-player>.kali-select{width:100%;}
}

/* 0.55: one compact TP row, common action menu and optional heading. */
#plugin-settings .lua-teleport-row{grid-template-columns:minmax(70px,1fr) repeat(3,minmax(40px,52px)) 62px 34px;gap:7px;}
#plugin-settings .lua-teleport-head>label.tp-heading{grid-column:5;grid-row:1;min-width:0;}
#plugin-settings [data-tp-menu]{grid-column:6;grid-row:1;}
#plugin-settings .tp-heading .select-trigger{height:34px;min-height:34px;padding:5px 8px;font-size:12px;}
#plugin-settings .tp-heading .kali-select{min-width:0;width:100%;}
@media(max-width:520px){
 #plugin-settings .lua-teleport-row{grid-template-columns:repeat(3,minmax(0,1fr)) 38px;}
 #plugin-settings .lua-teleport-head>label:not(.tp-heading){grid-column:1/3;}
 #plugin-settings .lua-teleport-head>label.tp-heading{grid-column:3;}
 #plugin-settings [data-tp-menu]{grid-column:4;}
 #plugin-settings .lua-teleport-row .lua-coordinates label{grid-row:2;}
}
#plugin-editor:has(.lua-teleports){width:min(620px,calc(100vw - 32px));}
#plugin-settings .lua-teleport-row{grid-template-columns:minmax(70px,1fr) repeat(3,minmax(52px,65px)) 62px 34px;}
#plugin-settings .lua-teleport-row input[type=number]{appearance:textfield;-moz-appearance:textfield;padding:6px;}
#plugin-settings .lua-teleport-row input[type=number]::-webkit-inner-spin-button,#plugin-settings .lua-teleport-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
@media(max-width:520px){#plugin-settings .lua-teleport-row{grid-template-columns:repeat(3,minmax(0,1fr)) 38px;}}

.configuration-layout{width:min(720px,100%);margin:0 auto;display:grid;gap:24px;}
.configuration-layout .panel{width:100%;box-sizing:border-box;}
.configuration-layout h2{margin:0 0 20px;}
.configuration-layout form.form{max-width:none;width:100%;}
.configuration-layout .form label{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;}
.configuration-layout .form input:not([type=color]),.configuration-layout .form select,.configuration-layout textarea{width:100%;box-sizing:border-box;}
.configuration-layout fieldset{margin:0 0 20px;}
.configuration-layout .chat-style .prefix-row{align-items:start;}
.configuration-layout .action-message-settings{display:block;}

.configuration-layout .message-extra summary{color:var(--accent,#5de1d0);cursor:pointer;margin:12px 0 18px;}

/* Shared DA: neutral frames, page focus without a viewport-sized ring. */
fieldset{border-color:#405158}legend,.chat-style legend,.role-grants legend{color:var(--text);font-size:13px}
#main:focus{outline:none}
textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.configuration-layout #server-settings{display:grid;gap:24px}
.configuration-layout .chat-style{margin:0}
.configuration-layout .actions button{margin-top:0}
.configuration-layout .chat-preview{border-radius:0}
button.player-menu-button,.form button.player-menu-button,#plugin-settings button.player-menu-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;padding:0;margin:0;line-height:1;font-size:0;align-self:center;justify-self:center;border-radius:0}
button.player-menu-button::before{content:'';width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:-4px 0 currentColor,4px 0 currentColor}
.lua-teleport-head .player-menu-button{align-self:end!important;margin-bottom:8px!important}
.lua-message-options{display:flex;align-items:center;justify-content:space-between;grid-column:1/-1;font-size:13px}

#plugin-settings .buff-row .player-menu-button{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;font-size:0;padding:0;line-height:1}
#plugin-settings .buff-row{grid-template-columns:minmax(0,1fr) 18px}

.configuration-layout fieldset{border-color:#405158;padding:14px 16px}

.configuration-layout .form .command-visibility{flex-direction:row;align-items:center;gap:12px;margin-top:20px}
.configuration-layout .variables-help{margin:0 0 20px}
#message-variables-dialog h3{color:var(--text);font-size:15px}

.configuration-layout .action-message-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.configuration-layout .action-message-heading p{margin:0;flex:1;font-size:13px}.configuration-layout .action-message-heading .variables-help{margin:0;flex:none;white-space:nowrap}@media(max-width:600px){.configuration-layout .action-message-heading{flex-wrap:wrap}.configuration-layout .action-message-heading .variables-help{margin-left:auto}}

/* Shared overlays: preserve page position and contain wheel/touch scrolling. */
html{scrollbar-gutter:stable}
html:has(dialog[open]),body:has(dialog[open]){overflow:hidden;overscroll-behavior:none}
dialog[open],.select-options{overscroll-behavior:contain}
.configuration-layout .command-visibility-row{display:flex;align-items:center;gap:8px;margin-top:20px}
.configuration-layout .form .command-visibility-row .command-visibility{margin:0;min-width:0}
.inline-help,.configuration-layout .form .inline-help{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;padding:0;margin:0;border:1px solid var(--muted);border-radius:50%;background:transparent;color:var(--muted);font-size:11px;line-height:1;flex:none}
.inline-help:hover,.inline-help:focus-visible,.configuration-layout .form .inline-help:hover,.configuration-layout .form .inline-help:focus-visible{color:var(--accent);border-color:var(--accent)}


.configuration-layout .command-visibility-row{gap:5px}

/* Shared tracking layout: map first, bounded lists, one synchronized clock. */
.tracking-period{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:0 0 20px}.tracking-period>div{flex:1;min-width:165px}.tracking-period label{display:block;margin:0 0 8px;font-size:12px}.tracking-period input,.tracking-period select{width:100%;height:40px}.tracking-period button{height:40px}.tracking-zone{font-size:11px;align-self:center}.tracking-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.tracking-map-panel{padding:16px;min-width:0}.tracking-map-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.tracking-map-tools button{padding:8px 10px;font-size:11px;min-height:32px}.tracking-zoom{display:flex;gap:6px;margin-left:auto}.tracking-canvas-wrap{position:relative;height:clamp(340px,53vh,660px);overflow:hidden;border:1px solid var(--line)}#track-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#track-canvas.is-selecting{cursor:crosshair}.tracking-map-kind{position:absolute;bottom:25px;left:10px;background:#0b1215dd;color:var(--muted);font-size:10px;padding:5px 8px;pointer-events:none}.tracking-timeline{padding-top:16px}.tracking-time-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.tracking-time-heading .actions{margin:0;gap:6px}.tracking-time-heading button{padding:7px 12px;font-size:12px}.tracking-time-heading output{font-size:13px;font-variant-numeric:tabular-nums}#track-time{width:100%;padding:0;margin:18px 0 10px;accent-color:var(--accent);height:16px;cursor:ew-resize}.tracking-time-bounds{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.tracking-sidebar{padding:16px;display:flex;flex-direction:column;min-height:0;max-height:calc(clamp(340px,53vh,660px) + 190px)}.tracking-side-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tracking-side-heading h2{font-size:14px;margin:0;color:var(--text)}.tracking-side-heading button{font-size:11px;padding:7px 9px}.tracking-sidebar input{font-size:12px;width:100%;height:36px}.tracking-player-list{overflow:auto;overscroll-behavior:contain;min-height:70px;max-height:160px;margin:12px 0 20px;flex-shrink:0}.tracking-player{display:flex;gap:9px;align-items:center;width:100%;text-align:left;padding:10px;background:transparent;border:1px solid transparent;color:var(--text);font-size:12px}.tracking-player.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.tracking-player-dot{width:6px;height:6px;flex:none;border-radius:50%}.tracking-events{overflow:auto;overscroll-behavior:contain;min-height:120px;flex:1}.tracking-event{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);padding:12px 0;font-size:12px}.tracking-event time,.tracking-event small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.tracking-sidebar p{font-size:12px}.tracking-inventory-section{border:1px solid #405158;padding:16px;margin-top:18px}.tracking-inventory-section legend{color:var(--text);font-size:13px;padding:0 8px}.tracking-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.tracking-item{position:relative;aspect-ratio:1;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;min-width:0}.tracking-item img{max-width:100%;max-height:100%;object-fit:contain}.tracking-item strong{position:absolute;bottom:3px;right:4px;font-size:11px;background:#0b1215dd;padding:1px 3px}.tracking-item small{position:absolute;top:3px;left:4px;font-size:9px;color:var(--accent)}.tracking-item-fallback{font-size:9px;overflow-wrap:anywhere;padding:5px}.tracking-item-fallback:before{content:'◇';display:block;text-align:center;font-size:20px}#track-status:not(:empty){border-left:2px solid var(--accent);padding:10px 14px;margin-bottom:16px;color:var(--muted);font-size:12px}#track-select[aria-pressed=true]{background:var(--accent);color:var(--bg)}
@media(max-width:1100px){.tracking-layout{grid-template-columns:minmax(0,1fr) 245px}.tracking-map-tools{gap:6px}}
@media(max-width:800px){.tracking-layout{grid-template-columns:1fr}.tracking-sidebar{max-height:480px}.tracking-period>div{min-width:130px}.tracking-time-heading{flex-wrap:wrap}.tracking-canvas-wrap{height:360px}}

main.tracking-page{padding-top:24px}main.tracking-page h1{font-size:30px;margin:0 0 20px}.tracking-period.form{max-width:none;width:100%;padding:0}.tracking-period>div:first-child{flex:1.3}.tracking-period .select-trigger{height:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracking-canvas-wrap{height:clamp(240px,calc(100dvh - 450px),660px)}.tracking-sidebar{max-height:calc(clamp(240px,calc(100dvh - 450px),660px) + 185px)}#track-live[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.tracking-period>div{min-width:205px}.tracking-period>div:first-child{min-width:230px}@media(max-width:500px){.tracking-period>div{flex-basis:100%;min-width:0}.tracking-period>div:first-child{min-width:0}}

/* Containers may receive focus after a modal update; reserve visible focus for controls. */
:where(main,dialog,section,aside,div,ul,ol):focus{outline:none}
canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tracking-period>div:first-child{flex:1;min-width:205px}
.tracking-sidebar{align-self:start;max-height:calc(clamp(240px,calc(100dvh - 450px),660px) + 185px)}
.tracking-player-list{max-height:none;flex:1;margin:12px 0 0}
.tracking-player-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:4px;border:1px solid transparent;padding-right:4px}
.tracking-player-row.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.tracking-player{min-width:0;border:0}.tracking-player>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tracking-time-heading{display:grid;grid-template-columns:1fr auto 1fr;gap:12px}.tracking-time-heading output{justify-self:end;font-size:11px}
.tracking-time-heading .tracking-transport{justify-content:center;flex-wrap:nowrap}.tracking-transport button,.tracking-zoom button{display:grid;place-items:center;width:32px;height:32px;padding:6px}
.tracking-transport svg,.tracking-zoom svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tracking-speed{width:82px}.tracking-speed select{height:32px;padding:4px;font-size:12px}.tracking-speed .select-trigger{min-height:32px;height:32px;padding:5px 8px;font-size:12px}.tracking-speed .select-trigger:after{margin-left:4px}
.tracking-item-fallback{font-size:10px;line-height:1.2;max-height:100%;overflow:hidden}
@media(max-width:600px){.tracking-time-heading{grid-template-columns:1fr auto}.tracking-time-heading output{grid-column:1/-1;justify-self:center}.tracking-period>div:first-child{min-width:0}.tracking-zoom{margin-left:0}.tracking-canvas-wrap{height:340px}}

/* 0.64: compact navigation and historical player tracking. */
.app-header{position:sticky;top:0;z-index:12;background:var(--bg);gap:20px}



.app-header .header-actions{display:flex;align-items:center;gap:12px;flex:none}.header-actions>.button,.header-actions>button:not(.icon-refresh){font-size:11px;padding:8px 10px}
.sidebar{padding:20px 16px 12px}.sidebar nav{margin-top:20px}.sidebar nav h2{margin:14px 10px 5px}.sidebar nav a{padding:7px 11px}.sidebar-foot{padding-top:14px}
.tracking-main{min-width:0}.tracking-period.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;margin-bottom:16px}
.tracking-period>div,.tracking-period>div:first-child{min-width:0}.tracking-period.form label{margin:0 0 8px}.tracking-period.form button{margin:0}
.tracking-period .tracking-date{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;text-align:left;font-size:12px;font-weight:400;color:var(--text);border-color:#405158;padding:8px 12px;white-space:nowrap}
.tracking-date::after{content:'▦';font-size:17px;color:var(--muted)}
.tracking-sidebar{margin-top:61px;max-height:calc(clamp(240px,calc(100dvh - 400px),660px) + 180px)}
.tracking-canvas-wrap{height:clamp(240px,calc(100dvh - 400px),660px)}
.tracking-time-heading{display:flex;justify-content:space-between;flex-wrap:wrap}.tracking-time-heading .tracking-transport{justify-content:flex-start;gap:6px}.tracking-speed{margin-left:8px}
.tracking-map-kind{max-width:calc(100% - 20px);font-size:11px;line-height:1.5}.tracking-map-kind:empty{display:none}
#track-names[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}
.tracking-item img,.tracking-item canvas{width:100%;height:100%;max-width:80px;max-height:80px;object-fit:contain}.tracking-item strong{font-size:17px;line-height:1;bottom:5px;right:3px;background:transparent;text-shadow:0 1px 3px #000,1px 0 2px #000;z-index:1}
.tracking-quality{position:absolute;bottom:0;left:0;height:4px;width:100%}.tracking-items{grid-template-columns:repeat(auto-fill,minmax(64px,80px));gap:6px}
#tracking-calendar{width:min(370px,94vw)}.tracking-calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.tracking-calendar-nav strong{font-size:14px;font-weight:500;text-transform:capitalize}.tracking-calendar-nav button{padding:5px 10px;font-size:20px}
.tracking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.tracking-calendar-grid>span{min-height:25px;font-size:11px}.tracking-calendar-grid button{padding:8px 0;font-size:12px;border-color:var(--line);color:var(--text)}.tracking-calendar-grid button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.tracking-calendar-time{display:flex;align-items:end;gap:12px;margin-top:20px}.tracking-calendar-time label{flex:1;font-size:12px;color:var(--muted)}.tracking-calendar-time .kali-select{margin-top:8px}.tracking-calendar-time>span{padding-bottom:12px}button:disabled{cursor:default}
@media(min-width:701px) and (max-height:740px){.sidebar{padding-top:14px}.sidebar .brand{font-size:22px}.sidebar .brand-mark{height:38px;width:36px;font-size:25px}.sidebar nav{margin-top:12px}.sidebar nav h2{margin-top:10px}.sidebar nav a{padding-top:5px;padding-bottom:5px}.sidebar-foot{padding-top:8px}}
@media(max-width:1000px){.app-header{padding:0 20px;gap:12px}.app-header .header-actions{gap:8px}.tracking-layout{grid-template-columns:minmax(0,1fr) 215px}.tracking-period.form{gap:8px}.tracking-period .tracking-date{padding:8px;font-size:11px}}
@media(max-width:800px){.tracking-layout{grid-template-columns:1fr}.tracking-sidebar{margin-top:0;max-height:360px}}
@media(max-width:700px){.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:2px}.sidebar nav a{white-space:normal;padding:7px}.app-header{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 16px}.header-actions{margin-left:auto}.tracking-period.form{grid-template-columns:1fr 1fr}.tracking-period #track-apply{grid-column:1/-1;justify-self:end}.tracking-time-heading output{margin-left:auto}}

.tracking-dialog-actions{display:flex;align-items:center;gap:12px;flex:none}.tracking-dialog-actions .icon-refresh{margin:0}
.tracking-main{display:contents}.tracking-period.form{grid-column:1;grid-row:1;margin-bottom:0}.tracking-map-panel{grid-column:1;grid-row:2}.tracking-sidebar{grid-column:2;grid-row:2;margin-top:0}.tracking-layout{row-gap:16px}.tracking-canvas-wrap{height:clamp(220px,calc(100dvh - 465px),660px)}.tracking-sidebar{max-height:calc(clamp(220px,calc(100dvh - 465px),660px) + 180px)}
.tracking-speed{flex:none;min-width:82px}.tracking-speed .kali-select{width:100%}.tracking-transport .tracking-speed button.select-trigger{display:flex;width:100%;padding:5px 8px}
.tracking-dialog-actions .icon-refresh{width:28px;height:28px;min-height:28px;padding:0;font-size:21px;line-height:1;display:grid;place-items:center;background:transparent;color:var(--accent);border:1px solid var(--line)}
@media(max-width:800px){.tracking-main{display:block;grid-column:1;grid-row:auto}.tracking-period.form{margin-bottom:16px}.tracking-sidebar{grid-column:1;grid-row:auto;max-height:360px}}
.tracking-transport .tracking-speed .select-options button{display:block;width:100%;height:auto;min-height:32px;text-align:left;padding:7px 10px;white-space:nowrap}
/* 0.65: synchronized events, full slot grids and consistent refresh controls. */
.tracking-dialog-actions .icon-refresh{border-color:var(--accent);width:28px;height:28px;min-height:28px}
.app-header .header-actions>.button,.app-header .header-actions>button{height:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;margin:0}
.app-header .header-actions>.icon-refresh{width:34px;min-width:34px;border-color:var(--accent)}
main.tracking-page{--tracking-pane-height:calc(100dvh - 285px);padding-bottom:16px}
.tracking-map-panel{height:var(--tracking-pane-height);min-height:340px;display:flex;flex-direction:column}.tracking-map-tools{flex:none}.tracking-canvas-wrap{height:auto;min-height:120px;flex:1}.tracking-timeline{flex:none}
.tracking-rail{grid-column:2;grid-row:2;display:grid;grid-template-rows:minmax(150px,.44fr) minmax(180px,.56fr);gap:12px;height:var(--tracking-pane-height);min-height:340px;min-width:0}
.tracking-rail .tracking-sidebar{grid-column:auto;grid-row:auto;margin:0;align-self:stretch;max-height:none;min-height:0;padding:14px}.tracking-rail .tracking-player-list{min-height:0;flex:1;flex-shrink:1;margin-top:8px}.tracking-rail .tracking-side-heading{margin-bottom:8px}.tracking-rail .tracking-player{padding:7px 8px}
.tracking-events-panel{display:flex;flex-direction:column;padding:14px;min-width:0;min-height:0;overflow:hidden}.tracking-events-panel h2 small{font-size:10px;color:var(--muted);margin-left:5px}.tracking-event-nav{display:flex;gap:6px}.tracking-event-nav button{display:grid;place-items:center;width:26px;height:26px;padding:4px}.tracking-event-nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tracking-event-list{position:relative;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}.tracking-event-row{display:flex;flex-direction:column;gap:5px;background:transparent;color:var(--text);border:0;border-left:2px solid transparent;border-bottom:1px solid var(--line);font-size:11px;text-align:left;width:100%;padding:9px 7px;font-weight:400}.tracking-event-row.is-current{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.tracking-event-row:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.tracking-event-row small{font-size:10px;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tracking-event-line{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.tracking-event-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracking-event-line time{flex:none;font-size:9px;color:var(--muted);font-variant-numeric:tabular-nums}.tracking-event-list p{font-size:12px;margin:8px 0}
.tracking-event-detail{flex:none;max-height:55%;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);padding-top:8px;font-size:12px}.tracking-event-detail[hidden]{display:none}.tracking-event-detail p{margin:7px 0;font-size:11px}.tracking-event-detail small{display:block;color:var(--muted);font-size:10px}.tracking-event-detail button{padding:4px 7px;font-size:11px;margin-top:6px}.tracking-event-detail .tracking-event-line button{margin:0}
#tracking-inventory{width:min(820px,94vw)}.tracking-items{grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}.tracking-item{min-width:0}.tracking-item.is-empty{background:color-mix(in srgb,var(--muted) 4%,var(--bg));border-color:var(--line)}.tracking-item img,.tracking-item canvas{max-width:100%;max-height:100%}.tracking-item.has-quality strong{left:30%;right:auto;bottom:2px;transform:translateX(-50%);font-size:21px;padding:0}.tracking-item strong{font-size:19px;bottom:3px;right:3px}.tracking-items[data-container=held]{grid-template-columns:repeat(10,minmax(0,1fr))}
@media(min-width:801px) and (max-height:650px){main.tracking-page{--tracking-pane-height:calc(100dvh - 260px);padding-top:14px}main.tracking-page h1{font-size:26px;margin-bottom:14px}.tracking-rail{grid-template-rows:minmax(125px,.43fr) minmax(150px,.57fr);min-height:290px}.tracking-map-panel{min-height:290px}.tracking-rail .tracking-sidebar,.tracking-events-panel{padding:10px}}
@media(max-width:800px){.tracking-rail{grid-column:1;grid-row:auto;height:420px;min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:1fr}.tracking-map-panel{height:450px}.tracking-rail .tracking-sidebar{grid-column:1;grid-row:1}.tracking-events-panel{grid-column:2;grid-row:1}}
@media(max-width:520px){.tracking-rail{height:380px;gap:8px}.tracking-rail .tracking-sidebar,.tracking-events-panel{padding:8px}.tracking-event-line{flex-wrap:wrap;gap:4px}.tracking-items{gap:2px}.tracking-item strong,.tracking-item.has-quality strong{font-size:14px}.tracking-inventory-section{padding:8px}.tracking-event-nav{gap:3px}}
.tracking-rail{grid-template-rows:minmax(150px,.49fr) minmax(180px,.51fr)}.tracking-event-row{padding-top:8px;padding-bottom:8px}
#tracking-inventory[open]{display:flex;flex-direction:column;overflow:hidden}#tracking-inventory>.directory-header{flex:none}#tracking-inventory>.modal-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:16px}#tracking-inventory .tracking-inventory-section{padding:12px;margin-top:12px}#tracking-inventory .tracking-inventory-section:first-child{margin-top:0}.tracking-items{width:min(100%,calc(var(--inventory-cell,64px)*10 + 36px));margin-inline:auto}
@media(min-width:801px) and (max-height:650px){.tracking-rail{grid-template-rows:minmax(125px,.49fr) minmax(150px,.51fr)}}
@media(max-width:800px){.tracking-rail{grid-template-rows:1fr}}
.tracking-event-detail p{margin:4px 0;line-height:1.3}.tracking-event-detail .tracking-event-line{gap:5px}.tracking-event-detail button{margin-top:4px}.tracking-event-detail .tracking-event-line button{width:22px;height:22px;padding:0;flex:none}
.tracking-item.has-quality strong{left:35%;transform:none}

/* 0.66: fixed calendar footprint and server inventory geometry. */
.app-header .header-actions{gap:6px}
.tracking-calendar-grid{grid-template-rows:25px repeat(6,34px)}
.tracking-calendar-time label{flex:0 0 78px}.tracking-calendar-time{justify-content:center}
#tracking-inventory .tracking-items{grid-template-columns:repeat(var(--inventory-columns,9),minmax(0,1fr));width:min(100%,calc(var(--inventory-cell,64px)*var(--inventory-columns,9) + (var(--inventory-columns,9) - 1)*4px));max-width:100%}
@keyframes tracked-player-highlight{0%,100%{background-color:transparent}13%,87%{background-color:color-mix(in srgb,var(--accent) 20%,transparent)}}
.player-focus-row>td{animation:tracked-player-highlight 5.4s both;animation-delay:var(--player-focus-delay,0ms)}
@media(prefers-reduced-motion:reduce){.player-focus-row>td{animation:none;background:color-mix(in srgb,var(--accent) 20%,transparent)}}

/* Création de zones: independent scroll areas, map and list stay visible. */
main.zones-page{padding-top:24px;padding-bottom:16px}main.zones-page h1{font-size:30px;margin:0 0 20px}.zones-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px;height:calc(100dvh - 215px);min-height:340px}.zones-map-panel,.zones-sidebar{min-width:0;min-height:0;margin:0;display:flex;flex-direction:column;padding:16px}.zones-canvas-wrap{position:relative;flex:1;min-height:0;border:1px solid var(--line);overflow:hidden}.zones-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.zones-canvas-wrap canvas.is-drawing{cursor:crosshair}.zone-position{position:absolute;left:10px;top:10px;pointer-events:none;background:#0b1215b0;color:#bacace;padding:4px 6px;font-size:10px}.zones-sidebar{gap:10px}.zones-sidebar .tracking-side-heading{margin:0}.zones-sidebar h2{font-size:14px}.zones-sidebar small{font-size:10px;color:var(--muted)}.zone-list{min-height:0;overflow:auto;overscroll-behavior:contain;flex:1}.zone-row{display:flex;align-items:center;gap:4px;border:1px solid transparent;margin-bottom:4px}.zone-row.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}.zone-select{display:flex;align-items:center;text-align:left;gap:9px;min-width:0;flex:1;padding:9px 6px;background:none;border:0;color:var(--text)}.zone-select strong{display:block;font-size:12px;overflow-wrap:anywhere}.zone-select small{display:block;margin-top:4px;line-height:1.4}.zone-color{width:7px;height:7px;flex:none}.zones-map-panel .tracking-map-tools{flex-wrap:wrap;gap:6px}.zones-map-panel .tracking-map-tools button{padding:8px;font-size:11px}.zones-map-panel .tracking-zoom{margin-left:auto}
@media(max-width:1100px){.zones-layout{grid-template-columns:minmax(0,1fr) 240px;gap:12px}.zones-map-panel,.zones-sidebar{padding:12px}}
@media(max-width:800px){.zones-layout{grid-template-columns:1fr;height:auto}.zones-map-panel{height:420px}.zones-sidebar{height:380px}}

/* Shared dialog chrome: fixed title/close and actions; content scrolls inside. */
dialog.fixed-dialog[open]{display:flex;flex-direction:column;overflow:hidden;max-height:90dvh}
dialog.fixed-dialog>.directory-header{flex:none;position:relative;z-index:2;background:var(--panel)}
dialog.fixed-dialog>.modal-body,dialog.fixed-dialog>.player-card-body{min-height:0;overflow:auto;overscroll-behavior:contain}
dialog.fixed-dialog .actions{position:sticky;bottom:0;z-index:2;background:var(--panel);padding:12px 0;margin-bottom:0;box-shadow:0 -8px 0 var(--panel)}
dialog.fixed-dialog .actions button{margin-top:0}
dialog.fixed-dialog input,dialog.fixed-dialog select,dialog.fixed-dialog textarea{max-width:100%;min-width:0;box-sizing:border-box}
dialog.fixed-dialog textarea{display:block;width:100%;resize:vertical;background:var(--bg);color:var(--text);border:1px solid #405158;padding:10px;font:inherit}
.tracking-zoom button,.zones-map-panel .tracking-zoom button{display:grid;place-items:center;width:32px;height:32px;min-width:32px;padding:0;line-height:1}
.tracking-zoom svg{display:block;width:18px;height:18px}
#zone-editor{width:min(740px,94vw)}#zone-editor>.modal-body{display:flex;flex-direction:column;padding:0;overflow:hidden}
#zone-editor .zone-form{display:flex;flex-direction:column;min-height:0;max-width:none;width:100%;overflow:hidden}
.zone-wizard-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 24px}
.zone-step-title{color:var(--accent);font-size:13px;font-weight:600;margin:0 0 8px}
.zone-wizard-body p{font-size:12px;margin:8px 0 14px}.zone-module-list{display:grid;gap:8px}
.zone-form label.zone-module{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);cursor:pointer;margin:0}
.zone-module:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.zone-module input,.zone-filters input[type=checkbox]{appearance:auto;width:16px;height:16px;flex:none;accent-color:var(--accent);margin:0;padding:0;border-radius:2px;box-shadow:none}.zone-module input::before,.zone-filters input[type=checkbox]::before{display:none}
.zone-module strong{display:block;font-size:13px;color:var(--text)}.zone-module small{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:var(--muted)}
.zone-form-head{display:grid;grid-template-columns:minmax(0,1fr) 126px;gap:16px;margin-bottom:16px}.zone-form-head input[type=color]{height:44px;padding:4px}
.zone-form label{margin:8px 0}.zone-form button{margin-top:0}.zone-form fieldset{border:1px solid var(--line);padding:14px;margin:14px 0;min-width:0}.zone-form legend{font-size:13px;padding:0 6px}.zone-form h3{font-size:13px;font-weight:500;margin:20px 0 12px}.zone-form small{color:var(--muted);font-size:11px}
.zone-corners,.zone-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.zone-corners fieldset{margin:0}.zone-corners input{padding:8px}.zone-form .weekdays{display:flex;flex-wrap:wrap;gap:12px}.zone-form .weekdays input{width:auto}.zone-form .weekdays label{display:flex;gap:5px}.zone-form select[multiple]{min-height:80px}.zone-form [data-add-buff]{margin-top:10px}
#zone-editor .zone-form-actions{position:static;flex:none;margin:0;padding:14px 24px;border-top:1px solid var(--line);box-shadow:none}.zone-form .form-error:not(:empty){flex:none;margin:0;padding:10px 24px}.zone-form [hidden]{display:none!important}
.zone-filters{position:relative;flex:none;font-size:12px}.zone-filters summary{padding:12px;border:1px solid var(--line);cursor:pointer;color:var(--accent);list-style:none}.zone-filters summary::after{content:""}.zone-filters>div{position:absolute;left:0;right:0;z-index:5;padding:12px;background:var(--panel);border:1px solid var(--accent);box-shadow:0 12px 22px #0006}.zone-filters label{display:flex;align-items:center;gap:8px;margin:10px 0;flex-wrap:wrap}.zone-filters small{width:100%;margin-left:24px}.zone-filters .kali-select{width:100%}
@media(max-width:520px){.zone-corners,.zone-pair{grid-template-columns:1fr}.zone-form-head{grid-template-columns:minmax(0,1fr) 94px}.zone-wizard-body{padding:14px}.zone-form-actions{gap:8px}}

dialog.fixed-dialog>.dialog-action-layout{display:flex;flex-direction:column;overflow:hidden;padding:0}
dialog.fixed-dialog .dialog-action-root{display:flex;flex-direction:column;min-height:0;overflow:hidden;max-width:none;margin:0;width:100%}
dialog.fixed-dialog .dialog-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 24px}
dialog.fixed-dialog .dialog-action-root>.actions{position:static;flex:none;padding:14px 24px;border-top:1px solid var(--line);margin:0;box-shadow:none}
dialog.fixed-dialog .dialog-action-root>.form-error:not(:empty){flex:none;padding:10px 24px;margin:0}

/* Shared visual rules: compact colors, centered chevrons, themed selection boxes. */
input[type=color],.color-heading input[type=color],.zone-form-head input[type=color]{width:36px!important;height:36px!important;min-width:36px;max-width:36px;padding:3px!important;border-radius:6px;cursor:pointer;display:block}
.zone-form-head{grid-template-columns:minmax(0,1fr) 138px;align-items:start}
label>input:not([type=checkbox]):not([type=radio]),label>textarea,label>.kali-select{margin-top:8px}
fieldset>legend{line-height:1.5;padding:0 8px}
input:focus-visible,textarea:focus-visible{outline-offset:0}
.select-trigger,.zone-filters summary{position:relative;padding-right:34px!important}
.select-trigger::after,.zone-filters summary::after{position:absolute;right:14px;top:50%;width:6px;height:6px;box-sizing:border-box;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-70%) rotate(45deg);margin:0;flex:none}
.zone-filters summary{display:flex;align-items:center;min-height:42px;box-sizing:border-box}
.zone-filters[open] summary{border-color:var(--accent);border-bottom-color:transparent}
.zone-filters>div{box-sizing:border-box;border-top:0;top:calc(100% - 1px)}
.zone-filters summary::-webkit-details-marker{display:none}
input[type=checkbox]:not(.kali-switch input){appearance:none;width:18px;height:18px;min-width:18px;flex:0 0 18px;position:relative;border:1px solid var(--accent);border-radius:3px;background:var(--bg);padding:0;margin:0;box-shadow:none;vertical-align:middle;cursor:pointer}
input[type=checkbox]:not(.kali-switch input)::before{display:none}
input[type=checkbox]:not(.kali-switch input):checked{background:var(--accent);border-color:var(--accent)}
input[type=checkbox]:not(.kali-switch input):checked::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border-right:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:rotate(45deg)}
input[type=checkbox]:not(.kali-switch input):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.zone-row{padding-right:9px;gap:8px}.zone-row .player-menu-button{margin:0;flex:none}
.tracking-map-kind:empty,.zone-position:empty{display:none}
@media(forced-colors:active){input[type=checkbox]:not(.kali-switch input){appearance:auto}input[type=checkbox]:not(.kali-switch input)::after{display:none}}

/* Zone choices: alphabetical reading order, two equal columns and shared hints. */
.zone-module-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.zone-form label.zone-module{height:78px;box-sizing:border-box;gap:10px}
.zone-module>span{display:block;width:100%;min-width:0}
.zone-module strong{font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zone-module small.zone-module-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:33px;cursor:help}
.zone-module-description:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.zone-filters>div{max-height:min(60dvh,520px);overflow:auto;overscroll-behavior:contain}
.zone-filters fieldset{border:0;border-top:1px solid var(--line);margin:16px 0 0;padding:8px 0 0}
.zone-filters legend{font-size:11px;padding:0 6px 0 0;color:var(--muted)}
@media(max-width:520px){.zone-module-list{grid-template-columns:1fr}}

input[type=checkbox]:not(.kali-switch input):indeterminate::after{content:"";position:absolute;left:3px;right:3px;top:7px;height:2px;background:var(--accent)}

.zone-buff-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:0 20px;grid-template-rows:auto auto auto 1fr auto}.zone-buff-column{min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 5}.zone-buff-column+ .zone-buff-column{border-left:1px solid var(--line);padding-left:20px}.zone-buff-column h3{margin:4px 0 12px;font-size:13px}.zone-buff-column h4{margin:4px 0 8px;font-size:12px;color:var(--muted)}
.zone-buff-column label.grant{display:flex;align-items:center;gap:10px;min-width:0;min-height:32px;margin:0 0 10px;font-size:11px;line-height:1.4}
.zone-form-head>label:has(input[type=color]){text-align:center;display:flex;align-items:center;flex-direction:column}
.buff-row .icon-close{flex:none;margin:0}
/* Reuse the existing day-selector component: seven evenly spaced, labeled buttons. */
.zone-form .weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%}
.zone-form .weekdays label{display:block;min-width:0;margin:0;text-align:center;position:relative}
.zone-form .weekdays input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;min-width:0;margin:0;padding:0}
.zone-form .weekdays span{padding:8px 0}
@media(max-width:600px){.zone-buff-columns{grid-template-columns:1fr;gap:20px}.zone-buff-column+ .zone-buff-column{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}}

/* Shared server context belongs with navigation, outside page actions. */
.sidebar-server{display:flex;flex-direction:column;gap:8px;margin:18px 0 4px;min-width:0}.sidebar-server label{font-size:11px;color:var(--muted)}.sidebar-server .kali-select{width:100%;min-width:0}.sidebar-server .select-trigger{height:36px;min-height:36px;font-size:12px;padding:6px 10px}.app-header{justify-content:flex-end}.zone-map-select{display:flex;justify-content:center;margin-bottom:18px}.zone-form .zone-map-select button{margin:0}.zone-buff-column .buff-row{min-width:0}

.zone-buff-column [data-enter-wrap],.zone-buff-column [data-buffs-enter],.zone-buff-column [data-buffs-exit]{display:grid;grid-template-rows:subgrid;grid-row:span 2;min-width:0}.zone-buff-column .buff-empty-roles:empty{display:none}.zone-buff-column .buff-rows{align-self:start}.zone-buff-column [data-add-buff]{align-self:end;justify-self:start;margin-top:12px}.zone-buff-column .buff-row input{height:34px;min-height:34px;max-height:34px;padding:6px 10px;font-size:12px}.zone-buff-column .buff-row{margin-bottom:8px;grid-template-columns:minmax(0,1fr) 28px}.zone-buff-column .buff-row .icon-close{width:28px;height:28px;min-height:28px;padding:0}
@media(max-width:600px){.zone-buff-columns{grid-template-rows:none;row-gap:20px}.zone-buff-column{grid-row:auto;grid-template-rows:auto auto auto 1fr auto}}

.zone-corner h4{margin:12px 0 6px;font-size:12px;color:var(--text)}.zone-corner .zone-pair{gap:10px}.zone-form .zone-corner label{margin:0 0 8px}.zone-corner input{min-width:0}

/* Paired controls share one label gap; never add a second margin to native inputs. */
.duration-row>label>input:not([type=checkbox]):not([type=radio]),.duration-row>label>select,.duration-row>label>.kali-select{margin-top:0;margin-bottom:0;min-width:0}
.confirmation-dialog .directory-header{justify-content:flex-start;text-align:left}.confirmation-dialog .actions{justify-content:flex-end;gap:12px}.confirmation-dialog .dialog-scroll>p:first-child{margin-top:0}.confirmation-dialog .dialog-scroll>p:last-child{margin-bottom:0}.zone-selection-status{text-align:center;color:var(--muted)}

/* Search inputs use the same continuous, themed frame as shared selects. */
.kali-autocomplete{display:block;position:relative;min-width:0;width:100%;margin:0}.kali-autocomplete>input:not([type=checkbox]):not([type=radio]){width:100%;min-width:0;margin:0;padding-right:34px}.autocomplete-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:30px;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--muted);border-radius:0}.autocomplete-toggle:after{content:'';display:block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;position:absolute;left:50%;top:50%;transform:translate(-50%,-70%) rotate(45deg)}.kali-autocomplete.is-open>input{border-color:var(--accent)}.autocomplete-options{position:fixed;inset:auto;margin:0;padding:5px 0;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);color:var(--text);border:1px solid var(--accent);box-shadow:0 10px 25px #0005;font:12px Segoe UI,Arial,sans-serif}.autocomplete-options::backdrop{display:none}.autocomplete-option{padding:10px 12px;cursor:pointer;overflow-wrap:anywhere;line-height:1.4}.autocomplete-option:hover,.autocomplete-option[aria-selected=true]{background:color-mix(in srgb,var(--accent) 14%,var(--bg));color:var(--accent)}.autocomplete-option small{display:block;color:var(--muted);margin-top:3px;font-size:10px}.autocomplete-empty{padding:12px;color:var(--muted)}
.zone-location-preview{height:190px;border:1px solid var(--line);background:var(--bg);overflow:hidden}.zone-location-preview canvas{display:block;width:100%;height:100%;pointer-events:none}.zone-form .zone-map-select{margin-bottom:14px}.shop-form .dialog-scroll{display:grid;gap:20px}.shop-form .kali-autocomplete{margin:0}.shop-offer-preview-note{font-size:12px}

.kali-autocomplete .autocomplete-toggle{margin:0!important;height:auto;max-height:none}.kali-autocomplete.is-open:not(.opens-up)>input{border-bottom-color:transparent}.kali-autocomplete.is-open.opens-up>input{border-top-color:transparent}
.kali-autocomplete.is-open>input:focus,.kali-autocomplete.is-open>input:focus-visible{outline:0;box-shadow:none}
.kali-autocomplete.is-open>input{border-width:2px;border-color:var(--accent)}
.autocomplete-options{border-width:2px}
.kali-autocomplete:not(.is-open)>input:focus-visible{outline-offset:-2px}
.kali-autocomplete:not(.opens-up) .autocomplete-options{border-top:0}
.kali-autocomplete.opens-up .autocomplete-options{border-bottom:0}
.limited-row-scroll{overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.table-wrap.limited-row-scroll>table>thead>tr>th{position:sticky;top:0;z-index:1;background:var(--panel)}
#role-editor.kali-dialog{width:min(600px,calc(100vw - 32px))}
#role-kind-picker.kali-dialog{width:min(380px,calc(100vw - 32px))}.role-kind-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#role-form .role-appearance-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:start;gap:20px}
#role-form .role-appearance-row>label{display:flex;flex-direction:column;gap:8px;margin:0}
#role-form .role-appearance-row input{height:46px;margin:0}
#role-form .role-color-choice{align-items:center;text-align:center}
#role-form .role-color-choice input[type=color]{width:38px;height:38px;padding:5px;align-self:center;margin-top:4px}
.role-definitions col:first-child{width:55%}.role-definitions col:nth-child(2){width:25%}.role-definitions col:last-child{width:20%}
@media(max-width:450px){#role-form .role-appearance-row{grid-template-columns:minmax(0,1fr) 115px;gap:12px}.role-definitions .role-name{padding-right:12px}}

/* The signed-out screen has its own centred layout. */
body.login-page{display:block}.login-page .sidebar{position:static;width:auto;height:auto;border:0;padding:24px 32px}.login-page .sidebar-server,.login-page #navigation,.login-page .sidebar-foot,.login-page .app-header{display:none}.login-page .workspace{margin:0;min-height:calc(100dvh - 100px);display:flex;flex-direction:column}.login-page #main{flex:1}.login-page footer{margin-top:auto}

.docs-lua-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.docs-examples{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:20px 0 32px}.docs-examples .button{display:flex;align-items:center;justify-content:center;min-height:52px;text-align:center}.doc-article{min-width:0}.doc-article pre{overflow:auto}
.tracking-items .tracking-item{padding:0;position:relative}.tracking-item .shop-slot{width:100%;height:100%;border:0}.tracking-item .shop-slot strong{font-size:12px;left:auto;right:2px;bottom:1px}.tracking-item .shop-slot.has-quality strong{font-size:18px;left:0;right:0;bottom:0;text-align:center}.tracking-items{align-content:start}.tracking-items:has([data-slot]){justify-content:center}

.tracking-item .shop-slot.has-quality strong{transform:none}

/* Shared settings footer: activation stays at the panel’s bottom right. */
.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:20px;flex-wrap:wrap}.form .settings-footer button{margin:0}.form .settings-footer label.shop-check{margin:0 0 0 auto;display:flex;align-items:center;gap:10px}.player-map-settings .form,.votes-settings .form{max-width:none;width:100%}

#role-members .member-controls>label>.kali-select{margin:0;min-width:0}
#kali-context-menu button[aria-disabled=true],#kali-context-menu button[aria-disabled=true]:hover,#kali-context-menu button[aria-disabled=true]:focus-visible{color:var(--muted);opacity:.45;cursor:not-allowed;background:transparent}

.permission-checkboxes{display:grid;gap:16px}.permission-checkboxes label{display:flex;align-items:center;gap:12px;font-size:13px}.permission-checkboxes input{appearance:auto;width:16px;height:16px;margin:0;accent-color:var(--accent)}.permission-matrix [data-permission-options]{position:absolute;left:calc(50% + 18px);top:50%;transform:translateY(-50%);width:22px;height:22px;min-height:0;padding:0;margin:0!important}

.tracking-event-information{display:grid;grid-template-columns:auto 1fr;gap:10px 24px}.tracking-event-information dt{color:var(--muted)}.tracking-event-information dd{margin:0;overflow-wrap:anywhere}

#player-history-picker .role-kind-choices button{display:flex;align-items:center;justify-content:center;gap:8px}
#player-history-picker .role-kind-choices svg{width:16px;height:16px;flex:none}
.tracking-event-row small{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}
.tracking-event-detail .tracking-dialog-actions{gap:8px}
.tracking-event-detail .tracking-dialog-actions button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;padding:0;margin:0;line-height:1;font-size:17px}
.select-options[popover]{position:fixed;inset:auto;box-sizing:border-box;margin:0;border:2px solid var(--accent);padding:5px;max-height:240px}
.select-options[popover]:not(:popover-open){display:none}

#track-detail-options{overflow:hidden;text-indent:0!important}#track-detail-options .tracking-options-icon{display:block;width:16px;height:6px;flex:none;fill:currentColor;stroke:none;margin:0;transform:none}

.player-admin-items{display:flex;flex-wrap:wrap;gap:6px;min-height:68px;padding:8px 0}.player-admin-items .shop-item-cell{padding:0;width:64px;height:64px}.player-admin-pages{align-items:center;margin:16px 0}.player-admin-buff-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}#player-admin-inventory fieldset{margin-bottom:16px}#player-admin-inventory .modal-body{max-height:75vh;overflow:auto}

#track-detail-options::before{content:none}

#tracking-inventory [role=status]:empty{display:none}.inventory-admin-footer{margin-top:20px;justify-content:space-between}.tracking-items button.tracking-item{color:var(--text);border-radius:0}.buff-active-list{display:grid;gap:0;max-height:35vh;overflow:auto;border:1px solid var(--line)}.buff-active-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}.buff-active-row:last-child{border-bottom:0}.buff-active-row span{overflow-wrap:anywhere}.buff-active-list>p{padding:12px 16px}.buff-add-form{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}

.buff-management>h3{margin:20px 24px 14px}.buff-management>.buff-active-list{margin-inline:24px}.buff-management .buff-add-form{padding:20px 24px;margin-top:20px}.buff-management .buff-add-form h3{margin-top:0}

.buff-management>h3{margin:0 0 14px}.buff-management>.buff-active-list{margin-inline:0}.buff-management .buff-add-form{padding:20px 0 0}.buff-management .buff-add-form .actions{margin-bottom:0}

/* Compact server picker and native-theme active buff chips. */
.sidebar-server{margin-top:18px}.sidebar-server .select-trigger{min-height:34px;padding:7px 11px}.sidebar-server .select-options{padding:3px}
.buff-active-list{display:flex;flex-wrap:wrap;gap:8px;border:0!important}
.buff-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 9px;border:1px solid var(--line);border-radius:14px;background:var(--bg);font-size:12px}
.buff-chip>span{overflow-wrap:anywhere}.buff-chip button{padding:0;border:0;background:transparent;color:var(--danger,#ef8888);min-height:0;font-size:16px;line-height:1}

#inventory-item-details{width:min(740px,calc(100vw - 32px));max-height:min(440px,90vh)}
#inventory-item-details .modal-body{padding:16px;overflow:auto}.item-detail-layout{display:grid;grid-template-columns:140px 1fr;gap:16px;min-height:240px}.item-detail-icon .shop-slot{width:128px;height:128px}.item-detail-icon img{width:100%;height:100%;object-fit:contain}.item-detail-tabs{display:flex;gap:8px;margin-bottom:12px}.item-detail-tabs button{padding:8px 12px}.item-stat-list{margin:0}.item-stat-list>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.item-stat-list dd{margin:0;text-align:right}.item-detail-content{min-width:0}.item-detail-content p{overflow-wrap:anywhere}
@media(max-width:520px){.item-detail-layout{grid-template-columns:75px 1fr;gap:10px}.item-detail-icon .shop-slot{width:72px;height:72px}}

.sidebar-server .select-options button{padding:6px 8px;min-height:28px;font-size:12px}.sidebar-server .kali-select.is-open .select-trigger{padding:6px 10px;height:34px;min-height:34px}

.votes-settings{max-width:860px;margin-inline:auto}.vote-tiers{display:grid;gap:14px}.vote-tier-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border,#263a3f);flex-wrap:wrap}.vote-tier-row>span:first-child{font-weight:600}.vote-tier-row>.muted{flex:1}.vote-tier-row>.icon-close{flex:none}.votes-settings [hidden]{display:none!important}
.vote-tiers h3,.vote-tiers p{margin:0}.vote-tiers h3:not(:first-child){margin-top:16px}.vote-tiers>button{justify-self:start}.votes-settings>.form{padding:0}.vote-tiers{margin-top:18px}.vote-tier-row{padding:8px 0}

.configuration-layout textarea{display:block;background:var(--bg);color:var(--text);border:1px solid #405158;padding:12px;font:inherit;resize:vertical}
dialog.fixed-dialog .dialog-action-root>[role=status]:not(:empty){padding:12px 24px;margin:0}

.configuration-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.configuration-tabs [aria-pressed=true],.action-message-list [aria-pressed=true]{background:var(--accent);color:var(--bg)}.configuration-layout [hidden]{display:none!important}.configuration-layout #server-settings{display:contents}.action-message-list{display:grid;gap:8px}.action-message-list button{text-align:left}

.configuration-tabs{justify-content:center;max-width:1100px;margin:0 auto 20px}.shop-slot .shop-slot-bar.is-durability{background:rgba(0,0,0,.72);overflow:hidden}.shop-slot-bar.is-durability i{display:block;height:100%;background:var(--durability-color,var(--accent))}.shop-slot-bar.is-durability b{position:absolute;right:0;top:0;height:100%;background:#b12626}.shop-slot-number{z-index:2}

/* Shared help buttons and restart details keep their text aligned with the controls. */
.inline-help,.configuration-layout .form .inline-help{box-sizing:border-box;min-height:18px;max-height:18px;max-width:18px;letter-spacing:0;text-align:center;font-family:Arial,sans-serif;font-weight:600;transform:none;vertical-align:middle;color:var(--accent);border-color:var(--accent)}
.form .role-map-advantage{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.restart-help-row{display:flex;align-items:center;gap:8px;margin:16px 0}
.configuration-layout .form .restart-help-row>label{margin:0;flex-direction:row;align-items:center}
.restart-message-field{margin:16px 0}
.restart-message-field .restart-help-row{margin:0 0 10px}
.restart-message-field>input{width:100%}
.settings-footer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.inline-help .help-mark{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.inline-help .help-mark circle{fill:currentColor;stroke:none}
.restart-history{padding-left:20px}.restart-history li+li{margin-top:20px}.restart-history p{margin:8px 0 0;overflow-wrap:anywhere}

.item-removal-pending{opacity:.5;outline:1px dashed var(--accent);outline-offset:-2px}

.reset-zone-row{padding:12px 0;border-bottom:1px solid var(--border)}.reset-zone-row small{display:block;margin:8px 0}.reset-zone-row .actions{gap:6px;flex-wrap:wrap}

/* Selection uses the standard active theme, shared by zone tools. */
.tracking-map-tools button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.zone-kind-choice{display:flex;align-items:center;gap:10px;margin:12px 0}.zone-kind-choice>button:first-child{flex:1;text-align:left}

.region-mini-map canvas{display:block;width:100%;height:230px}.region-cell-list{max-height:220px;overflow:auto}.region-cell-list>div{padding:8px 0;border-bottom:1px solid var(--border)}

/* Region workflow uses the shared controls and theme. */
#zone-kind{max-width:380px}.zone-kind-buttons{padding-right:28px}.zone-kind-choice{position:relative;display:block;margin:0 0 12px}.zone-kind-choice>button:first-child{width:100%;text-align:center}.zone-kind-choice>.inline-help{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%)}
.region-cell-row{display:flex;align-items:center;gap:12px;padding:5px 0}.region-cell-row>.zone-select{flex:1}.region-cell-row.is-selected{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.region-cell-list{scroll-behavior:smooth}.region-cell-list .icon-close{flex:none}.region-option-list{max-height:220px;overflow:auto}.region-option-list>label{display:flex;align-items:center;gap:10px;padding:7px 0}.region-toolbar{justify-content:flex-end}.restart-help-row{flex-wrap:wrap}.restart-help-row>.shop-check{white-space:nowrap}
.region-cell-row>button,.zone-kind-buttons button{margin-top:0}.region-mini-map canvas{touch-action:none}

.restart-options{display:grid;grid-template-columns:1.35fr 1fr 1fr;align-items:center;gap:16px;margin:18px 0}
.configuration-layout .form .restart-options>.shop-check,.restart-options>.restart-help-row{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:center;white-space:nowrap}
@media(max-width:700px){.restart-options{grid-template-columns:1fr;gap:14px}}

/* Groupes : lignes compactes et commandes communes alignées. */
.region-detail-heading{display:flex;align-items:flex-end;gap:18px;margin-bottom:14px}
.region-detail-heading>label{flex:1;min-width:0;margin:0!important}
.region-detail-heading .region-toolbar{margin:0;flex:none;height:42px;align-items:center}
#region-group-detail [data-search]{width:calc(100% - 24px);margin:14px 12px 10px;box-sizing:border-box;height:34px;padding:7px 10px;font-size:12px}
.region-cell-list{padding:0 12px}
.region-cell-list>.region-cell-row{padding:2px 8px;min-height:32px;gap:14px}
.region-detail-heading .region-toolbar button{margin-top:0}
.region-cell-row .zone-select{padding:4px 8px;min-height:28px}
.region-cell-row .icon-close{width:28px;height:28px;min-height:28px;flex:none}
.region-inline-options{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 22px;padding:8px 0}
.form .region-inline-options label{margin:0;white-space:nowrap}
#region-group-settings legend .inline-help{margin:0 0 0 8px;vertical-align:middle}
.integration-settings .integration-connection{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem;color:var(--muted)}
.integration-credentials{margin-bottom:1rem}.integration-credentials summary{cursor:pointer;color:var(--accent);padding:.7rem 0}
.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.integration-options{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.integration-preview-tools{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.discord-preview{background:#24262b;border:1px solid var(--border);padding:1.2rem;color:#e6e6ea}
.discord-preview>strong{display:block;margin-bottom:.7rem}.discord-embed{border-left:4px solid var(--accent);padding:1rem;background:#1d1f24;border-radius:0 4px 4px 0}
.discord-embed h3{margin:0 0 .7rem}.discord-message{line-height:1.65;overflow-wrap:anywhere}.discord-preview small{display:block;margin-top:.7rem;overflow-wrap:anywhere}
.backup-history details{padding:.7rem 0;border-bottom:1px solid var(--border)}.backup-history pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:15rem;overflow:auto}
@media(max-width:720px){.integration-grid{grid-template-columns:1fr}.integration-options{align-items:flex-start;flex-direction:column}}

.discord-thumbnail{width:72px;height:72px;object-fit:contain;float:right;margin:0 0 .5rem 1rem}.discord-large-image{display:block;max-width:100%;max-height:240px;object-fit:contain;margin-top:1rem}.discord-embed::after{content:"";display:block;clear:both}
/* Configuration and integration controls share the existing panel system. */
.configuration-tabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:8px;max-width:100%;padding-bottom:8px}.configuration-tabs>button{flex:1 0 auto;white-space:nowrap;padding:11px 12px}
.inline-help,.configuration-layout .form .inline-help{margin-inline-start:8px;vertical-align:middle}
.integration-settings .form{max-width:none}.integration-grid>label{min-width:0}.integration-connect-actions{margin-bottom:20px}
.integration-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:16px;align-items:start}
.form label.integration-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;margin:0}.integration-options .integration-toggle>span:first-child{min-height:2.4em;display:flex;align-items:center;justify-content:center}
.integration-footer.settings-footer{justify-content:flex-start;gap:12px;flex-wrap:nowrap}.integration-footer.settings-footer>.integration-toggle{margin-left:auto;flex:none}.form .integration-footer .integration-avatar-button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;margin:0;cursor:pointer}.integration-avatar-button:has(input:disabled){opacity:.5;cursor:default}.integration-footer button{white-space:nowrap}
.discord-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px}.discord-title-row input[type=color]{width:52px;height:42px;padding:3px}.discord-title-row>[hidden]{display:none}.discord-status-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 18px}.form .discord-status-options label.toggle-line{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0}.text-action{border:0;background:none;color:var(--accent);padding:0;text-decoration:underline;cursor:pointer}
.discord-preview{display:flex;gap:14px;background:#313338;border:1px solid #41434a;border-radius:8px;padding:20px;color:#dbdee1;font-family:Arial,'Segoe UI','Segoe UI Emoji','Segoe UI Symbol',sans-serif}.discord-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#5865f2;display:flex;align-items:center;justify-content:center;overflow:hidden;color:white;font-weight:bold}.discord-avatar img{width:100%;height:100%;object-fit:cover}.discord-preview-content{min-width:0;flex:1}.discord-author{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0 0 6px}.discord-author strong{color:#f2f3f5;font-size:14px}.discord-author time{font-size:11px;color:#949ba4}.discord-app-badge{font-size:9px;font-weight:bold;background:#5865f2;color:white;border-radius:3px;padding:1px 4px}.discord-embed{background:#2b2d31;border-left:4px solid var(--accent);border-radius:4px;padding:12px 14px;margin:0}.discord-embed h3{color:#f2f3f5;font-size:14px;margin:0 0 10px}.discord-message{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.discord-plain{padding:0;background:transparent}.discord-preview img.emoji{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.2em;object-fit:contain;margin:0 .04em}.integration-settings textarea,.integration-settings input{font-family:inherit,'Segoe UI Emoji','Segoe UI Symbol'}
.game-calendar-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(120px,1fr);gap:16px;align-items:end}.form .game-calendar-row .toggle-line{display:flex;flex-direction:row;align-items:center;gap:10px;margin-bottom:12px}.game-calendar-row label{min-width:0}
@media(max-width:800px){.integration-footer.settings-footer{flex-wrap:wrap}.game-calendar-row{grid-template-columns:1fr}.integration-grid{grid-template-columns:1fr}.integration-options{grid-template-columns:repeat(3,minmax(0,1fr));font-size:11px}.configuration-tabs>button{flex:0 0 auto}.discord-preview{padding:14px;gap:10px}}
.configuration-tabs{gap:6px}.configuration-tabs>button{padding-inline:8px;font-size:12px}
.integration-settings textarea,.integration-settings input{font-family:Arial,'Segoe UI Emoji','Segoe UI Symbol',sans-serif}
.integration-settings .weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%;margin-bottom:16px}.integration-settings .weekdays label{display:block;margin:0;min-width:0;text-align:center}.integration-settings .weekdays span{padding:9px 0}.integration-settings .weekdays input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;min-width:0;margin:0;padding:0}

.manual-reset-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.manual-reset-row .checkbox-row{margin:0}.manual-zone-list{max-height:360px;overflow:auto}.manual-zone-list table{width:100%}#manual-restart-form>.checkbox-row{margin:12px 0}#manual-restart-form .modal-actions{margin-top:24px}

#server-restart-dialog{width:360px;max-width:calc(100vw - 32px)}#manual-restart-form{gap:14px}#manual-restart-form>.checkbox-row{margin:0}#manual-restart-form .manual-reset-row{min-height:18px}#manual-restart-form .modal-actions{margin-top:10px}#manual-restart-form .form-error:empty{display:none}.backup-repeat>[hidden]{display:none!important}

#manual-restart-form{gap:0}#manual-restart-form .dialog-scroll{display:grid;gap:12px;padding:20px 24px}#manual-restart-form .checkbox-row{margin:0}#manual-restart-form .modal-actions{margin-top:0}

.chat-style .command-visibility-row{margin:22px 0 4px}
.integration-grid>label>input:not([type=checkbox]):not([type=color]),.integration-grid>label>.kali-select .select-trigger{height:46px;min-height:46px;box-sizing:border-box}

.backup-help{display:flex;justify-content:flex-end}.backup-result-log{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}

/* Keep large equipped bags inside six visible rows, including narrow screens. */
#tracking-inventory .tracking-inventory-section{container-type:inline-size;min-width:0}
#tracking-inventory .tracking-items[data-container=bag]{--slot-size:min(var(--inventory-cell,64px),calc((100cqw - (var(--inventory-columns,9) - 1)*4px)/var(--inventory-columns,9)));grid-auto-rows:var(--slot-size);max-height:calc(var(--slot-size)*6 + 20px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}


[data-section="Réglages en jeu"] [data-calendar]{margin-top:24px}
.form .integration-footer.settings-footer>.integration-toggle{flex-direction:row;align-self:center;gap:10px;min-height:40px}
.integration-footer>.integration-toggle>input{order:-1}

.legal-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:center}.legal-links a{font-size:11px;letter-spacing:0;color:var(--muted);text-decoration:none}.legal-links a:hover{text-decoration:underline;color:var(--accent)}footer{gap:18px;flex-wrap:wrap}.legal-page{display:block}.legal-page>header,.legal-page>footer{padding:24px}.legal-main{max-width:920px;margin:32px auto;padding:0 24px}.legal-main .panel{margin:20px 0}.legal-main p{line-height:1.7;overflow-wrap:anywhere}.legal-notice{border-left:2px solid var(--accent);padding:12px 18px}
.settings-footer[data-game-footer]{justify-content:flex-start;gap:12px}
.integration-footer>.integration-toggle>.kali-switch{order:-1}

/* Public entry and verified purchase result share the existing panel and buttons. */
.purchase-thanks{width:min(460px,100%);margin:32px auto;padding:40px;text-align:center}
.purchase-thanks h1{font-size:30px;margin:14px 0 28px}
.purchase-thanks>img{border-radius:50%;object-fit:contain}


.purchase-thanks .button{display:inline-block;margin-top:18px}
.themed-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.legal-page>header{display:flex;align-items:center;justify-content:space-between;gap:20px}
@media(max-width:520px){.purchase-thanks{padding:28px 20px}.legal-page>header{flex-wrap:wrap}}

.player-presence.is-connecting{color:#e6a34a}.player-presence.is-connecting::before{background:#e6a34a}

footer{flex-wrap:wrap;gap:16px}footer .footer-brand{display:block;margin-left:auto;white-space:nowrap}

.discord-role-controls{display:flex;align-items:center;gap:12px}.discord-role-controls>.kali-select,.discord-role-controls>select{flex:1;min-width:0}.form .discord-role-controls button{margin-top:0;flex:none}.discord-role-controls .select-trigger{min-height:42px}

.discord-link-code{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid var(--line);color:var(--accent);font:13px/1.7 Consolas,monospace}

.operation-steps{list-style:none;padding:0;margin:0;display:grid;gap:14px}.operation-steps li{display:flex;justify-content:space-between;gap:24px}.operation-steps strong{font-size:12px;color:var(--muted)}.operation-steps [data-status="running"] strong{color:var(--accent)}.operation-steps [data-status="failed"] strong{color:#ff8989}

.restart-diagnostic dd{overflow-wrap:anywhere;margin:5px 0 16px}

.auth-screen,.shop-public main.auth-screen{display:grid;place-items:center;min-height:calc(100dvh - 210px);padding:24px;width:100%}
.auth-card{width:min(540px,100%);text-align:center;margin:0;padding:48px 32px;box-sizing:border-box}
.auth-card .actions{justify-content:center}
.auth-card h1{font-size:32px;margin:0 0 28px}.auth-card .button{display:inline-flex;justify-content:center;margin:0}
.auth-card .remember-session{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px;margin:22px 0 0;font-size:12px;line-height:18px}.auth-card .remember-session input{margin:0;flex:none}
.operation-detail{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}
@media(max-width:520px){.auth-card{padding:32px 20px}.auth-card .actions{justify-content:center}
.auth-card h1{font-size:27px}}

/* Shared public alignment and opaque role headers. */
footer:has(.legal-links){display:grid;grid-template-columns:1fr auto 1fr;align-items:center}footer .legal-links{grid-column:2}footer .footer-brand{grid-column:3;justify-self:end;margin-left:0}
.role-list-panel{padding-top:0}.role-list-panel table{border-collapse:separate;border-spacing:0}.role-list-panel table thead th{position:sticky;top:0;z-index:2;background:var(--panel)}
@media(max-width:650px){footer:has(.legal-links){grid-template-columns:1fr}footer .legal-links{grid-column:1}footer .footer-brand{grid-column:1}}

.auth-card [role=status]:empty{display:none}
