:root{--font-family:system-ui,sans-serif;--content-width:1120px;--color-accent:#2563eb;--color-accent-strong:#1d4ed8;--color-background:#f5f7fb;--color-surface:#fff;--color-text:#182230;--color-muted:#5d6b7d;--color-border:#dce3ec;--radius:12px;--shadow:0 8px 26px rgba(30,50,80,.08);--space:1rem;--header-height:72px;font:16px/1.55 var(--font-family);color:var(--color-text);background:var(--color-background)}
/* Keep the header aligned while plugin loading temporarily removes page overflow. */
html{scrollbar-gutter:stable}
.app-nav-item{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:2.55rem;margin:0;padding:.62rem .85rem;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.65 + 2px);background:transparent;color:var(--color-accent-strong);font:inherit;font-weight:650;line-height:1.2;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer}.app-nav-item[hidden]{display:none}.app-nav-item:hover{background:color-mix(in srgb,var(--color-accent) 9%,transparent);color:var(--color-accent-strong)}.app-nav-item[aria-current="page"]{background:var(--color-accent);color:var(--color-on-accent,var(--color-surface));border-color:var(--color-accent)}.app-nav-item:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:2px}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--color-background);color:var(--color-text)}a{color:var(--color-accent-strong)}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:2px}
.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem max(1.25rem,calc((100% - var(--content-width))/2));background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-brand{font-weight:800;color:inherit;text-decoration:none}.app-navigation{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.app-main{width:min(100%,var(--content-width));margin:0 auto;padding:calc(var(--space)*2.5) max(1rem,calc(var(--space)*1.5));flex:1}.app-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:calc(var(--space)*1.7);margin-bottom:calc(var(--space)*1.4);box-shadow:var(--shadow);min-width:0}.app-form{display:grid;gap:calc(var(--space)*.9);max-width:620px}.app-form.wide-form{max-width:none}.app-form label,.form-label{display:grid;gap:.35rem;font-weight:650}.app-form input,.app-form textarea,.app-form select,.layout-preview input,.layout-preview textarea,.layout-preview select{width:100%;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.65 + 2px);padding:.65rem .8rem;background:var(--color-surface);color:var(--color-text)}.app-form textarea{min-height:180px}.wide-form textarea{min-height:280px;resize:vertical}.app-button,.app-navigation button,.layout-preview button{cursor:pointer;background:var(--color-accent);color:var(--color-on-accent,#fff);border:1px solid transparent;border-radius:calc(var(--radius)*.65 + 2px);padding:.62rem .85rem;font-weight:650}.app-button.secondary,.app-navigation button,.layout-preview .secondary{background:transparent;color:var(--color-accent-strong);border-color:var(--color-border)}button:disabled{opacity:.58;cursor:wait}.app-table{width:100%;border-collapse:collapse}.app-table td,.app-table th{text-align:left;padding:.65rem;border-bottom:1px solid var(--color-border)}.app-table th{color:var(--color-muted)}.app-footer{width:min(100%,var(--content-width));margin:1.5rem auto 0;padding:1.25rem max(1rem,calc(var(--space)*1.5));display:flex;gap:1.25rem;flex-wrap:wrap;border-top:1px solid var(--color-border);color:var(--color-muted)}.app-footer a{color:inherit}
.status-message{pointer-events:none;display:block;position:sticky;bottom:15px;background:var(--color-text);color:var(--color-surface);padding:.75rem 1rem;border-radius:var(--radius);opacity:0;transition:.2s}.status-message.show{opacity:1}dl{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem}dt{font-weight:700}.legal-content{white-space:pre-wrap;overflow-wrap:anywhere}.admin-tabs{overflow-x:auto;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;flex-wrap:nowrap}.admin-tab{white-space:nowrap;border-radius:var(--radius) var(--radius) 0 0}.admin-tab.active{background:var(--color-accent);color:var(--color-on-accent,#fff)}.admin-panel{min-width:0}.text-block-layout,.layout-admin-grid{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.5fr);gap:1.25rem;align-items:start}.block-list,.layout-list{display:grid;gap:.45rem;max-height:560px;overflow:auto;margin:.75rem 0}.block-option,.layout-option{display:grid;text-align:left;background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border)}.block-option.selected,.layout-option.selected{outline:2px solid var(--color-accent)}.block-option small,.layout-option small{color:var(--color-muted)}.badge{display:inline-block;font-size:.72rem;background:color-mix(in srgb,var(--color-accent) 15%,var(--color-surface));color:var(--color-accent-strong);padding:.12rem .4rem;border-radius:999px}.options,.actions{display:flex;gap:.75rem;flex-wrap:wrap}.available{background:var(--color-background);padding:.85rem;border-radius:var(--radius)}.available #keys{display:flex;flex-wrap:wrap;gap:.45rem;margin:.6rem 0}.placeholder{background:var(--color-surface);color:var(--color-accent-strong);border:1px solid var(--color-border)}
.layout-preview{font-family:var(--font-family);background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.layout-preview .app-header{padding:.75rem 1rem;min-height:auto}.layout-preview .app-main{padding:1rem;width:100%}.layout-preview .app-card{padding:1rem}.layout-preview .app-footer{width:100%;padding:1rem}.layout-preview .app-table{font-size:.85rem}.layout-preview .preview-form{display:grid;gap:.6rem}.layout-preview-actions{display:flex;gap:.5rem;flex-wrap:wrap}.layout-package-warning{color:#8a3b00}
html[data-header="compact"] body.app-shell>.app-header,.layout-preview[data-header="compact"]>.app-header{--header-height:52px;padding-top:.4rem;padding-bottom:.4rem}html[data-header="wide"] body.app-shell>.app-header,.layout-preview[data-header="wide"]>.app-header{--header-height:92px;padding-top:1.25rem;padding-bottom:1.25rem}html[data-header="hero"] body.app-shell>.app-header,.layout-preview[data-header="hero"]>.app-header{--header-height:150px;align-items:flex-end;padding-top:2.25rem;padding-bottom:2.25rem}html[data-content="wide"] body.app-shell>.app-main,.layout-preview[data-content="wide"]>.app-main{--content-width:1440px}
html[data-navigation="sidebar-left"] body.app-shell,html[data-navigation="sidebar-right"] body.app-shell,.layout-preview[data-navigation="sidebar-left"],.layout-preview[data-navigation="sidebar-right"]{--sidebar-width:230px;display:grid;grid-template-rows:1fr auto;min-height:100vh}html[data-navigation="sidebar-left"] body.app-shell,.layout-preview[data-navigation="sidebar-left"]{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}html[data-navigation="sidebar-right"] body.app-shell,.layout-preview[data-navigation="sidebar-right"]{grid-template-columns:minmax(0,1fr) var(--sidebar-width)}html[data-navigation^="sidebar"] body.app-shell>.app-header,.layout-preview[data-navigation^="sidebar"]>.app-header{grid-row:1/3;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:1.25rem;min-width:0}html[data-navigation^="sidebar"] body.app-shell>.app-header .app-navigation,.layout-preview[data-navigation^="sidebar"]>.app-header .app-navigation{flex-direction:column;align-items:stretch;margin-top:1.5rem}html[data-navigation="sidebar-left"] body.app-shell>.app-header,.layout-preview[data-navigation="sidebar-left"]>.app-header{grid-column:1}html[data-navigation="sidebar-left"] body.app-shell>.app-main,html[data-navigation="sidebar-left"] body.app-shell>.app-footer,.layout-preview[data-navigation="sidebar-left"]>.app-main,.layout-preview[data-navigation="sidebar-left"]>.app-footer{grid-column:2}html[data-navigation="sidebar-right"] body.app-shell>.app-header,.layout-preview[data-navigation="sidebar-right"]>.app-header{grid-column:2}html[data-navigation="sidebar-right"] body.app-shell>.app-main,html[data-navigation="sidebar-right"] body.app-shell>.app-footer,.layout-preview[data-navigation="sidebar-right"]>.app-main,.layout-preview[data-navigation="sidebar-right"]>.app-footer{grid-column:1}.layout-preview[data-navigation^="sidebar"]{--sidebar-width:125px;min-height:520px}.layout-preview[data-navigation^="sidebar"]>.app-header{grid-row:1/3}.layout-preview[data-navigation^="sidebar"]>.app-main{margin:0}.layout-preview[data-navigation^="sidebar"]>.app-footer{margin:0}
html[data-admin-navigation^="sidebar"] #admin{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1rem}html[data-admin-navigation^="sidebar"] #admin>h2{grid-column:1/-1}html[data-admin-navigation^="sidebar"] #admin>.admin-tabs{grid-column:1;grid-row:2;flex-direction:column;align-items:stretch;border:0;margin:0;overflow:visible}html[data-admin-navigation^="sidebar"] #admin>.admin-panel{grid-column:2;grid-row:2}html[data-admin-navigation="sidebar-right"] #admin{grid-template-columns:minmax(0,1fr) 190px}html[data-admin-navigation="sidebar-right"] #admin>.admin-tabs{grid-column:2}html[data-admin-navigation="sidebar-right"] #admin>.admin-panel{grid-column:1}.preview-admin{margin-top:1rem}.layout-preview[data-admin-navigation^="sidebar"] .preview-admin{display:grid;grid-template-columns:105px minmax(0,1fr);gap:.65rem}.layout-preview[data-admin-navigation^="sidebar"] .preview-admin>.admin-tabs{flex-direction:column;align-items:stretch;margin:0;border:0}.layout-preview[data-admin-navigation="sidebar-right"] .preview-admin{grid-template-columns:minmax(0,1fr) 105px}.layout-preview[data-admin-navigation="sidebar-right"] .preview-admin>.admin-tabs{grid-column:2}.layout-preview[data-admin-navigation="sidebar-right"] .preview-admin-content{grid-column:1;grid-row:1}
@media(max-width:760px){html[data-navigation^="sidebar"] body.app-shell{display:flex;min-height:100vh}html[data-navigation^="sidebar"] body.app-shell>.app-header{display:flex;min-height:auto;flex-direction:column;align-items:flex-start;padding:1rem}html[data-navigation^="sidebar"] body.app-shell>.app-header .app-navigation{width:100%;margin-top:.5rem;flex-direction:row;align-items:center;overflow-x:auto}html[data-navigation^="sidebar"] body.app-shell>.app-main,html[data-navigation^="sidebar"] body.app-shell>.app-footer{width:100%}html[data-admin-navigation^="sidebar"] #admin{display:block}html[data-admin-navigation^="sidebar"] #admin>.admin-tabs{display:flex;flex-direction:row;overflow-x:auto;margin-bottom:1.5rem}html[data-header="hero"] body.app-shell>.app-header{min-height:auto;align-items:flex-start;padding:1rem}.app-header{align-items:flex-start;flex-direction:column;padding:1rem}.app-main{padding:1.25rem 1rem}.app-table{display:block;overflow:auto}.text-block-layout,.layout-admin-grid{grid-template-columns:1fr}.options{display:grid}.block-list,.layout-list{max-height:320px}dl{grid-template-columns:1fr}.app-card{padding:1rem}}
#blockForm,#mailForm,#legalForm{display:grid;gap:calc(var(--space)*.9);max-width:620px}#legalForm{max-width:none}#blockForm label,#mailForm label,#legalForm label{display:grid;gap:.35rem;font-weight:650}#blockForm input,#blockForm textarea,#mailForm input,#mailForm select,#legalForm textarea{width:100%;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.65 + 2px);padding:.65rem .8rem;background:var(--color-surface);color:var(--color-text)}
.user-actions{display:flex;align-items:center;gap:.45rem}.app-icon-button{display:inline-grid;place-items:center;width:2.55rem;height:2.55rem;padding:.4rem;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.65 + 2px);background:var(--color-surface);color:var(--color-text);cursor:pointer}.app-icon-button[hidden]{display:none}.app-icon-button svg{display:block;fill:currentColor}.app-danger-action{background:#b42318;color:#fff;border-color:#b42318}.app-icon-button.app-danger-action{background:color-mix(in srgb,#b42318 9%,var(--color-surface));color:#b42318}.app-icon-button:disabled{color:var(--color-muted);background:var(--color-background);border-color:var(--color-border);cursor:not-allowed}.app-dialog{width:min(92vw,460px);padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow)}.app-dialog::backdrop{background:rgba(10,20,35,.58)}.dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap;margin-top:1.25rem}
.user-table-wrap{max-width:100%;overflow-x:auto}.user-create-toolbar,.user-list-toolbar,.page-size-options,.pagination{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.user-create-toolbar{justify-content:flex-end;margin-bottom:.75rem}.user-list-toolbar{justify-content:space-between;margin-bottom:.75rem}.page-size-options button,.pagination button{border:1px solid var(--color-border);border-radius:calc(var(--radius)*.55);padding:.4rem .65rem;background:var(--color-surface);color:var(--color-accent-strong);cursor:pointer}.page-size-options button.active,.pagination button[aria-current="page"]{background:var(--color-accent);color:var(--color-on-accent,#fff);border-color:var(--color-accent)}.pagination{justify-content:center;margin-top:1rem}.pagination-ellipsis{padding:.4rem .2rem;color:var(--color-muted)}
.app-dialog{max-height:calc(100vh - 2rem);overflow:auto}
.layout-package-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.layout-format{margin-top:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}.layout-format summary{cursor:pointer}.layout-format pre{overflow:auto;padding:1rem;background:var(--color-background);border-radius:var(--radius);white-space:pre}.layout-format code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.app-configuration-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;width:100%;min-width:0}.configuration-card{width:100%;min-width:0;margin:0;padding:1rem;box-shadow:none}.app-config-grid{display:grid;gap:.65rem;min-width:0}.app-config-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.app-config-item{min-width:0;padding:.75rem;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.7);overflow-wrap:anywhere}.app-config-item>p,.app-config-item>dd{margin:.25rem 0 0;color:var(--color-muted)}.app-config-item>dt{margin:0}.integration-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;min-width:0}
.dev-mode-form{max-width:46rem}.dev-mode-active{margin-top:1rem;box-shadow:none;border:1px solid var(--color-border);overflow-wrap:anywhere}.dev-mode-active .actions{margin-top:1rem}.app-select{width:100%;max-width:100%}
.feature-category{margin-top:1.25rem;min-width:0}.feature-category h5{margin:0 0 .5rem}.feature-table-wrap{max-width:100%;overflow-x:auto}.feature-table{width:100%;min-width:42rem}.feature-table th,.feature-table td{vertical-align:top}.feature-table th:first-child{width:34%}.feature-table th small,.feature-status small{display:block;margin-top:.2rem;color:var(--color-muted);font-weight:400}.feature-current-mode{background:color-mix(in srgb,var(--color-primary) 9%,transparent)}.feature-status{display:block}.feature-status strong{white-space:normal}.feature-status--unavailable,.feature-status--optional{color:var(--color-muted)}
@media(max-width:760px){.app-config-grid--2{grid-template-columns:minmax(0,1fr)}}
.module-license-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-tabs{overflow:visible;flex-wrap:wrap;align-items:stretch}.admin-tab{white-space:normal;min-height:2.55rem}html[data-admin-navigation^="sidebar"] #admin>.admin-tabs{overflow:visible}.module-toggle{appearance:none;width:100%;padding:.35rem 0;border:0;background:transparent;color:var(--color-text);font:inherit;font-weight:700;text-align:left;cursor:pointer}.module-license-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.module-license-actions .module-diagnostic-action{width:2.125rem;height:2.125rem;min-height:2.125rem;padding:0;flex:0 0 2.125rem}.module-diagnostic-action svg{display:block;width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:760px){html[data-admin-navigation^="sidebar"] #admin>.admin-tabs{flex-wrap:wrap;overflow:visible}}
.plugin-navigation-items{display:contents}

/* Shared sortable table headers. aria-sort is owned by the table controller. */
.app-table th > button.app-table-sort {
 display:inline-flex;align-items:center;justify-content:flex-start;gap:.3em;
 width:100%;max-width:100%;min-width:0;min-height:30px;height:auto;
 margin:0;padding:0;border:0;
 border-radius:0;box-shadow:none;appearance:none;background:transparent;color:inherit;
 font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;
 text-align:left;white-space:nowrap;overflow:visible;cursor:pointer;
}
.app-table th > button.app-table-sort:hover {
 background:color-mix(in srgb,var(--color-accent) 25%,transparent);
}
.app-table th > button.app-table-sort:focus-visible {
 outline:2px solid var(--color-accent);outline-offset:2px;
}
.app-table th[aria-sort="ascending"],.app-table th[aria-sort="descending"] {
 background:color-mix(in srgb,var(--color-accent) 15%,var(--color-surface));
}
.app-table .app-table-sort > span:not(.app-sort-indicator) {
 min-width:0;white-space:nowrap;overflow-wrap:normal;
}
.app-table .app-sort-indicator {
 flex:0 0 auto;margin:0;color:currentColor;font-size:.85em;font-weight:700;line-height:1;
}
.app-table .app-sort-indicator:empty {display:none}

/* Intrinsic role labels remain readable inside the existing scrolling table. */
#users .user-role-select{width:max-content;min-width:calc(10ch + 2.8rem);max-width:none;field-sizing:content;padding-inline-end:2rem}
.module-role-access label:has(input:disabled){color:var(--color-muted);cursor:default}

/* Reserve the header while the complete authorized navigation is collected. */
.app-header nav[data-navigation-pending]{visibility:hidden}

/* Shared navigation levels. Primary retains the existing app-navigation design. */
.app-tabs--secondary,.app-tabs--tertiary{display:flex;flex-wrap:wrap;gap:1rem;border-bottom:1px solid var(--color-border);margin-bottom:1rem}
.app-tabs--secondary>.app-tab,.app-tabs--tertiary>.app-tab{font:inherit;color:inherit;background:transparent;border:0;border-radius:0;border-bottom:3px solid transparent;padding:.65rem .5rem;cursor:pointer;max-width:100%;overflow-wrap:anywhere;text-align:start}
.app-tabs--secondary>.app-tab[aria-selected=true],.app-tabs--tertiary>.app-tab[aria-selected=true]{border-bottom-color:var(--color-accent);font-weight:700}
.app-tabs--secondary>.app-tab:hover,.app-tabs--tertiary>.app-tab:hover{text-decoration:underline;text-underline-offset:.2em}
.app-tabs>.app-tab:focus-visible,.permission-list-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.app-tabs--tertiary{gap:.5rem}.app-tabs--tertiary>.app-tab{padding:.4rem .5rem;border-bottom-width:2px;font-size:.925em}
/* Permissions master/detail navigation. */
.permission-layout,.app-master-detail{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:1rem}
.permission-sidebar{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;align-self:start}
.permission-sidebar h3{margin:0 0 .75rem}.permission-sidebar input{width:100%;box-sizing:border-box}
.permission-list{list-style:none;margin:.5rem 0 0;padding:0;max-height:28rem;overflow:auto}
.permission-list-item{display:block;width:100%;box-sizing:border-box;border:0;border-inline-start:3px solid transparent;background:transparent;color:inherit;font:inherit;text-align:start;padding:.65rem .5rem;cursor:pointer;overflow-wrap:anywhere}
.permission-list-item:hover{background:color-mix(in srgb,var(--color-accent) 7%,transparent)}
.permission-list-item[aria-pressed=true]{border-inline-start-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,transparent);font-weight:700}
.permission-list-actions{border-top:1px solid var(--color-border);margin-top:.75rem;padding-top:.75rem}
.permission-detail,.app-detail{min-width:0}.permission-role-key{overflow-wrap:anywhere}
.permission-check{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;margin:.4rem 0}.permission-check input{width:auto!important;flex:0 0 auto}
.permission-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem}.permission-matrix fieldset{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem}.permission-matrix legend{max-width:100%;overflow-wrap:anywhere}
@media(max-width:700px){.permission-layout,.app-master-detail{grid-template-columns:1fr}.permission-list{max-height:14rem}}

/* Core master/detail areas share the existing secondary navigation. */
.app-master-detail>.app-tabs--secondary{flex-direction:column;align-self:start;border-bottom:0;border-inline-end:1px solid var(--color-border)}
.app-master-detail>.app-tabs--secondary>.app-tab{border-bottom:0;border-inline-start:3px solid transparent}
.app-master-detail>.app-tabs--secondary>.app-tab[aria-selected=true]{border-inline-start-color:var(--color-accent)}
.app-header .app-icon-button{flex-shrink:0;text-decoration:none}
.app-icon-button[aria-current=page]{outline:2px solid var(--color-accent);outline-offset:2px}

/* Copy controls share the Voucher button geometry across plugin form styles. */
button.app-icon-button:is(.app-copy-button,.app-action-icon-button){box-sizing:border-box;display:inline-grid;place-items:center;flex:0 0 auto;width:2.55rem;height:2.55rem;min-width:2.55rem;min-height:2.55rem;margin:0;padding:.4rem;border:1px solid var(--color-border);border-radius:calc(var(--radius)*.65 + 2px);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}
button.app-icon-button:is(.app-copy-button,.app-action-icon-button)[hidden]{display:none}
button.app-icon-button:is(.app-copy-button,.app-action-icon-button):hover:not(:disabled){border-color:var(--color-border);background:color-mix(in srgb,var(--color-accent) 9%,var(--color-surface));color:var(--color-text)}
button.app-icon-button:is(.app-copy-button,.app-action-icon-button):focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:2px}
button.app-icon-button:is(.app-copy-button,.app-action-icon-button):disabled{opacity:.58;color:var(--color-muted);background:var(--color-background);border-color:var(--color-border);cursor:not-allowed}
button.app-icon-button:is(.app-copy-button,.app-action-icon-button)>svg{display:block;flex:none;width:20px;height:20px;fill:none}
@media(max-width:700px){.app-master-detail>.app-tabs--secondary{flex-direction:row;border-inline-end:0;border-bottom:1px solid var(--color-border)}}

.app-account-actions{display:inline-flex;gap:.5rem;margin-inline-start:auto}
.app-account-actions[hidden]{display:none}
@media(max-width:760px){.app-header>.app-navigation{align-self:stretch}}

/* Structured, text-only records in the central dialog; shared by plugins. */
.app-dialog--records{width:min(94vw,48rem)}
.app-dialog-records{max-height:60vh;overflow:auto;overflow-wrap:anywhere;min-width:0}
.app-dialog-records dl{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.25rem .75rem}
.app-dialog-records dd{margin:0;min-width:0}
.app-dialog-records .app-table{table-layout:fixed}
.app-dialog-records .app-table th,.app-dialog-records .app-table td{overflow-wrap:anywhere;text-align:start;font-size:.9rem;padding:.5rem}
.app-dialog-records [data-dialog-state=pass]{font-weight:700;color:var(--color-success,var(--color-accent-strong))}
.app-dialog-records [data-dialog-state=fail]{font-weight:700;color:var(--color-danger,var(--color-text))}
.app-dialog-records summary{cursor:pointer}

/* Administration is a workspace: use its available viewport/grid column width. */
body.app-shell>.app-main:has(>#admin:not([hidden])){width:100%;max-width:none;min-width:0}
#admin .app-master-detail{grid-template-columns:minmax(10rem,13rem) minmax(0,1fr)}
#admin :is(.text-block-layout,.layout-admin-grid)>*{min-width:0}
#admin :is(#blockForm,#mailForm,#legalForm){min-width:0;grid-template-columns:minmax(0,1fr)}
#admin .available{min-width:0;overflow-wrap:anywhere}
#admin .placeholder{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:1100px){
 html[data-admin-navigation^="sidebar"] #admin:not([hidden]){display:block}
 html[data-admin-navigation^="sidebar"] #admin>.admin-tabs{flex-direction:row;flex-wrap:wrap;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border)}
 #admin .app-master-detail{grid-template-columns:minmax(0,1fr)}
 #admin .app-master-detail>.app-tabs--secondary{flex-direction:row;flex-wrap:wrap;border-inline-end:0;border-bottom:1px solid var(--color-border)}
 #admin .app-master-detail>.app-tabs--secondary>.app-tab{border-inline-start:0;border-bottom:3px solid transparent}
 #admin .app-master-detail>.app-tabs--secondary>.app-tab[aria-selected=true]{border-bottom-color:var(--color-accent)}
 #admin .text-block-layout,#admin .layout-admin-grid{grid-template-columns:minmax(0,1fr)}
}

.app-feedback[hidden]{display:none!important}
.app-feedback--success{color:var(--color-accent-strong)}
.app-feedback--error{color:var(--color-danger,#b42318)}

/* Public pages can opt into the same app content without global navigation. */
body.app-shell[data-public-page-layout=content]{display:flex!important;flex-direction:column}
body.app-shell[data-public-page-layout=content]>.app-header{display:none!important}
body.app-shell[data-public-page-layout=content]>.app-main>section[hidden]{display:none!important}

/* The X stays within the overlay's scrollport; body content and selectors stay intact. */
.app-dialog>.app-dialog-closebar{position:sticky;top:0;z-index:20;display:flex;justify-content:flex-end;min-height:2.55rem;margin-bottom:-2.55rem;margin-inline-end:-.5rem;pointer-events:none}
.app-dialog-closebar>.app-dialog-close{pointer-events:auto;flex:none;font-size:1.5rem;line-height:1;box-shadow:0 1px 5px #0003}
.app-dialog-closebar>.app-dialog-close:hover{background:color-mix(in srgb,var(--color-accent) 16%,var(--color-surface))}
.app-dialog>.app-dialog-closebar~h3,.app-dialog>.app-dialog-closebar+form>h3{padding-inline-end:3rem}

/* Shared master/detail navigation for system configuration and licensing. */
.system-layout{column-gap:.75rem;min-width:0}
/* Author display:grid must not override the inactive tab panels' hidden state. */
[data-system-section][hidden]{display:none!important}
#systemNavigation>.app-tab{display:flex;align-items:center;gap:.5rem;text-align:start}
#systemNavigation svg{width:1.15rem;height:1.15rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.system-license-admin-link{display:inline-flex;align-items:center;gap:.4rem;max-width:100%;color:var(--color-accent-strong);text-underline-offset:.2em}.system-license-admin-link>svg{flex:none}
.app-form .system-license-server{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;gap:.75rem;margin:0}
.system-license-server input{min-width:0;width:100%;box-sizing:border-box}
.system-license-server>.system-license-ping{display:inline-flex;align-items:center;gap:.4rem;flex:none}
.system-license-console-output{position:relative;margin-top:.25rem;min-width:0}
.system-license-console-output[hidden]{display:none!important}
.system-license-console-close{position:absolute;top:.35rem;right:.35rem;z-index:1;width:1.8rem;height:1.8rem;padding:.25rem;border-color:transparent;background:#07150b;color:#8af5a9}
.system-license-console-close:hover{background:#163b23;border-color:#8af5a9}
.system-license-console-close:focus-visible{outline:2px solid #8af5a9;outline-offset:1px}
.system-license-console{margin:0;padding:.85rem 2.6rem .85rem 1rem;max-height:15rem;overflow:auto;border:1px solid #285a36;border-radius:.4rem;background:#07150b;color:#8af5a9;font: .78rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.system-license-console[hidden]{display:none!important}
@media(max-width:600px){.app-form .system-license-server{grid-template-columns:minmax(0,1fr) auto}.system-license-server>label{grid-column:1/-1}}

/* Layout core colors and a host-owned, responsive color picker. */
.layout-colors{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:1rem}
.layout-color-field{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.layout-color-swatch,.layout-color-option{background:var(--swatch);border:1px solid var(--color-border);border-radius:.35rem;box-shadow:0 0 0 1px color-mix(in srgb,var(--color-text) 15%,transparent);cursor:pointer;transition:box-shadow .15s,transform .15s}
.layout-color-swatch{width:2.75rem;height:2rem;padding:0}
.layout-color-swatch:hover,.layout-color-option:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 55%,transparent);transform:scale(1.06)}
.app-dialog:has(.layout-color-picker){width:min(94vw,34rem)}
.layout-color-picker{min-width:0}
.layout-color-spectrum{position:relative;min-height:11rem;aspect-ratio:2/1;border-radius:.5rem;touch-action:none;cursor:crosshair;outline-offset:3px;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,hsl(var(--picker-hue) 100% 50%))}
.layout-color-spectrum:focus-visible{outline:2px solid var(--color-accent)}
.layout-color-cursor{position:absolute;display:block;width:1rem;height:1rem;border:2px solid #fff;box-shadow:0 0 0 1px #111;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.layout-color-picker input.layout-color-hue{padding:0;border:0;border-radius:1rem;height:1.5rem;accent-color:var(--color-accent);background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.layout-color-palette{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.5rem}
.layout-color-option{height:2rem;padding:0}
.layout-color-option span{display:none;color:white;font-weight:800;text-shadow:0 1px 2px #000,1px 0 2px #000,-1px 0 2px #000}
.layout-color-option[aria-pressed=true]{outline:2px solid var(--color-accent);outline-offset:2px}
.layout-color-option[aria-pressed=true] span{display:inline}
.layout-color-entry{display:grid;grid-template-columns:3.5rem minmax(0,1fr);align-items:center;gap:1rem}
.layout-color-sample{height:3.5rem;border:1px solid var(--color-border);border-radius:.4rem}
.layout-color-error{font-weight:400;color:var(--color-danger,#b42318)}
.layout-colors{column-gap:.85rem}
.layout-color-field{gap:.4rem;font-size:.9rem}
.layout-color-swatch{width:2.25rem;height:1.9rem}
.layout-color-picker input.layout-color-hue::-webkit-slider-runnable-track{height:.75rem;border-radius:1rem;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.layout-color-picker input.layout-color-hue::-moz-range-track{height:.75rem;border-radius:1rem;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}

.layout-colors-auto{display:flex;align-items:center;gap:.5rem;flex-basis:100%;font-size:.95rem;cursor:pointer}
.layout-colors-auto input{width:auto;accent-color:var(--color-accent)}
.layout-color-swatch:disabled{opacity:1;cursor:default}
.layout-color-swatch:disabled:hover{transform:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--color-text) 15%,transparent)}

/* System > Monitor */
.system-monitor h4{font-size:1rem;margin:0 0 .7rem}.monitor-module-levels{overflow-x:auto}.monitor-level-row{display:grid;grid-template-columns:minmax(12rem,1fr) repeat(5,7.5rem);align-items:center;gap:1rem;min-width:54.5rem;padding:.7rem 0;border-bottom:1px solid var(--color-border)}.monitor-level-row strong{overflow-wrap:anywhere}.monitor-level-row label{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;cursor:pointer}.monitor-level-row input{margin:0;accent-color:var(--color-accent)}.monitor-draft-note,.monitor-timezone{font-size:.875rem;color:var(--color-muted)}.monitor-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:end;margin-top:1.4rem}.monitor-log-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}.monitor-log-heading span{font-size:.875rem;color:var(--color-muted)}.monitor-log-window{max-height:28rem;min-height:14rem;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.monitor-log-window table{margin:0;min-width:740px}.monitor-log-window thead th{position:sticky;top:0;background:var(--color-surface);z-index:1}.monitor-log-window td{vertical-align:top}.monitor-log-window td:nth-child(5){min-width:240px;overflow-wrap:anywhere}.monitor-empty{text-align:center!important;color:var(--color-muted);padding:3rem 1rem!important}
.monitor-filters label{min-width:0}.monitor-filters input,.monitor-filters select{box-sizing:border-box;min-width:0}

.monitor-level-settings>summary{cursor:pointer}.monitor-level-settings>summary h4{display:inline;margin:0}.monitor-level-settings[open]>summary{margin-bottom:.7rem}

.monitor-level-settings,.monitor-log-block{border:1px solid var(--color-border);border-radius:.5rem;padding:1rem;margin-bottom:1rem}.monitor-level-actions{display:flex;gap:.75rem;margin-top:1rem}.monitor-level-settings:not([open]){padding-bottom:1rem}

.monitor-log-block{min-width:0}.monitor-log-block .monitor-filters{margin-top:0}.monitor-log-heading{flex-wrap:wrap}.monitor-log-heading h4{margin:0}.monitor-log-actions{display:flex;gap:.5rem;align-items:center;margin-inline-start:auto}.monitor-log-heading [data-monitor-count]{flex-basis:100%;text-align:end}.monitor-log-window tr[data-detail]{cursor:pointer}.monitor-log-window tr[data-detail]:hover>td,.monitor-log-window tr[data-detail]:focus-visible>td{background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface))}.monitor-log-window tr[data-detail]:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.monitor-inline-detail{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;max-width:42rem;min-width:16rem}.monitor-log-actions [aria-pressed=true]{outline:2px solid var(--color-accent);outline-offset:2px}.monitor-copy-cell{width:3rem}.monitor-copy-cell button{position:relative}

body.app-games-active .app-main{max-width:none;width:calc(100% - 2rem)}body.app-games-active #pluginView{padding:0;border:0;box-shadow:none;background:transparent}.games-layout{display:grid;grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);gap:1.5rem;width:100%;min-width:0}.games-content{min-width:0;width:100%}.games-content>[data-plugin-instance]{width:100%;min-width:0}.games-navigation{flex-direction:column;align-self:start}.games-navigation .app-tab{text-align:start}.games-content [data-maniac-mansion]{max-width:none;width:100%}@media(max-width:700px){.games-layout{grid-template-columns:minmax(0,1fr)}.games-navigation{flex-direction:row;flex-wrap:wrap}}
