h1:focus {
    outline: none;
}

/* ── Site header — flex chrome. Opt-in: pages include <Header /> in their markup.
   Columns are <HeaderContent> children; each controls its own sizing, alignment, and padding. ── */
.ma-host-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 48px;
    display: flex;
    align-items: center;
    padding: 0 1.25rem;
    gap: 1rem;
    background: rgba(10, 12, 10, 0.88);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(60, 70, 60, 0.4);
    z-index: 200;
}

/* Column defaults: shrink-to-content, vertically centered */
.ma-host-header-col {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

/* Fill modifier: consume remaining horizontal space */
.ma-host-header-col--fill { flex: 1; }

/* Logo link style — apply this class to the anchor inside a logo HeaderContent */
.ma-host-header-logo-link {
    font-size: .85rem;
    font-weight: 600;
    color: #e7eaf0;
    text-decoration: none;
    letter-spacing: .04em;
    opacity: .85;
}

.ma-host-header-logo-link:hover { opacity: 1; }

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* == BEGIN MINDATTIC.UIUX:USERLOGIN.CSS == */
/* Generated by MindAttic.UiUx/sync/sync-ideas.ps1. Do not edit by hand.
   Edit MindAttic.UiUx/subscribers.json + the matching component folder, then re-run the sync. */
/* UserLogin — styling ONLY for the MindAttic.Authentication MaLogin static-SSR form.
   The form, inputs, and antiforgery POST are owned by the library; this component never
   reimplements them. Every rule is scoped under .ul-card so it can't leak into the host.
   Theming hooks: --ul-accent, --ul-bg. */

.ul-card .ma-auth-login {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    max-width: 22rem;
    margin: 0 auto;
    padding: 1.75rem;
    border-radius: 14px;
    background: var(--ul-bg, #14171c);
    box-shadow: 0 8px 30px rgba(0, 0, 0, .35);
}

.ul-card .ma-auth-field {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    font-size: .85rem;
}

.ul-card .ma-auth-field input {
    padding: .6rem .7rem;
    border-radius: 8px;
    border: 1px solid #2a2f37;
    background: #0c0e12;
    color: #e7eaf0;
}

.ul-card .ma-auth-field input:focus {
    outline: none;
    border-color: var(--ul-accent, #e2231a);
    box-shadow: 0 0 0 2px rgba(226, 35, 26, .25);
}

.ul-card .ma-auth-submit {
    margin-top: .4rem;
    padding: .65rem 1rem;
    border: none;
    border-radius: 8px;
    background: var(--ul-accent, #e2231a);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.ul-card .ma-auth-submit:hover {
    filter: brightness(1.08);
}

.ul-card .ma-auth-error {
    color: #ff6b6b;
    font-size: .8rem;
    margin: 0;
}

/* == END MINDATTIC.UIUX:USERLOGIN.CSS == */
 /* == BEGIN MINDATTIC.UIUX:USERCIRCLE.CSS == */
/* Generated by MindAttic.UiUx/sync/sync-ideas.ps1. Do not edit by hand.
   Edit MindAttic.UiUx/subscribers.json + the matching component folder, then re-run the sync. */
/* UserProfileDropdown — avatar/initials circle + hover dropdown menu. Scoped under .uc-root.
   Theming hooks: --uc-bg, --uc-size. */

.uc-root { position: relative; display: inline-block; }

.uc-btn {
    width: var(--uc-size, 40px);
    height: var(--uc-size, 40px);
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: #fff;
    background: var(--uc-bg, #e2231a);
    font-size: calc(var(--uc-size, 40px) * .4);
    line-height: 1;
}

.uc-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.uc-btn .uc-icon { width: 60%; height: 60%; }

.uc-menu {
    position: absolute;
    top: calc(var(--uc-size, 40px) + 8px);
    right: 0;
    min-width: 11rem;
    background: #14171c;
    border: 1px solid #2a2f37;
    border-radius: 10px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .4);
    padding: .4rem;
    display: none;
    z-index: 1000;
}

.uc-root:hover .uc-menu,
.uc-root.uc-open .uc-menu { display: block; }

.uc-name { padding: .4rem .6rem; font-size: .8rem; color: #9aa3af; border-bottom: 1px solid #2a2f37; margin-bottom: .25rem; }

.uc-menu form { margin: 0; }

.uc-list { list-style: none; margin: 0; padding: 0; }

.uc-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    color: #e7eaf0;
    padding: .5rem .6rem;
    border-radius: 6px;
    cursor: pointer;
    font: inherit;
    text-decoration: none;
}

.uc-item:hover { background: #1d2128; color: #e7eaf0; }

.uc-logout {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    color: #e7eaf0;
    padding: .5rem .6rem;
    border-radius: 6px;
    cursor: pointer;
    font: inherit;
}

.uc-logout:hover { background: #1d2128; }

/* == END MINDATTIC.UIUX:USERPROFILEDROPDOWN.CSS == */
 /* == BEGIN MINDATTIC.UIUX:USERTIMEOUT.CSS == */
/* Generated by MindAttic.UiUx/sync/sync-ideas.ps1. Do not edit by hand.
   Edit MindAttic.UiUx/subscribers.json + the matching component folder, then re-run the sync. */
/* UserTimeout — idle-warning modal. Scoped under .ut-overlay. Theming hook: --ut-accent. */

.ut-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.ut-overlay.ut-show { display: flex; }

.ut-modal {
    background: #14171c;
    color: #e7eaf0;
    max-width: 24rem;
    width: 90%;
    padding: 1.5rem 1.75rem;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .5);
    text-align: center;
}

.ut-modal h2 { margin: 0 0 .5rem; font-size: 1.1rem; }

.ut-count {
    font-size: 2rem;
    font-weight: 700;
    color: var(--ut-accent, #e2231a);
    margin: .5rem 0;
}

.ut-actions { display: flex; gap: .6rem; justify-content: center; margin-top: 1rem; }

.ut-btn { padding: .55rem 1rem; border-radius: 8px; border: none; cursor: pointer; font-weight: 600; }

.ut-stay { background: var(--ut-accent, #e2231a); color: #fff; }

.ut-logout { background: #2a2f37; color: #e7eaf0; }

/* == END MINDATTIC.UIUX:USERTIMEOUT.CSS == */

/* ADMIN UI */
.admin-title{margin:1rem 0;}
.admin-filters{display:flex;gap:.4rem;margin-bottom:.8rem;flex-wrap:wrap;}
.admin-chip{padding:.3rem .7rem;border:1px solid #555;border-radius:999px;background:none;color:inherit;cursor:pointer;font-size:.8rem;}
.admin-chip.on{background:#e2231a;border-color:#e2231a;color:#fff;}
.admin-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.admin-table th,.admin-table td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid rgba(127,127,127,.25);vertical-align:top;}
.admin-table tr.row-off,.admin-table tr.sev-warning{opacity:.7;}
.admin-table tr.row-dim{opacity:.45;}
.admin-sub{font-size:.72rem;opacity:.65;}
.admin-empty{opacity:.6;padding:1rem 0;}
.admin-badge{font-size:.6rem;padding:.05rem .35rem;border-radius:6px;background:#555;color:#fff;margin-left:.35rem;}
.admin-badge.ok{background:#2e7d32;}
.admin-link{background:none;border:none;color:#5aa0ff;cursor:pointer;font:inherit;padding:0 .4rem;}
.admin-link.danger{color:#ff6b6b;}
.admin-status{padding:.5rem .7rem;border-radius:8px;margin:.6rem 0;font-size:.85rem;}
.admin-status.ok{background:rgba(46,125,50,.18);}
.admin-status.err{background:rgba(226,35,26,.18);}
.admin-lint-banner{position:relative;padding:.5rem .7rem .5rem 1.9rem;border-radius:8px;margin:.4rem 0 .8rem;font-size:.78rem;background:rgba(255,180,0,.14);}
.admin-lint-banner strong{display:block;margin-bottom:.15rem;}
.admin-lint-banner ul{margin:0;padding-left:1.1rem;}
.admin-lint-dismiss{position:absolute;top:.3rem;right:.4rem;background:none;border:none;color:inherit;font-size:1rem;line-height:1;cursor:pointer;opacity:.7;}
.admin-lint-dismiss:hover{opacity:1;}
.admin-two-pane{display:flex;gap:1.25rem;align-items:flex-start;}
.admin-list{flex:0 0 16rem;display:flex;flex-direction:column;gap:.35rem;}
.admin-new{padding:.5rem .8rem;border:1px dashed #888;border-radius:8px;background:none;color:inherit;cursor:pointer;}
.admin-item{display:flex;align-items:center;gap:.4rem;padding:.45rem .65rem;border-radius:8px;cursor:pointer;border:1px solid transparent;}
.admin-item:hover{background:rgba(127,127,127,.12);}
.admin-item.active{border-color:#e2231a;background:rgba(226,35,26,.08);}
.admin-item.dropinto{border-color:#2e7d32;background:rgba(46,125,50,.14);}
.admin-item-name{font-weight:600;font-size:.88rem;}
.admin-item-body{flex:1 1 auto;min-width:0;}
.admin-grip{cursor:grab;opacity:.5;font-size:.9rem;user-select:none;}
.admin-reorder{display:flex;flex-direction:column;line-height:.6;}
.admin-mini{border:none;background:none;color:inherit;opacity:.5;cursor:pointer;font-size:.6rem;padding:0 .15rem;}
.admin-mini:hover{opacity:1;}
.admin-droproot{padding:.35rem .65rem;border:1px dashed transparent;border-radius:8px;font-size:.75rem;opacity:.5;}
.admin-droproot.armed{border-color:#2e7d32;opacity:1;background:rgba(46,125,50,.1);}
.admin-hint{font-size:.68rem;opacity:.5;margin-top:.5rem;line-height:1.4;}
.admin-editor{flex:1 1 auto;min-width:18rem;}
.admin-editor-head{display:flex;align-items:center;gap:.6rem;border-bottom:1px solid rgba(127,127,127,.3);padding-bottom:.5rem;margin-bottom:.9rem;}
.admin-editor-head h2{flex:1 1 auto;margin:0;font-size:1.05rem;}
.admin-save{padding:.45rem .9rem;border:none;border-radius:8px;background:#2e7d32;color:#fff;cursor:pointer;}
.admin-page-props{border:1px solid rgba(127,127,127,.25);border-radius:8px;padding:.55rem .75rem;margin-bottom:.9rem;}
.admin-page-props>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;user-select:none;}
.admin-page-props>summary::-webkit-details-marker{display:none;}
.admin-page-props>summary::before{content:'▶';font-size:.55rem;opacity:.55;transition:transform .15s;width:.8rem;}
.admin-page-props[open]>summary::before{transform:rotate(90deg);}
.admin-page-props>.admin-grid{margin-top:.7rem;margin-bottom:0;}
.admin-props-hint{font-weight:400;opacity:.55;font-size:.76rem;}
.admin-grid{display:flex;flex-direction:column;gap:.7rem;margin-bottom:.9rem;}
.admin-grid label,.admin-area label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;width:100%;}
.admin-grid input,.admin-grid select{width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid #555;background:#0c0e12;color:#e7eaf0;box-sizing:border-box;}
.admin-area{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;margin-bottom:.8rem;}
.admin-area textarea{width:100%;font-family:ui-monospace,monospace;padding:.5rem;border-radius:6px;border:1px solid #555;background:#0c0e12;color:#e7eaf0;}
.admin-monaco-host{width:100%;height:360px;border:1px solid #555;border-radius:6px;overflow:hidden;}
.admin-flags{display:flex;flex-direction:column;gap:.55rem;font-size:.85rem;}.admin-upload{max-width:46rem;display:flex;flex-direction:column;gap:.9rem;}
.admin-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:2.5rem 2rem;border:2px dashed rgba(90,160,255,.3);border-radius:14px;cursor:pointer;background:rgba(90,160,255,.025);transition:border-color .18s,background .18s,box-shadow .18s;text-align:center;overflow:hidden;}
.admin-dropzone::before{content:'';display:block;width:3rem;height:3rem;margin-bottom:.4rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235aa0ff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C%2Fsvg%3E") center/2.5rem no-repeat;}
.admin-dropzone:hover,.admin-dropzone:focus-within{border-color:rgba(90,160,255,.8);background:rgba(90,160,255,.07);box-shadow:0 0 0 4px rgba(90,160,255,.1);}
.admin-dropzone input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.admin-dropzone-label{font-size:.95rem;font-weight:600;color:#e7eaf0;}
.admin-dropzone-label code{color:#5aa0ff;background:none;padding:0;}
.admin-dropzone-hint{font-size:.78rem;color:#a0aab8;}
.admin-dropzone-hint strong{color:#5aa0ff;font-weight:600;}
.admin-results{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem;}
.admin-results li{padding:.4rem .6rem;border-radius:6px;font-size:.82rem;border:1px solid rgba(127,127,127,.3);}
.admin-results li.ok{border-color:#2e7d32;background:rgba(46,125,50,.08);}
.admin-results li.err{border-color:#e2231a;background:rgba(226,35,26,.08);}
.admin-result-name{font-weight:600;}
.admin-hist-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.admin-hist-table th,.admin-hist-table td{text-align:left;padding:.35rem .55rem;border-bottom:1px solid rgba(127,127,127,.2);}
.admin-hist-current td{background:rgba(46,125,50,.08);}
.admin-access-control{border:1px solid rgba(127,127,127,.25);border-radius:8px;padding:.55rem .75rem;margin-top:.6rem;}
.admin-access-control>summary{cursor:pointer;font-size:.82rem;font-weight:600;padding:.2rem 0;}
.admin-access-grid{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem;}
.admin-history{border:1px solid rgba(127,127,127,.2);border-radius:8px;padding:.5rem .75rem;margin-top:.6rem;}
.admin-history>summary{cursor:pointer;font-size:.82rem;font-weight:600;padding:.2rem 0;}
.admin-access-check{display:flex;align-items:center;gap:.5rem;font-size:.82rem;cursor:pointer;padding:.2rem 0;}
.admin-access-check input[type="checkbox"]{accent-color:#5aa0ff;width:.9rem;height:.9rem;cursor:pointer;}
.admin-plugins-label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;}
.admin-plugin-list{display:flex;flex-direction:column;gap:.1rem;max-height:9rem;overflow-y:auto;padding:.4rem .5rem;border:1px solid #444;border-radius:6px;background:#0c0e12;}
.admin-component-palette{margin-top:.5rem;}
.admin-component-palette summary{cursor:pointer;font-size:.8rem;color:#a0aab8;padding:.3rem 0;}
.admin-palette-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem;max-height:12rem;overflow-y:auto;}
.admin-palette-item{display:flex;flex-direction:column;gap:.15rem;padding:.35rem .5rem;border:1px solid #333;border-radius:6px;background:#0c0e12;}
.admin-palette-item code{font-size:.76rem;color:#5aa0ff;word-break:break-all;}

/* =====================================================================================
   ADMIN ISOLATION  —  the admin lives OUTSIDE the Theme/Plugin/Component (.idea) world.
   No installed package's CSS/JS, and not even the host `css.global` setting, is ever linked
   on an /admin route: those are hoisted ONLY by PageHost when it renders a CONTENT page, and
   PageHost explicitly refuses /admin and /_ slugs. So a broken or hostile .idea can never
   style — or break — the admin (the classic DotNetNuke skin/CSS foot-gun where a bad module
   stylesheet made the whole control panel unusable).

   Second line of defence: the whole admin shell is wrapped in .ma-admin, which establishes an
   explicit baseline (background / colour / font). The admin's many `inherit` / transparent
   rules then resolve against the admin's OWN values, immune to whatever an ancestor set.

   The reset below is based on Eric Meyer's public-domain "Reset CSS" — the canonical
   "clear every browser default" stylesheet (credited in Admin -> Attributions). It is applied
   through :where(...) so it carries ZERO specificity: it neutralises inherited / UA defaults at
   the admin boundary WITHOUT ever overriding the .admin-* / .ma-admin-* component rules.
   ===================================================================================== */
:where(.ma-admin) :where(*) {
    margin: 0; padding: 0; border: 0; box-sizing: border-box;
    font: inherit; vertical-align: baseline;
}
:where(.ma-admin) :where(b, strong) { font-weight: 600; }
:where(.ma-admin) :where(h1, h2, h3) { font-weight: 700; }
:where(.ma-admin) :where(a) { color: #5aa0ff; text-decoration: none; }
:where(.ma-admin) :where(ul, ol) { list-style: none; }
:where(.ma-admin) :where(table) { border-collapse: collapse; border-spacing: 0; }

.ma-admin {
    box-sizing: border-box;
    min-height: 100vh;
    background: #0f1216;
    color: #e7eaf0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    padding: 4rem 1.5rem 3rem;   /* top room for the fixed sign-out chrome */
}
.ma-admin * { box-sizing: border-box; }

/* Tab control */
.ma-admin-bar { display: flex; gap: .15rem; border-bottom: 1px solid rgba(127,127,127,.3); margin-bottom: 1.3rem; flex-wrap: wrap; }
.ma-admin-tab { padding: .6rem 1.05rem; border: 0; border-bottom: 2px solid transparent; background: none; color: #9aa3af; cursor: pointer; font-size: .9rem; font-weight: 600; }
.ma-admin-tab:hover { color: #e7eaf0; }
.ma-admin-tab.on { color: #fff; border-bottom-color: #e2231a; }
.ma-admin-h { font-size: 1.3rem; font-weight: 700; margin: 0 0 1rem; color: #fff; }

/* Settings + Attributions panels */
.ma-settings { display: flex; flex-direction: column; gap: 1.25rem; max-width: 48rem; }
.ma-settings section { border: 1px solid rgba(127,127,127,.3); border-radius: 10px; padding: 1rem 1.1rem; }
.ma-settings h2 { font-size: 1rem; font-weight: 700; margin: 0 0 .6rem; color: #fff; }
.ma-settings p { font-size: .83rem; color: #c2c8d0; margin: .2rem 0; }
.ma-attrib { display: flex; flex-direction: column; gap: .85rem; max-width: 48rem; }
.ma-attrib-item { border: 1px solid rgba(127,127,127,.3); border-radius: 10px; padding: .85rem 1.05rem; }
.ma-attrib-item h3 { font-size: .95rem; font-weight: 700; margin: 0 0 .2rem; color: #fff; }
.ma-attrib-item p { font-size: .82rem; color: #c2c8d0; margin: .12rem 0; }
.ma-attrib-lead { font-size: .86rem; color: #9aa3af; margin-bottom: .35rem; max-width: 48rem; }

/* Instance tree + settings editor (MAI-§4.5) */
.admin-caret{opacity:.8;font-size:.75rem;}
.admin-instance{display:flex;align-items:center;gap:.4rem;padding:.25rem .55rem;border-radius:6px;cursor:pointer;font-size:.8rem;border:1px solid transparent;}
.admin-instance:hover{background:rgba(127,127,127,.12);}
.admin-instance.active{border-color:#e2231a;background:rgba(226,35,26,.08);}
.admin-instance.missing{opacity:.55;cursor:default;}
.admin-instance-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-kind{font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;padding:.05rem .35rem;border-radius:5px;background:rgba(127,127,127,.25);}
.admin-kind-theme{background:#6a1b9a;color:#fff;}
.admin-kind-plugin{background:#1565c0;color:#fff;}
.admin-kind-component{background:#2e7d32;color:#fff;}
.admin-kind-page{background:#555;color:#fff;}
.admin-clipboard{font-size:.72rem;opacity:.8;margin:.35rem 0;padding:.3rem .5rem;border:1px dashed rgba(127,127,127,.5);border-radius:6px;}
.admin-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;padding:.5rem 0;}
.admin-setting{display:flex;flex-direction:column;gap:.3rem;padding:.5rem .6rem;border:1px solid rgba(127,127,127,.25);border-radius:8px;}
.admin-setting.set{border-color:#2e7d32;}
.admin-setting-head{display:flex;align-items:center;gap:.35rem;font-size:.82rem;}
.admin-setting input:not([type=checkbox]),.admin-setting select,.admin-setting textarea{width:100%;}
.admin-lint-banner.err{background:rgba(226,35,26,.14);}
