/* SPEC_03 shared Admin surfaces; skin tokens remain authoritative. */
.admin-sidebar {position:fixed;top:100px;bottom:0;left:0;width:240px;padding:16px;overflow:auto;border-right:1px solid var(--border-colour);background:var(--app-background);z-index:30;box-sizing:border-box}
.admin-sidebar nav {display:grid;gap:8px}.admin-sidebar a {display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;text-decoration:none;min-height:44px;box-sizing:border-box}.admin-sidebar a[aria-current] {outline:1px solid currentColor}.admin-sidebar svg,.admin-card svg {width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.admin-page .app-main {min-width:0}.admin-page .control-page {width:auto;max-width:none;margin:0;padding:24px;box-sizing:border-box;min-width:0}.admin-page h1 {font-size:30px}.admin-page h2 {font-size:20px}.admin-page input:not([type=checkbox]):not([type=radio]),.admin-page select,.admin-page button {min-height:44px}.admin-page form button {width:auto}.admin-page pre {white-space:pre-wrap;overflow-wrap:anywhere}.admin-page article {border:1px solid var(--border-colour);padding:16px;border-radius:12px;margin:16px 0}.admin-cards {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:24px}.admin-card {border:1px solid var(--border-colour);border-radius:12px;padding:24px;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:8px}.admin-card .button-label {margin-top:auto;text-decoration:underline;min-height:44px;display:flex;align-items:center}.admin-drawer-trigger {display:none}.admin-drawer-overlay {position:fixed;inset:0;background:#0009;z-index:29}.admin-page :focus-visible {outline:3px solid currentColor;outline-offset:3px}
@media(max-width:899px){.admin-page .app-main{margin-left:0}.admin-sidebar{transform:translateX(-105%);top:0;background:var(--app-background)}.admin-sidebar.is-open{transform:none}.admin-drawer-trigger{display:block;min-height:44px;margin:8px 16px}.admin-page .control-page{padding:16px}}
@media(prefers-reduced-motion:reduce){.admin-page *{scroll-behavior:auto!important;transition:none!important}}
.tree-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.tree-toolbar label{max-width:240px}.tree-canvas{height:560px;max-width:100%;overflow:hidden;border:1px solid var(--border-colour);border-radius:12px;touch-action:pan-y pinch-zoom}.tree-canvas svg{width:100%;height:100%;color:var(--text-primary)}.tree-node-label{color:var(--text-primary);font-size:15px;overflow-wrap:anywhere;line-height:1.35}.tree-canvas text{fill:var(--text-primary)}[data-tree-details]{border:1px solid var(--border-colour);padding:16px;border-radius:12px;margin-top:16px}[data-tree-list]{display:flex;flex-wrap:wrap;gap:12px}[data-tree-list][hidden]{display:none}[data-rulebook] fieldset{min-width:0;border:1px solid var(--border-colour);border-radius:8px;margin:12px 0;padding:12px}[data-rulebook] textarea{max-width:100%;width:100%;box-sizing:border-box}[data-rulebook] input{max-width:100%;box-sizing:border-box}
@media(max-width:599px){.tree-canvas{height:440px}.tree-toolbar>*{flex:1 1 140px;max-width:100%}}
.admin-page .control-page{width:100%}.admin-sidebar a{color:var(--text-primary)}.admin-sidebar a:hover,.admin-sidebar a[aria-current]{color:var(--accent-colour);background:var(--assistant-message-background)}.admin-page .admin-card{color:var(--text-primary);min-height:210px;box-sizing:border-box}.admin-page .admin-card h2{margin:8px 0}.admin-page .admin-card p{margin:0;line-height:1.5;color:var(--text-secondary)}.admin-card svg,.admin-card .button-label{color:var(--accent-colour)}.admin-drawer-trigger{border:1px solid var(--border-colour);border-radius:10px;background:var(--assistant-message-background);color:var(--text-primary);font:inherit;padding:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.history-view-link.button-label{display:flex;gap:8px;align-items:center;justify-content:center;min-height:44px;margin:12px;border:1px solid var(--border-colour);border-radius:10px;color:var(--accent-colour);text-decoration:none}
.admin-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:16px 0}.admin-table th,.admin-table td{text-align:left;padding:12px;border-bottom:1px solid var(--border-colour);overflow-wrap:anywhere}.admin-table th{background:var(--table-header-background)}.admin-table a{display:inline-flex;align-items:center;min-height:44px}.theme-sample{padding:24px;border-radius:10px;background:var(--app-background);color:var(--text-primary);border:1px solid var(--border-colour)}.theme-sample[data-theme=light]{background:#f8fafc;color:#111827}.theme-sample[data-theme=midnight]{background:#080e1c;color:#cbd5ff}.theme-sample[data-theme=pink]{background:#fff0f6;color:#61183b}.theme-sample[data-theme=default]{background:#111827;color:#f3f4f6}
@media(max-width:599px){.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;box-sizing:border-box;width:100%}.admin-table tr{border:1px solid var(--border-colour);border-radius:12px;margin:12px 0}.admin-table td{border:0;padding:8px 12px}.admin-table td:before{content:attr(data-label);display:block;font-size:12px;color:var(--text-secondary)}}
.guidance-indicator{margin:0;padding:10px 16px;background:var(--input-area-background);color:var(--text-primary);font-size:14px;border-bottom:1px solid var(--border-colour)}.control-page dialog{max-width:min(640px,calc(100vw - 40px));box-sizing:border-box;color:var(--text-primary);background:var(--input-area-background);border:1px solid var(--border-colour);border-radius:12px}.control-page dialog::backdrop{background:#0009}
@media(max-width:899px){.admin-sidebar{z-index:80}.admin-drawer-overlay{z-index:79}}
.json-editor{display:grid;grid-template-columns:3em minmax(0,1fr);min-width:0;max-width:100%;border:1px solid var(--border-colour);border-radius:10px;overflow:hidden}.json-editor pre{margin:0!important;padding:10px 6px;text-align:right;height:600px;overflow:hidden;font:14px/1.5 monospace;color:var(--text-secondary);background:var(--app-background)}.json-editor textarea{margin:0;border:0!important;border-radius:0!important;height:600px;font:14px/1.5 monospace!important;white-space:pre;overflow:auto;resize:vertical}

/* Text links use the tested skin foreground; accent remains an icon/border color. */
.admin-page .control-page a,.admin-card .button-label,.admin-sidebar a:hover,.admin-sidebar a[aria-current],.history-view-link.button-label{color:var(--text-primary)}
/* SPEC_04: compact forms and a stable, pannable rank canvas. */
.hierarchy-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.hierarchy-heading h1{margin-bottom:8px}.hierarchy-heading p{color:var(--text-secondary)}.organogram-toolbar,.simple-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:20px 0}.organogram-toolbar .grow{flex:1;min-width:180px}.organogram-toolbar input{width:100%;box-sizing:border-box}.simple-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--border-colour);border-radius:10px;text-decoration:none;box-sizing:border-box}.chart-legend{display:flex;gap:20px;flex-wrap:wrap;color:var(--text-secondary);font-size:14px}.organogram-card{display:flex;flex-direction:column;gap:9px;font:15px/1.25 system-ui;color:var(--text-primary)}.organogram-card strong{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organogram-card small,.organogram-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organogram-card small{font-size:13px;color:var(--text-secondary)}.simple-person{max-width:1000px!important}.simple-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.simple-grid label,.simple-row label{display:flex;flex-direction:column;gap:8px}.simple-grid input,.simple-grid select{width:100%;box-sizing:border-box}.simple-grid small{color:var(--text-secondary)}.simple-row{border:1px solid var(--border-colour);padding:16px;border-radius:12px;margin:12px 0;display:flex;gap:12px;align-items:start;flex-wrap:wrap}.simple-row .name-picker{flex:1;min-width:200px}.detail-row label{flex:1;min-width:140px}.picker-results{display:flex;flex-direction:column;max-height:240px;overflow:auto}.picker-results:empty{display:none}.meaning-preview{font-size:18px;padding:16px;border-left:3px solid var(--accent-colour);background:var(--assistant-message-background)}.simple-person form>details{margin:20px 0}.simple-person dialog form{display:grid;gap:12px}.simple-person dialog label{display:grid;gap:6px;margin:10px 0}.type-menu{position:relative;min-width:130px}.type-menu a{display:block;padding:12px}button.primary,.simple-button.primary{background:var(--assistant-message-background);font-weight:600;border:2px solid var(--accent-colour)}[data-search-results]{display:flex;gap:8px;flex-wrap:wrap}.simple-person [hidden]{display:none!important}
@media(max-width:600px){.simple-grid{grid-template-columns:1fr}.hierarchy-heading{flex-direction:column}.organogram-page .tree-canvas{height:540px}.organogram-toolbar{gap:8px}.simple-row>*{max-width:100%;box-sizing:border-box}.simple-person input,.simple-person select,.simple-person textarea{max-width:100%;box-sizing:border-box}}

/* SPEC_05: navigation hit areas are scoped to application controls, never chat citations. */
.control-page a:not(.admin-card):not(.message-content a):not(.markdown-body a),.control-page button,.rename-dialog button,.profile-menu a,.profile-menu button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:9px 14px;margin:4px 6px 4px 0;border:1px solid var(--border-colour);border-radius:10px;background:var(--input-background);color:var(--text-primary);font:inherit;line-height:1.35;text-decoration:none;white-space:normal;overflow-wrap:anywhere;max-width:100%;vertical-align:middle;cursor:pointer}
.control-page a[aria-current],.control-page a.active,.control-page button[aria-selected=true]{border:2px solid var(--accent-colour);font-weight:650;background:var(--assistant-message-background)}
.control-page :is(a,button,input,select,textarea,summary):focus-visible,.rename-dialog :focus-visible{outline:3px solid var(--accent-colour);outline-offset:3px}
.control-page details>summary{padding:12px 0;cursor:pointer}.control-page form>label{display:block;margin:12px 0}.control-page small{line-height:1.5}.control-page fieldset{min-width:0;border:1px solid var(--border-colour);border-radius:10px;margin:16px 0;padding:16px}.control-page select[multiple]{min-height:130px;width:100%}.control-page pre{white-space:pre-wrap;overflow-wrap:anywhere}
.admin-card .button-label{display:inline-flex;min-height:44px;align-items:center;padding:0 14px;border:1px solid var(--border-colour);border-radius:10px}.section-links{display:flex;flex-wrap:wrap;gap:8px}
.rename-dialog{max-width:min(520px,calc(100vw - 32px));box-sizing:border-box;background:var(--input-area-background);color:var(--text-primary);border:1px solid var(--border-colour);border-radius:16px;padding:24px}.rename-dialog::backdrop{background:#0009}.rename-dialog input{display:block;box-sizing:border-box;width:100%;padding:12px;font:inherit;margin-top:8px}.mode-catalogue{max-width:100%;min-width:200px}.mode-catalogue>summary{cursor:pointer;padding:12px;border:1px solid var(--border-colour);border-radius:10px}.mode-catalogue [data-mode-choices]{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0}.mode-catalogue .mode-checkbox{position:static!important;opacity:1!important;width:20px!important;height:20px!important;clip:auto!important}.mode-catalogue .mode-control{min-height:44px;display:flex;gap:10px}.mode-catalogue small{display:block}.mode-catalogue p{font-size:13px;max-width:46em}
@media(max-width:600px){.control-page{overflow-wrap:anywhere}.control-page form,.control-page input,.control-page textarea,.control-page select{max-width:100%;box-sizing:border-box}.control-page .simple-grid label{min-width:0}.mode-catalogue{width:100%}.simple-actions{gap:8px}}

.control-page a[aria-current]{border:2px solid var(--accent-colour)!important;background:var(--assistant-message-background)!important;font-weight:700!important}

/* SPEC_06: one full-width coordinate system, document scrolling for normal pages. */
.app-main { display:block; }
.control-page { height:auto; overflow:visible; }
.control-page > p { max-width:80ch; }
@media(min-width:900px){
 .admin-page .app-shell { display:grid; grid-template-columns:240px minmax(0,1fr); grid-template-rows:auto 1fr; }
 .admin-page .app-header { grid-column:1 / -1; }
 .admin-sidebar { position:sticky; top:var(--header-height,90px); left:auto; bottom:auto; align-self:start; height:calc(100dvh - var(--header-height,90px)); }
 .admin-page .app-main { margin:0; }
}
.chat-page { height:100dvh; overflow:hidden; }
.chat-page .app-shell { height:var(--chat-height,100dvh); min-height:0; transform:translateY(var(--chat-top,0px)); }
.chat-page .app-main { display:flex; overflow:hidden; }
.chat-page .app-header { gap:12px; }
.chat-page .message { max-width:min(85%,80ch); }
.profile-menu { max-height:calc(100dvh - var(--menu-top,100px) - max(12px,env(safe-area-inset-bottom))); overflow-y:auto; overscroll-behavior:contain; }
@media(max-width:600px){
 .app-header { flex-wrap:wrap; gap:8px; }
 .header-actions { flex-wrap:wrap; }
 .chat-page .app-header { padding:8px 12px; }
 .chat-page .app-subtitle { display:none; }
 .chat-page .message { max-width:94%; }
 .chat-page .chat-context-bar { padding:4px 12px; }
 .chat-page .chat-options { gap:4px; }
 .chat-page .mode-catalogue { min-width:0; }
 .chat-page .mode-catalogue > summary { padding:6px 10px; }
 .chat-page .mode-catalogue [data-mode-choices] { max-height:22dvh; overflow:auto; }
 .chat-page .mode-catalogue p { margin:4px 0; }
}
.organogram-page .tree-canvas { height:clamp(160px,min(55dvh,calc(100dvh - var(--chart-toolbar-height,160px) - 24px)),620px); touch-action:pan-y pinch-zoom; scroll-margin-top:calc(var(--chart-toolbar-height,160px) + 8px); }
.organogram-page .tree-canvas.is-panning { touch-action:none; cursor:grab; }
.organogram-toolbar { gap:6px; }
.person-swatch { display:inline-block; width:14px; height:14px; border-radius:50%; margin-right:8px; vertical-align:middle; box-shadow:0 0 0 1px var(--text-primary); flex:none; }
.colour-controls { display:flex; align-items:center; gap:12px; }
.colour-controls input[type=color] { width:56px; height:46px; padding:4px; }
.colour-controls input[type=text] { width:130px; }
.organogram-card { gap:6px; }

.organogram-toolbar { position:sticky; top:0; z-index:25; padding:8px 0; background:var(--app-background); }
.organogram-page .hierarchy-heading h1 { margin:12px 0 4px; }
.organogram-page .chart-legend { gap:8px 16px; font-size:13px; }
.diagram-help { font-size:13px; line-height:1.5; }
@media(max-height:550px){
 .chat-page .app-header { padding:6px 12px; gap:6px; }
 .chat-page .maima-brand-image { width:28px; height:28px; }
 .chat-page .app-title { font-size:20px; }
 .chat-page .app-subtitle { display:none; }
 .chat-page .chat-form { padding:6px 12px max(6px,env(safe-area-inset-bottom)); gap:6px; }
 .chat-page .chat-input { max-height:70px; }
 .chat-page .input-hint { display:none; }
 .chat-page .mode-catalogue > summary { padding:4px 8px; }
 .chat-page .mode-catalogue p { font-size:12px; margin:3px 0; }
 .chat-page .chat-context-bar { padding:4px 12px; }
}

/* SPEC_06 usability repair: compact blocks, explicit form ownership and local feedback. */
.simple-person { max-width:1240px!important; }
.simple-person > h1 { margin:12px 0; }
.person-blocks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.person-block { min-width:0; border:1px solid var(--border-colour); border-radius:12px; padding:16px; display:grid; gap:10px; }
.simple-person .person-block h2 { margin:0 0 2px; }
.simple-person .person-block p { margin:0; line-height:1.45; }
.simple-person label { min-width:0; }
.simple-person .person-block label,.simple-person dialog form label { display:flex; flex-direction:column; gap:6px; margin:0; }
.simple-person input,.simple-person select,.simple-person textarea { width:100%; box-sizing:border-box; }
.simple-person small { display:block; color:var(--text-secondary); }
.simple-person button { margin:0; justify-self:start; }
.person-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.simple-person .person-block details,.simple-person dialog details { margin:0; padding:8px 10px; border-radius:8px; }
.simple-person details > summary { padding:4px 0; }
.simple-person details[open] > summary { margin-bottom:8px; }
.simple-person .person-block details label + label { margin-top:10px; }
.simple-person .simple-row { padding:10px; gap:8px; margin:0 0 10px; }
.simple-person .simple-row .name-picker { min-width:0; flex-basis:100%; }
.simple-person .detail-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.simple-person .detail-row label { min-width:0; }
.simple-person .detail-row details { grid-column:1 / -1; }
.simple-person .meaning-preview { padding:10px; font-size:16px; }
.simple-person [data-existing-relations] article { margin:0 0 8px; padding:10px; }
.simple-person [data-existing-relations] button { margin-top:6px; }
.simple-person [data-relationship-form] { margin:0; gap:10px; }
.block-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.simple-person .block-actions > * { margin:0; }
.simple-person .person-save-bar { position:sticky; bottom:0; z-index:26; margin:16px 0; padding:12px; max-width:none; border:1px solid var(--border-colour); border-radius:12px; background:var(--app-background); display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; box-shadow:0 -3px 12px #0002; padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.simple-person [data-result],.simple-person [data-type-error] { margin:0 0 4px; font-weight:600; overflow-wrap:anywhere; }
.simple-person [role=status]:empty { display:none; }
.person-secondary { display:grid; gap:8px; }
.person-secondary details { margin:0; border-radius:10px; }
.simple-person dialog { width:560px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:16px; overflow-y:auto; }
.simple-person dialog form { margin:0; gap:12px; min-width:0; }
.simple-person dialog h2,.simple-person dialog p { margin:0; overflow-wrap:anywhere; }
.simple-person dialog [data-rank-fields],.simple-person dialog [data-relationship-fields] { display:grid; gap:12px; min-width:0; }
.simple-person dialog form .check-label { flex-direction:row; align-items:center; }
.simple-person dialog input[type=checkbox] { width:20px; min-height:20px; height:20px; flex:none; }
.type-save-bar { position:sticky; bottom:-16px; background:var(--input-area-background); border-top:1px solid var(--border-colour); padding:10px 0; }
.organogram-page .tree-canvas { cursor:grab; user-select:none; }
.organogram-page .tree-canvas.is-dragging { cursor:grabbing; }
@media(max-width:760px){
 .person-blocks { grid-template-columns:1fr; gap:12px; }
 .person-block { padding:12px; }
 .person-fields { grid-template-columns:1fr; }
 .simple-person .person-save-bar { grid-template-columns:1fr; gap:6px; padding:8px; padding-bottom:max(8px,env(safe-area-inset-bottom)); }
 .simple-person .person-save-bar small { font-size:12px; }
}

/* Shared personal settings, using the same control surfaces as administration. */
[hidden] { display:none !important; }
.profile-menu :is(a,button) { margin:0; justify-content:flex-start; }
.profile-menu select { min-height:44px; }
.profile-menu :is(a,button):hover { border-color:var(--accent-colour); }
.personal-settings { max-width:1320px; margin:auto; }
.personal-settings #profile { margin:0; }
.profile-save-bar { position:sticky; top:var(--header-height,90px); z-index:40; display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:10px 0; background:var(--app-background); border-bottom:1px solid var(--border-colour); margin-bottom:20px; }
.profile-save-bar h1 { margin:0; font-size:1.7rem; }
.profile-save-bar p { margin:0; flex:1 1 160px; }
.control-page .profile-save-bar button.primary { background:var(--accent-colour); color:var(--button-text); border:2px solid var(--accent-colour); font-weight:700; margin:0; }
.profile-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.settings-card { padding:20px; border:1px solid var(--border-colour); border-radius:var(--control-radius); background:var(--input-area-background); min-width:0; }
.settings-card h2 { margin:0 0 16px; font-size:1.2rem; }
.settings-card label { display:grid; gap:8px; margin:12px 0; }
.settings-card input,.settings-card select { width:100%; min-height:44px; }
.settings-card .settings-hint { color:var(--text-secondary); font-size:.9rem; line-height:1.5; margin:10px 0; }
.settings-card form { margin:12px 0; gap:8px; }
.settings-card details { border:0; padding:0; margin:10px 0; }
.settings-card :is([role=status],[role=alert]):empty { display:none; }
.settings-card .appearance-preview { width:100%; height:100px; margin:0 0 12px; }
.picture-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.picture-frame { width:96px; height:96px; flex:none; border-radius:50%; border:1px solid var(--border-colour); background:var(--assistant-message-background); display:grid; place-items:center; overflow:hidden; }
.picture-frame .avatar-fallback { font-size:2.5rem; }
.email-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; padding:8px 0 16px; border-bottom:1px solid var(--border-colour); }
.email-row label { grid-column:1 / -1; margin:0; }
.email-row .email-primary { display:flex; align-items:center; min-height:44px; }
.email-row .email-primary input { flex:none; width:22px; height:22px; min-height:0; }
.email-row button { margin:0; }
.account-information { grid-column:1 / -1; }
.personal-settings :is(input,select,textarea,button,summary,[id]) { scroll-margin-top:calc(var(--header-height,90px) + var(--profile-save-height,70px) + 16px); }
.control-page button:disabled,.profile-menu button:disabled { cursor:not-allowed; opacity:.65; }
@media(max-width:800px) { .profile-cards { grid-template-columns:minmax(0,1fr); } .settings-card { padding:16px; } .personal-settings { padding:12px; } }
@media(max-width:600px) { .app-header { padding:10px 12px; } .app-subtitle { display:none; } .profile-save-bar { gap:8px; } .profile-save-bar p { flex-basis:100%; font-size:.9rem; } }
.control-page input.sr-only { width:1px; height:1px; min-height:0; padding:0; border:0; }

/* SPEC_09 corrections: same shared controls, with compact persistent actions. */
.profile-save-actions { display:flex; align-items:center; gap:8px; max-width:100%; }
.control-page .profile-save-actions a { margin:0; }
@media(max-width:600px) { .profile-save-bar h1 { font-size:1.25rem; flex-basis:100%; } }
.control-page .avatar-crop { width:440px; padding:20px; max-height:calc(100dvh - 24px); overflow:auto; }
.avatar-crop h2 { margin:0 0 8px; }
.avatar-crop p { font-size:.9rem; margin:8px 0 12px; color:var(--text-secondary); }
.avatar-crop-preview { position:relative; width:min(280px,60vw,40dvh); aspect-ratio:1; margin:auto; border-radius:50%; overflow:hidden; background:var(--input-background); outline:1px solid var(--border-colour); touch-action:none; cursor:grab; }
.avatar-crop-preview:active { cursor:grabbing; }
.avatar-crop-preview img { position:absolute; max-width:none; max-height:none; pointer-events:none; user-select:none; }
.avatar-crop-preview:focus-visible { outline:3px solid var(--accent-colour); outline-offset:3px; }
.control-page .avatar-crop label { display:flex; gap:8px; margin:12px 0 0; }
.control-page .avatar-crop input[type=range] { width:100%; min-height:44px; padding:0; accent-color:var(--accent-colour); }
.crop-actions { display:flex; flex-wrap:wrap; gap:8px; }
.control-page .crop-actions button { margin:0; touch-action:manipulation; }
/* Native details keeps keyboard/no-JS behavior. The float lets choices use the
 * remaining width alongside the trigger, then naturally wrap on narrow screens. */
.chat-page .mode-catalogue { width:100%; min-width:0; }
.chat-page .mode-catalogue > summary { width:fit-content; max-width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; border-radius:var(--control-radius); color:var(--text-primary); background:var(--input-background); }
.chat-page .mode-catalogue[open] > summary { float:left; margin:0 10px 6px 0; }
.chat-page .mode-catalogue [data-mode-choices] { padding:0; gap:8px; }
.chat-page .mode-catalogue .mode-control { flex:0 1 auto; padding:6px 10px; box-sizing:border-box; }
.chat-page .mode-catalogue .mode-checkbox { flex:none; margin:0; accent-color:var(--accent-colour); }
.chat-page .mode-catalogue .mode-text { min-width:0; white-space:normal; }
.chat-page .mode-catalogue small { font-size:.75rem; overflow-wrap:anywhere; }
.chat-page .mode-catalogue p { clear:both; margin:4px 0 0; max-width:none; font-size:.75rem; }
.chat-page .mode-catalogue [data-mode-feedback]:empty { display:none; }
.chat-page .mode-catalogue :focus-visible { outline:2px solid var(--accent-colour); outline-offset:2px; }

/* Shared compact checkbox component: visuals and label touch area are separate. */
.control-page label.check-row { display:inline-flex; flex-direction:row; align-items:center; gap:8px; min-height:44px; margin:0; padding:0 4px; cursor:pointer; }
.control-page .check-row :is(input[type=checkbox],input[type=radio]) { width:20px; height:20px; min-height:20px; padding:0; margin:0; flex:none; accent-color:var(--accent-colour); }
.check-group,.selected-accounts { display:flex; flex-wrap:wrap; gap:4px 16px; }
.rule-editor { display:grid; gap:12px; max-width:1000px; }
.rule-editor .settings-card { padding:16px; }
.rule-editor h3 { margin:0 0 10px; }
.rule-editor label:not(.check-row) { display:grid; gap:6px; margin:10px 0; }
.rule-editor textarea { width:100%; min-height:180px; box-sizing:border-box; }
.rule-editor fieldset { margin:0; padding:0; border:0; }
.rule-editor .simple-actions { margin:0; align-items:center; }
.rule-editor [data-rule-save-status] { flex:1 1 220px; }
.rule-editor .account-options { display:flex; flex-wrap:wrap; gap:4px 16px; max-height:240px; overflow:auto; }
.rule-editor :is(input,select) { max-width:100%; }
.rule-editor summary { min-height:44px; box-sizing:border-box; }

/* One shared action bar; controls inherit the existing theme-aware control-page styles. */
.admin-page .admin-action-bar.control-page { position:sticky; top:var(--header-height,90px); z-index:38; display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 16px; border-bottom:1px solid var(--border-colour); background:var(--app-background); box-shadow:0 3px 8px #0002; }
.admin-action-bar :is(a,button,label,p) { margin:0!important; }
.admin-action-bar label { display:flex; align-items:center; gap:6px; min-width:0; }
.admin-action-bar select { max-width:220px; }
.admin-action-bar p { flex:1 1 180px; overflow-wrap:anywhere; font-size:.9rem; }
.admin-page .person-save-bar,.admin-page .ai-footer { position:static; }
.admin-page :is(input,textarea,select,button,summary,[id]) { scroll-margin-top:calc(var(--header-height,90px) + var(--admin-actions-height,90px) + 16px); }
.admin-page .organogram-toolbar { top:calc(var(--header-height,90px) + var(--admin-actions-height,90px)); }
@media(max-width:600px){.admin-page .admin-action-bar.control-page{padding:6px 12px;gap:6px}.admin-action-bar p{flex-basis:100%}.admin-action-bar :is(a,button){padding:6px 10px;font-size:.9rem}.admin-action-bar label{flex-basis:100%}}

.admin-page dialog .admin-action-bar.control-page { top:0; padding:6px; margin:0 0 12px; z-index:1; max-width:100%; }
.admin-page dialog .type-save-bar { position:static; }

/* Focused catalogue cards; editors remain outside these grids. */
.rule-catalogue-page .rule-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr)); gap:12px; margin:12px 0; align-items:start; }
.rule-catalogue-page article.rule-card { margin:0; padding:12px; min-width:0; background:var(--input-area-background); overflow-wrap:anywhere; }
.rule-catalogue-page .rule-card h3 { margin:0 0 8px; font-size:1rem; }
.rule-catalogue-page .rule-card h3 button { width:100%; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.rule-catalogue-page .rule-card-status { margin:0; color:var(--text-secondary); font-size:.875rem; }
.rule-catalogue-page .rule-card dl { margin:10px 0 0; display:grid; gap:4px; font-size:.875rem; }
.rule-catalogue-page .rule-card dt { font-weight:600; }
.rule-catalogue-page .rule-card dd { margin:0 0 4px; min-width:0; }
/* Oversight presentation only: GET field names and filtering remain unchanged. */
.admin-page .oversight-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); gap:12px; align-items:end; margin:16px 0; }
.admin-page .oversight-filters label { display:flex; flex-direction:column; gap:6px; margin:0; min-width:0; }
.admin-page .oversight-filters input,.admin-page .oversight-filters select { width:100%; min-width:0; height:44px; margin:0; box-sizing:border-box; }
.admin-page .oversight-filters > button { width:auto; min-height:44px; margin:0; justify-self:start; }
