/* Final shared geometry layer. Page styles own content, colour and responsive layout.
   Only geometry uses !important to supersede legacy ID/inline declarations.
   Structural controls (cards, tabs, switches, links and resize handles) are explicit variants. */

/* Nesting contract: enclosing radius = inset + enclosed radius. */
.ui-page-title,.ui-section-title{gap:var(--ui-control-gap)}
.ui-workspace .panel-header .ui-page-title{flex:0 1 auto}
.ui-workspace .panel-header .visible-title{display:block;line-height:1.4;white-space:normal}
.ui-workspace .panel-header .heading-line{flex-wrap:wrap}
.ui-workspace .panel-header .heading-line:has(.ui-page-hint){display:flex}
.ui-workspace .panel-header .ui-page-context{flex:1 1 0}
.ui-workspace .panel-header .ui-page-hint{flex:1 1 var(--ui-directory-width);min-width:0;margin:0;overflow-wrap:anywhere}
.ui-workspace .panel-header .heading-actions{margin-left:auto;flex-wrap:wrap}
.ui-info-button,.ui-workspace .ui-info-button,dialog .ui-info-button{
  width:var(--ui-control-height);min-width:var(--ui-control-height);height:var(--ui-control-height)!important;
  min-height:var(--ui-control-height)!important;padding:0!important;flex:none;border-radius:var(--ui-control-radius)!important;
}
.ui-info-button svg{width:var(--ui-info-glyph-size);height:var(--ui-info-glyph-size);flex:none}
.ui-help-popover{box-sizing:border-box;width:var(--ui-help-width);max-width:calc(100vw - 2 * var(--ui-page-inset));max-height:calc(100dvh - 2 * var(--ui-page-inset));padding:var(--ui-card-inset);border-radius:var(--ui-card-radius)}
.ui-help-heading{gap:var(--ui-control-gap);margin-bottom:var(--ui-control-gap);padding:0;border:0}
@container noryn-page (max-width:700px){.ui-workspace .panel-header .ui-page-context{flex-basis:100%;order:3}}
.ui-workspace .content-shell { border-radius: var(--ui-surface-radius); }
.ui-workspace .shell-sidebar { border-radius: var(--ui-sidebar-radius); }
:is(.ui-workspace, dialog) .badge { border-radius: var(--ui-control-radius); padding-inline: var(--ui-space-2); }
.ui-workspace .shell-sidebar .side-body { left: var(--ui-sidebar-inset); right: var(--ui-sidebar-inset); bottom: 0; }
.ui-workspace .shell-sidebar .projects { gap: var(--ui-control-gap); padding: 0; }
.ui-workspace .shell-sidebar .project {
  box-sizing: border-box; height: var(--ui-sidebar-project-height) !important;
  min-height: var(--ui-sidebar-project-height) !important;
  padding: var(--ui-space-2) var(--ui-space-3); border-radius: var(--ui-control-radius);
}
.ui-workspace .shell-sidebar .project-copy { gap: var(--ui-space-1); }
.ui-workspace .shell-sidebar .project-name { line-height: 18px; }
.ui-workspace .shell-sidebar .project-meta { line-height: 14px; }
/* Structural dividers reach the inner frame edge; content keeps its own inset. */
.ui-workspace .shell-sidebar .sidebar-projects {
  margin-top: var(--ui-content-gap); padding-top: var(--ui-content-gap);
  margin-inline: calc(1px - var(--ui-sidebar-inset));
  padding-inline: calc(var(--ui-sidebar-inset) - 1px);
}
.ui-workspace .shell-sidebar .sidebar-projects .section-label { padding: 0 var(--ui-space-3) var(--ui-space-2); }

/* All four page edges, including rosters and task/configuration pages. */
.ui-workspace .content-shell :is(.panel-header, .page-body, .settings, .memory-page,
  .member-roster, .library-roster, .team-roster, .member-detail, .library-detail,
  .project-task-workspace, .project-task-detail-view, .team-role-config-pane) {
  padding: var(--ui-page-inset) !important;
}
/* Split views align directory and detail under the divider without a second 24px band. */
.ui-workspace .content-shell :is(.member-roster, .library-roster, .team-roster,
  .member-detail, .library-detail, .team-role-config-pane) { padding-top: var(--ui-content-gap) !important; }
.ui-workspace .content-shell .workspace > .panel {
  padding: var(--ui-page-inset); border: 0; border-radius: 0; box-shadow: none;
}
.ui-workspace .content-shell .workspace:is(.library-workspace,.member-workspace) {
  grid-template-columns: var(--ui-directory-width) minmax(0, 1fr); gap: 0;
}
.ui-workspace .content-shell .page-body.archive-rules-body { padding: 0 !important; }
.ui-workspace .content-shell .page-body.archive-preferences-body { padding-top: var(--ui-content-gap) !important; }
.ui-workspace .content-shell .directory-heading { min-height: var(--ui-control-height); align-items: center; gap: var(--ui-control-gap); margin: 0 0 var(--ui-content-gap); }
.ui-workspace .content-shell .directory-heading h2 { margin: 0; }
.ui-workspace .content-shell .directory-heading:has(.directory-heading-actions) h2 { flex: none; max-width: 100%; }
.directory-heading-actions { gap: var(--ui-control-gap); }
.ui-workspace .content-shell .plan-directory-roster > .directory-heading { margin-bottom: var(--ui-space-2); }
.ui-workspace .content-shell .team-roster-group .directory-heading { margin: 0; }
.ui-workspace .content-shell .member-detail { margin-top: 0; }
.ui-workspace .content-shell .team-workspace .member-detail { padding: 0 !important; }
.ui-workspace .content-shell .panel-footer { padding-inline: var(--ui-page-inset); }
.ui-workspace .content-shell .panel-footer { height: var(--ui-page-footer-height); min-height: var(--ui-page-footer-height); }
.ui-workspace .content-shell .panel-header {
  height: auto !important; min-height: 0 !important; gap: var(--ui-content-gap);
  padding-bottom: var(--ui-content-gap) !important;
}
.ui-workspace .content-shell .panel-header .heading-line { min-height: var(--ui-control-height); gap: var(--ui-control-gap); }
.ui-workspace .content-shell .panel-header .toolbar {
  margin-top: 0 !important; height: auto !important; min-height: var(--ui-control-height);
  gap: var(--ui-control-gap);
}
.ui-workspace .content-shell .panel-header .toolbar > label:has(> select) {
  display: inline-flex; align-items: center; flex: none; gap: var(--ui-control-gap);
  margin: 0; white-space: nowrap;
}
.ui-workspace .content-shell .panel-header .toolbar > label > select { flex: none; }
.ui-workspace .content-shell .panel-header.no-toolbar { gap: 0; }
.ui-workspace .content-shell :is(.heading-actions, .archive-header-actions) { gap: var(--ui-control-gap); }

/* Ordinary actions and form controls have one size, including secondary/text actions. */
:is(.ui-workspace, dialog) button:not(:where(
  .ui-info-button, .directory-card, .item, .member-item, .material-card, .mb-directory,
  .project-task-card, .role-task-card, .plan-directory-resource, .memory-row-title,
  .archive-plan-card, .archive-resource-item, .switch,
  .nav-button, .avatar-toggle, .avatar-button, .user-avatar, .brand, .shell-sidebar button,
  .ui-resize, .sidebar-height-resize, .skill-window-resize, .discovery-resize, .correction-resize, .ui-dialog-resize,
  .tabs button, .category-segments button, .project-call-categories button,
  .member-resource-switcher button, .role-knowledge-categories button,
  .attribute-tag button, .record-context button, .execution-source-plan strong button,
  .wp-import-row h3 button, .record-content button)),
:is(.ui-workspace, dialog) :is(.mm-more, .skill-more, .project-archive-menu) > summary,
:is(.ui-workspace, dialog) :is(.work-acquisition a, .archive-file-download) {
  box-sizing: border-box;
  height: var(--ui-control-height) !important;
  min-height: var(--ui-control-height) !important;
  max-height: none !important;
  padding: 0 var(--ui-control-inset) !important;
  border-radius: var(--ui-control-radius) !important;
  gap: var(--ui-control-gap);
  flex-shrink: 0;
}
:is(.ui-workspace, dialog) :is(.panel-back, .icon-button, .window-zoom, .memory-close, .team-add-btn,
  button[aria-label^="关闭"], button[aria-label^="返回"]) {
  width: var(--ui-control-height) !important; padding: 0 !important;
}
.ui-workspace .content-shell .team-candidate-row .directory-card.member-item { padding-right: 56px; }
:is(.ui-workspace, dialog) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]), select:not([multiple]), .search) {
  box-sizing: border-box; height: var(--ui-control-height) !important;
  min-height: var(--ui-control-height) !important;
  border-radius: var(--ui-control-radius) !important;
  padding-block: 0 !important; padding-inline: var(--ui-control-inset);
}
:is(.ui-workspace, dialog) select:not([multiple]) { padding-right: 36px !important; }
:is(.ui-workspace, dialog) .search input { height: 100% !important; min-height: 0 !important; padding: 0 !important; }
:is(.ui-workspace, dialog) textarea {
  box-sizing: border-box; padding: var(--ui-space-3) !important; border-radius: var(--ui-control-radius) !important;
}
/* Text fields scroll within their bounds; page and dialog resizing controls their available space. */
textarea { resize: none !important; }
:is(.ui-workspace, dialog) input::file-selector-button {
  height: var(--ui-control-height); padding: 0 var(--ui-control-inset); border-radius: var(--ui-control-radius);
}

/* Segments size to translated labels and wrap within the available panel width.
   Inner buttons keep the shared 34px height inside the outer border. */
.ui-workspace .content-shell .panel-header .toolbar:has(> .category-segments) {
  display: flex; flex-wrap: wrap; align-items: center;
}
.ui-workspace .content-shell .panel-header .toolbar:has(> .category-segments) > .search {
  flex: 1 1 var(--ui-directory-width); min-width: 0; width: auto; max-width: none;
}
.ui-workspace .content-shell :is(.category-segments, .project-call-categories) {
  display: inline-flex; flex-wrap: wrap; flex: 0 1 auto; width: max-content; max-width: 100%;
  height: auto !important; min-height: var(--ui-control-height);
  border-radius: var(--ui-control-radius); gap: 0;
}
.ui-workspace .content-shell :is(.category-segments, .project-call-categories) > button {
  height: calc(var(--ui-control-height) - 2px) !important;
  min-height: calc(var(--ui-control-height) - 2px) !important;
  flex: 0 0 auto; width: auto; min-width: 0; max-width: 100%;
  padding: 0 var(--ui-control-inset) !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  border-radius: 0 !important; gap: var(--ui-control-gap);
}
.ui-workspace .content-shell .tabs { gap: var(--ui-section-gap); margin-block: var(--ui-content-gap); }
.ui-workspace .content-shell .tabs button {
  min-height: var(--ui-control-height); padding: var(--ui-space-2) 0; border-radius: 0;
}
.ui-workspace .content-shell :is(.member-resource-switcher, .role-knowledge-categories) {
  padding: var(--ui-space-1); gap: var(--ui-space-1); border-radius: calc(var(--ui-control-radius) + var(--ui-space-1));
}
.ui-workspace .content-shell :is(.member-resource-switcher, .role-knowledge-categories) button {
  height: var(--ui-control-height); border-radius: var(--ui-control-radius); gap: var(--ui-control-gap);
}

/* Directory lists share spacing; the team list's two groups keep a section gap. */
.ui-workspace .content-shell :is(.member-roster, .library-roster, .team-roster) .item-list { gap: var(--ui-directory-card-gap); }
.ui-workspace .content-shell .team-workspace .member-roster > .item-list { gap: var(--ui-section-gap); }
.ui-workspace .content-shell .team-workspace .team-roster-group > .item-list { gap: var(--ui-directory-card-gap); }
.ui-workspace .content-shell .directory-card { gap: var(--ui-space-3); padding: var(--ui-directory-card-padding); }
.ui-workspace .content-shell .directory-card.team-config-card { padding: var(--ui-directory-card-padding); }
.ui-workspace .content-shell .directory-card-document { gap: var(--ui-space-1); }
.ui-workspace .content-shell .library-roster .directory-card-document h3 { display:block;white-space:nowrap;text-overflow:ellipsis; }
.ui-workspace .content-shell .library-roster .method-directory-card-title-only { justify-content:flex-start; }
.ui-workspace .content-shell .library-roster .method-directory-card-title-only h3 {
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  white-space:normal;overflow-wrap:anywhere;
}
.ui-workspace .content-shell .library-roster .directory-card-document .material-status { max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.ui-workspace .content-shell .plan-directory-resource {
  min-height: var(--ui-resource-row-min-height); padding: var(--ui-space-3); border-radius: var(--ui-leaf-radius);
}
.ui-workspace .content-shell .team-roster-group { gap: var(--ui-content-gap); }
.ui-workspace .content-shell .team-roster-group .section-head { margin: 0; }

/* Repeated content groups and action rows across every page family. */
:is(.ui-workspace, dialog) :is(.plan-directory-actions, .tr-primary-actions, .work-acquisition,
  .mm-actions, .resource-toolbar, .instruction-actions, .team-edit-actions, .wp-row-actions,
  .task-outcome-buttons, .task-context-card-actions, .profile-image-actions,
  .library-manager-actions, .archive-toolbar > div, .archive-legacy-actions,
  .skill-step-heading > div, .mb-module > header > div, .meaning-meta > div,
  .mm-module-ai-actions, .ss-step-ai-actions, .plan-card-actions) { gap: var(--ui-control-gap); }
:is(.ui-workspace, dialog) :is(.project-task-list, .role-task-list, .role-task-chain,
  .archive-plan-cards, .archive-resource-grid, .task-timeline-list, .mm-role-resource-overview,
  .profile-edit-grid, .wp-diff, .mm-diff, .tr-diff) { gap: var(--ui-content-gap); }
:is(.ui-workspace, dialog) :is(.team-role-config-pane, .archive-plans-resources-view,
  .archive-requirements-layout, .project-preferences-pane) { gap: var(--ui-section-gap); }
:is(.ui-workspace, dialog) :is(.project-task-card, .role-task-card, .role-task-step,
  .task-detail-section, .task-deliverable-card, .task-plan-info-card, .task-attempt-card,
  .task-context-card, .archive-plan-card, .archive-resource-item, .archive-plans-section,
  .archive-resources-section, .requirements-block, .meaning-block, .correction-content,
  .mm-usage, .mm-history, .memory-legacy, .material-file-picker, .material-matches,
  .material-file-summary, .organization-review-body article, .wp-import-organization,
  .composition-group, .destination-radio-card) {
  padding: var(--ui-card-inset); border-radius: var(--ui-card-radius);
}
:is(.ui-workspace, dialog) :is(.mb-module, .skill-step-card) { border-radius: var(--ui-card-radius); }
:is(.ui-workspace, dialog) :is(.mb-module > header, .mb-module-body, .skill-step-card > header, .skill-step-content) {
  padding: var(--ui-card-inset);
}
.ui-workspace .content-shell :is(.plan-directory-detail > section,
  .execution-next-plan, .execution-next-empty, .mm-role-resources) {
  margin-top: var(--ui-section-gap); padding-top: var(--ui-content-gap);
}
.ui-workspace .content-shell .mb-related { margin-top: var(--ui-content-gap); padding-block: var(--ui-space-2) 0; }
.ui-workspace .content-shell .team-role-section { margin: 0; padding: 0 0 var(--ui-section-gap); }
.ui-workspace .content-shell .team-role-section .section-head,
.ui-workspace .content-shell .team-role-section .section-head > .row { flex-wrap: wrap; gap: var(--ui-control-gap); }
.ui-workspace .content-shell .archive-plan-card > header h4 { margin: 0; }
.ui-workspace .content-shell .archive-plan-card > p:not(.helper) { margin: var(--ui-space-2) 0 0; }
.ui-workspace .content-shell .archive-plan-card > p.helper { margin: var(--ui-space-1) 0 0; }
.ui-workspace .content-shell .archive-plan-card > footer { margin-top: var(--ui-content-gap); }
.ui-workspace .content-shell .team-role-actions-bar { padding-top: var(--ui-space-2); }
.ui-workspace .content-shell :is(.task-detail-section, .mb-module, .skill-step-card) { margin-block: 0 var(--ui-content-gap); }
.ui-workspace .content-shell :is(.memory-row, .setting-row, .work-excerpt, .wp-import-row) { padding-block: var(--ui-content-gap); }
.ui-workspace .content-shell .instruction-page .instruction-sync { margin: 0; padding: 0; border: 0; }
.ui-workspace .content-shell .instruction-page .instruction-fulltext { margin: var(--ui-space-2) 0 0; }
.ui-workspace .content-shell .instruction-page [data-instructions-text] { padding: var(--ui-space-3); border-radius: var(--ui-control-radius); }
.instruction-problem-dialog { width: var(--ui-guide-width); max-width: calc(100vw - 2 * var(--ui-dialog-gutter)); overflow: hidden; }
.instruction-problem-dialog > form { max-height: calc(100dvh - 2 * var(--ui-dialog-gutter)); }
.instruction-problem-dialog .instruction-problem-body { min-height: 0; overflow: auto; }
.instruction-problem-dialog .instruction-compare pre { max-height: 200px; min-height: 120px; margin: 0; padding: var(--ui-space-3); border-radius: var(--ui-control-radius); }
.instruction-problem-dialog fieldset { margin: var(--ui-section-gap) 0 0; padding: var(--ui-content-gap); border-radius: var(--ui-leaf-radius); }
.instruction-problem-dialog fieldset legend { padding-inline: var(--ui-space-2); }
.instruction-problem-dialog .instruction-choice { margin: 0 !important; padding-block: var(--ui-space-2); }
.instruction-problem-dialog .instruction-choice + .instruction-choice { border-top: 1px solid var(--line); }
.instruction-problem-dialog .instruction-merge-editor { margin-top: var(--ui-section-gap); }
.instruction-problem-dialog .instruction-merge-editor textarea { min-height: 200px; padding: var(--ui-space-3); border-radius: var(--ui-control-radius); font: 12px/1.6 ui-monospace,monospace; }
.instruction-problem-dialog .instruction-problem-error { margin: var(--ui-content-gap) 0 0; }
@media (max-width: 760px) { .instruction-problem-dialog .instruction-compare { grid-template-columns: 1fr; } }
.ui-workspace .content-shell .team-edit-actions { gap: var(--ui-control-gap); }
.ui-workspace .content-shell .project-config-description { margin: 0 0 var(--ui-section-gap); }

/* The window edge keeps its 24px inset; chrome next to the content divider is compact. */
dialog { border-radius: var(--ui-dialog-radius) !important; }
.ui-workspace .shell-sidebar .project-actions { display:flex; align-items:center; gap:var(--ui-control-gap); }
.ui-workspace .shell-sidebar .project-actions button { width:var(--ui-control-height); height:var(--ui-control-height); border-radius:var(--ui-control-radius); font-size:20px; line-height:1; }
#browser-project-dialog { width:min(var(--ui-confirm-dialog-width),calc(100vw - 2 * var(--ui-dialog-gutter))); padding:0; }
#browser-project-dialog form { display:flex; flex-direction:column; }
#browser-project-dialog header,#browser-project-dialog .browser-project-body,#browser-project-dialog footer { padding:var(--ui-dialog-gutter); }
#browser-project-dialog header { padding-bottom:var(--ui-space-2); }
#browser-project-dialog h2 { margin:0; }
#browser-project-dialog .browser-project-body { display:grid; gap:var(--ui-control-gap); padding-top:var(--ui-content-gap); padding-bottom:var(--ui-space-2); }
#browser-project-dialog input { height:var(--ui-control-height); padding:0 var(--ui-control-inset); border:1px solid var(--line); border-radius:var(--ui-control-radius); }
#browser-project-dialog .helper { margin:var(--ui-control-gap) 0 0; }
#browser-project-dialog footer { display:flex; justify-content:flex-end; gap:var(--ui-action-gap); padding-top:var(--ui-space-2); }
#browser-project-dialog footer button { height:var(--ui-control-height); padding:0 var(--ui-control-inset); border:1px solid var(--line); border-radius:var(--ui-control-radius); background:white; }
#dialog:not(.ui-form-dialog):not(.skill-editor-window):not(:has(#rule-title)), #folder-dialog,
.member-removal-dialog, .archive-action-dialog { padding: var(--ui-dialog-gutter) !important; }
#discovery-dialog > .discovery-header, #archive-preview-dialog > .archive-window-heading {
  padding: var(--ui-dialog-gutter) var(--ui-dialog-gutter) var(--ui-dialog-chrome-compact-inset) !important;
  gap: var(--ui-control-gap);
}
:is(.memory-body, .tr-body, .wp-body, .plan-directory-dialog-body, .organization-review-body,
  .correction-body), #discovery-body, #archive-preview-body,
#dialog.skill-editor-window #form-body, #dialog:has(#rule-title) #form-body {
  padding: var(--ui-dialog-gutter) !important;
}
#memory-entry-dialog:is([data-mode="view"],[data-mode="trash-view"],[data-mode="delete"]):not(.ui-standard-window){height:fit-content!important;max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));overflow:hidden}
#memory-entry-dialog:is([data-mode="view"],[data-mode="trash-view"],[data-mode="delete"]):not(.ui-standard-window) form{height:auto;max-height:inherit}
#memory-entry-dialog:is([data-mode="view"],[data-mode="trash-view"],[data-mode="delete"]):not(.ui-standard-window) .memory-body{flex:0 1 auto}
:is(#dialog.skill-editor-window, #dialog:has(#rule-title)) .actions {
  box-sizing: border-box; height: auto !important; min-height: var(--ui-action-footer-height);
  padding: var(--ui-dialog-chrome-compact-inset) var(--ui-dialog-gutter) var(--ui-dialog-gutter) !important;
  gap: var(--ui-action-gap); flex-wrap: wrap; align-items: center;
}
dialog .actions { gap: var(--ui-action-gap); margin-top: var(--ui-section-gap); }
dialog label:not(:where(.pick, .wp-choice, .wp-auto, .mm-choice, .plan-directory-choice, .tr-check)) {
  margin-block: var(--ui-content-gap) var(--ui-field-content-gap);
}
dialog :is(h2, h3) { margin-top: 0; }
dialog header p { margin: var(--ui-space-2) 0 0; }
.plan-directory-field :is(input, textarea) { margin-top: var(--ui-field-content-gap); }
dialog :is(input, select, textarea) + :is(input, select, textarea) { margin-top: var(--ui-field-content-gap); }
.ui-workspace .content-shell .library-manager { padding: var(--ui-page-inset); }
/* The table header sits directly below the page divider; its cells provide the spacing. */
.ui-workspace .content-shell .library-manager[data-batch-note] { padding-top: 0; }
.ui-workspace .content-shell .library-manager > :is(.library-manager-head, .library-manager-actions, .helper) {
  padding: 0; margin-bottom: var(--ui-content-gap);
}
.ui-workspace .content-shell .library-manager-head {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: var(--ui-content-gap); border: 0;
}
.ui-workspace .content-shell .library-manager-head p { margin: 0; }
.ui-workspace .content-shell .library-manager-head .library-selection-count { width: auto; margin: 0; }
.directory-heading > button { flex: none; }
.ui-workspace .content-shell .panel-footer.has-batch-note { gap: var(--ui-control-gap); }
.panel-footer.has-footer-note #footer-note { min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.5; }
.panel-footer.has-footer-note #footer-count { flex: none; white-space: nowrap; }
.ui-workspace .content-shell :is(.archive-directory, .archive-preview-scroll) { padding: var(--ui-content-gap); }
.ui-workspace .content-shell .archive-preview > header { padding: var(--ui-content-gap); }
.ui-workspace .content-shell .archive-explorer { border-radius: var(--ui-card-radius); }
.ui-workspace .content-shell .archive-directory { background: #f7f8fa; }
.ui-workspace .content-shell .archive-file.selected {
  background: var(--ui-directory-selected-bg); border-color: var(--ui-directory-selected-border); color: var(--blue);
}

/* Text and field rhythm is shared too; document prose keeps its line-height. */
:is(.ui-workspace, dialog) :is(.row, .section-head, .memory-row-heading, .memory-row-bottom,
  .skill-detail-heading, .skill-step-heading, .task-card-main-row, .task-card-meta-row,
  .team-role-config-heading, .execution-section-heading, .mm-resource-picker-head,
  .archive-toolbar, .work-excerpt-origins, .tr-context, .meaning-meta, .tr-source-file) { gap: var(--ui-content-gap); }
:is(.ui-workspace, dialog) :is(.section-head, .section-heading) { margin-bottom: var(--ui-space-2); }
:is(.ui-workspace, dialog) :is(.plan-directory-summary, .memory-row-preview, .role-task-card p,
  .task-card-summary, .task-detail-section p, .record-content p, .wp-body p) { margin-block: var(--ui-space-2); }
:is(.ui-workspace, dialog) :is(.field, .plan-directory-field, .composition-field) { margin-block: 0 var(--ui-content-gap); }
:is(.ui-workspace, dialog) .composition-field { gap: var(--ui-field-content-gap); }
:is(.ui-workspace, dialog) :is(.mm-notice, .wp-warning, .tr-warning, .tr-reading-status,
  .project-scope-banner, .project-source-notice, .project-adjustment-card, .project-knowledge-warning,
  .wp-organization-pending, .wp-organization-live, .skill-import-progress, .organization-status,
  .usage-correction-note, .meaning-note, .task-req-full, .task-code-block, .technical-content,
  .task-plan-empty, .task-timeline-empty, .task-outcome-empty) {
  padding: var(--ui-content-gap); border-radius: var(--ui-control-radius);
}
:is(.ui-workspace, dialog) :is(.profile-image-picker, .material-file-control) {
  display: inline-flex; align-items: center; box-sizing: border-box;
  min-height: var(--ui-control-height); padding: 0 var(--ui-control-inset); border-radius: var(--ui-control-radius);
}
:is(.ui-workspace, dialog) :is(.team-config-row, .team-candidate-row, .team-role-actions-bar,
  .task-participant-chip, .execution-kinds, .material-tags, .attribute-tag) { gap: var(--ui-control-gap); }
:is(.ui-workspace, dialog) :is(.mm-more-menu, .skill-more-menu, .project-archive-dropdown) .menu-group { gap: var(--ui-space-1); }
.ui-workspace .content-shell .work-bibliography dl { gap: var(--ui-space-2) var(--ui-content-gap); }
.ui-workspace .content-shell .settings-organized { gap: var(--ui-section-gap); }
.ui-workspace .content-shell :is(.settings-group, .settings-card-list) { gap: var(--ui-content-gap); }
.ui-workspace .content-shell .settings-card { padding: var(--ui-card-inset); border-radius: var(--ui-card-radius); }
.ui-workspace .content-shell .settings-card-heading { gap: var(--ui-space-2); }
.ui-workspace .content-shell .settings .profile-summary { padding: var(--ui-space-3); border-radius: var(--ui-card-radius); }
.ui-workspace .content-shell .settings-personal-card .profile-summary { width: 100%; padding: 0; border: 0; border-radius: 0; }
.ui-workspace .content-shell .settings-personal-card .profile-summary > button { margin-left: auto; }
.ui-workspace .content-shell .settings-preference .setting-row { min-height: var(--ui-control-height); margin: 0; padding: 0; }
.ui-workspace .content-shell :is(.archive-section-actions, .plan-card-actions) { gap: var(--ui-control-gap) !important; }
.ui-workspace .content-shell .archive-standards .item-list { gap: var(--ui-directory-card-gap); }
.ui-workspace .content-shell .archive-standards .item {
  padding: var(--ui-directory-card-padding); border-radius: var(--ui-leaf-radius); gap: var(--ui-control-gap);
}
.ui-workspace .content-shell :is(.settings-actions, .detail-actions, .archive-modal-footer-actions) { gap: var(--ui-control-gap); }
.ui-workspace .content-shell .settings-card-footer { margin-top: var(--ui-content-gap); padding-top: var(--ui-content-gap); }
.ui-workspace .content-shell .settings-card-intro { margin: var(--ui-space-2) 0 var(--ui-content-gap); }
.ui-workspace .shell-sidebar :is(.nav, .project, .children button) {
  min-height: var(--ui-navigation-min-height); height: auto; padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-sidebar-control-radius); gap: var(--ui-control-gap);
}
/* The menu and page footer share the same 48px strip, including the divider.
   Settings fills this strip; it does not add a second padded card inside it. */
.ui-workspace .shell-sidebar .side-bottom {
  flex: 0 0 var(--ui-page-footer-height); height: var(--ui-page-footer-height);
  margin-top: auto; margin-inline: calc(1px - var(--ui-sidebar-inset)); padding: 0;
  border-radius: 0 0 calc(var(--ui-sidebar-radius) - 1px) calc(var(--ui-sidebar-radius) - 1px);
  overflow: hidden; background: #f8f9fb;
}
.ui-workspace .shell-sidebar .side-bottom .nav {
  width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0 var(--ui-page-inset);
  border: 0; border-radius: 0; justify-content: flex-start;
}
.ui-workspace .shell-sidebar .side-bottom:has(.nav.selected) { background: var(--pale); }
.ui-workspace .shell-sidebar .side-bottom .nav.selected { box-shadow: none; }
.ui-workspace .shell-sidebar .sidebar-height-resize { height: 12px; }
/* Resize at the existing edges without visible grips or hover blocks. */
.ui-workspace :is(.ui-resize, .sidebar-height-resize) > :is(svg, span) { visibility: hidden; }
.ui-workspace .sidebar-resize::after { content: none; }
.ui-workspace :is(.ui-resize, .sidebar-height-resize, .sidebar-resize),
.ui-workspace :is(.ui-resize, .sidebar-height-resize, .sidebar-resize):is(:hover, :active) {
  background: transparent; box-shadow: none;
}
/* Every window edge remains draggable without a visible resize glyph or hover fill. */
:is(.ui-workspace, dialog) :is(.ui-resize, .sidebar-height-resize, .sidebar-resize, .ui-dialog-resize, .skill-window-resize, .discovery-resize, .correction-resize):is(:hover, :active, :focus-visible) {
  background: transparent; box-shadow: none;
}
dialog :is(.ui-dialog-resize, .skill-window-resize, .discovery-resize, .correction-resize) > svg { display: none; }
dialog[aria-label="AI 连接详情"] { padding: var(--ui-dialog-gutter); }

.archive-action-dialog .archive-modal-body { margin-block: var(--ui-section-gap); }
.archive-action-dialog footer { gap: var(--ui-action-gap); flex-wrap: wrap; }
.ui-workspace .content-shell .plan-directory-source-disclosure > div { gap: var(--ui-space-1); padding: var(--ui-space-3); border-radius: var(--ui-control-radius); }
.ui-workspace .content-shell .memory-row-title { display:inline-flex;align-items:center;min-height:var(--ui-control-height);gap:var(--ui-control-gap); }
.ui-workspace .content-shell .memory-row-heading>.ui-detail-actions { margin-left:auto; }
.ui-workspace .content-shell :is(.archive-section-actions, .plan-card-actions, .plan-card-footer) {
  flex-wrap: wrap; min-width: 0; gap: var(--ui-control-gap) !important;
}
.ui-workspace .content-shell .plan-card-footer { padding-top: var(--ui-content-gap); }
.team-role-error:empty { display: none; }
.team-role-error:not(:empty) { padding-block: var(--ui-space-2); }

/* Close-fitting nested surfaces inherit the parent curve minus the actual inset.
   Free-standing leaf controls keep their own radius; circles and inline links stay semantic variants. */
:is(.ui-workspace, dialog) :is(.mm-more-menu, .skill-more-menu, .project-archive-dropdown) {
  padding: var(--ui-space-1); border-radius: calc(var(--ui-control-radius) + var(--ui-space-1));
}
:is(.ui-workspace, dialog) :is(.archive-plan-card, .archive-resource-item, .task-deliverable-card,
  .task-plan-info-card, .task-attempt-card, .task-context-card, .profile-summary, .composition-group)
  :is(.archive-plan-card, .archive-resource-item, .task-deliverable-card, .task-plan-info-card,
  .task-attempt-card, .task-context-card, .composition-group) { border-radius: var(--ui-control-radius); }
.ui-workspace .content-shell :is(.archive-plans-section, .archive-resources-section, .task-detail-section, .settings-card)
  :is(.archive-plan-card, .archive-resource-item, .task-deliverable-card, .task-plan-info-card,
  .task-attempt-card, .task-context-card, .profile-summary) { border-radius: var(--ui-control-radius); }
:is(.ui-workspace, dialog) :is(.mb-module, .skill-step-card) > header {
  border-radius: calc(var(--ui-card-radius) - 1px) calc(var(--ui-card-radius) - 1px) 0 0;
}

/* Use the content panel's width: the sidebar may be resized independently. */
.ui-workspace .content-shell#panel { container-type: inline-size; container-name: noryn-page memory-panel; }
@container noryn-page (max-width: 700px) {
  .ui-workspace .content-shell .panel-header .toolbar { display:flex; flex-wrap:wrap; }
  .ui-workspace .content-shell .panel-header .toolbar > .search { flex:1 1 0; min-width:0; }
  .ui-workspace .content-shell .panel-header .toolbar > .category-segments { flex:1 0 100%; max-width:100%; width:max-content; height:auto!important; flex-wrap:wrap; }
  .ui-workspace .content-shell :is(.member-workspace, .library-workspace, .team-workspace) {
    display: flex; flex-direction: column;
  }
  .ui-workspace .content-shell :is(.member-roster, .library-roster) {
    flex: none; max-height: 200px; border-right: 0; border-bottom: 1px solid var(--line);
  }
  .ui-workspace .content-shell :is(.member-detail, .library-detail) { flex: 1; min-height: 0; }
  .ui-workspace .content-shell .team-workspace .member-detail { min-height: 0; }
  .ui-workspace .content-shell :is(.archive-standards, .archive-explorer) { grid-template-columns: minmax(0, 1fr); }
  .ui-workspace .content-shell :is(.skill-detail-heading, .execution-list-toolbar, .memory-row-bottom) { flex-wrap: wrap; }
  .ui-workspace .content-shell :is(.heading-line, .heading-actions) { flex-wrap: wrap; }
  .ui-workspace .content-shell .panel-header .heading-actions { max-width: 100%; }
  .ui-workspace .content-shell :is(.section-head, .plan-card-footer) { flex-wrap: wrap; }
  .ui-workspace .content-shell .archive-section-actions { width: 100%; }
}

@media (max-width: 760px) {
  .ui-workspace:not(.scene-page) {
    left:var(--ui-page-inset)!important; top:var(--ui-page-inset)!important;
    width:calc(100% - 2 * var(--ui-page-inset))!important; height:calc(100% - 2 * var(--ui-page-inset))!important;
  }
  .ui-workspace:not(.scene-page) .content-shell { left:0; top:0; width:100%; height:100%; }
  .ui-workspace:not(.scene-page):has(#panel:not([hidden])) .shell-sidebar { visibility:hidden; }
  .ui-workspace:not(.scene-page) :is(.ui-resize,.sidebar-resize,.sidebar-height-resize,.window-zoom) { display:none; }
  .ui-workspace:not(.scene-page) .prototype-toast { left:var(--ui-page-inset); max-width:calc(100% - 2 * var(--ui-page-inset)); }
  .ui-workspace .content-shell :is(.heading-line, .heading-actions) { flex-wrap: wrap; }
  .ui-workspace .content-shell .panel-header .heading-actions { max-width: 100%; }
  :is(.memory-dialog, .knowledge-dialog, .work-plan-dialog, .plan-directory-dialog,
    .organization-dialog, .correction-dialog, .methodology-dialog) footer { flex-wrap: wrap; }
}

/* File browser shares catalogue headings and content overviews; no second toolbar band. */
.ui-workspace .content-shell .page-body.archive-files-body { padding: 0 !important; }
.ui-workspace .content-shell .archive-explorer {
 grid-template-columns: var(--ui-file-directory-min-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); border: 0; border-radius: 0;
}
.ui-workspace .content-shell .archive-directory {
 display: block; min-height: 0; max-height: none; background: #fafbfc; border-right: 1px solid var(--line); border-bottom: 0;
}
.ui-workspace .content-shell .archive-directory-scroll { padding: 0; overflow: visible; }
.ui-workspace .content-shell .archive-folder { gap: var(--ui-control-gap); }
.ui-workspace .content-shell .archive-folder-group + .archive-folder-group { margin-top: var(--ui-control-gap); }
.ui-workspace .content-shell .archive-folder-contents {
 display: flex; flex-direction: column; gap: var(--ui-control-gap);
 margin-top: var(--ui-control-gap); margin-left: 0; padding-left: 0; border-left: 0;
}
.ui-workspace .content-shell .archive-folder-contents[hidden] { display: none; }
.ui-workspace .content-shell :is(.archive-folder, .archive-file) {
 display: flex; align-items: center; justify-content: flex-start; gap: var(--ui-control-gap);
 width: 100%; height: var(--ui-control-height); min-height: var(--ui-control-height);
 padding: 0 var(--ui-space-2); border: 1px solid transparent; border-radius: var(--ui-control-radius);
}
.ui-workspace .content-shell :is(.archive-folder, .archive-file) .archive-entry-name { flex: 1; text-align: left; }
.ui-workspace .content-shell .archive-disclosure { margin-left: auto; }
.ui-workspace .content-shell .archive-disclosure .icon { width: var(--ui-content-gap); height: var(--ui-content-gap); }
.ui-workspace .content-shell .archive-file.selected { border-color: var(--ui-directory-selected-border); }
.ui-workspace .content-shell .archive-preview { height: auto; min-height: 0; background: #fff; }
.ui-workspace .content-shell .archive-preview .ui-detail-title h2 { flex: 1; }
.ui-workspace .content-shell .archive-file-download {
 display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line);
 background: var(--paper, #fff); color: inherit; font-size: 12px; text-decoration: none;
}
.ui-workspace .content-shell .archive-preview .mm-more-menu .archive-file-download{width:100%;justify-content:flex-start;border:0;background:transparent}
.ui-workspace .content-shell .archive-preview-scroll { padding: var(--ui-page-inset); }
.ui-workspace .content-shell .archive-preview-scroll > .archive-paper {
 min-height: 0; padding: 0; margin: 0; border: 0; background: transparent; box-shadow: none;
}
.ui-workspace .content-shell .archive-paper > pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ui-workspace .content-shell .archive-paper :is(img, iframe) { display: block; max-width: 100%; }
.ui-workspace .content-shell .archive-paper iframe { width: 100%; height: var(--ui-file-document-height); border: 0; }
@container noryn-page (max-width: 700px) {
 .ui-workspace .content-shell .archive-explorer { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
 .ui-workspace .content-shell .archive-directory { max-height: var(--ui-file-directory-stack-height); border-right: 0; border-bottom: 1px solid var(--line); }
}

/* Resource titles that open their content keep heading flow and wrap at long names. */
:is(.ui-workspace,dialog) button.ui-content-link{height:auto!important;min-height:var(--ui-control-height)!important;max-width:100%;padding:0!important;white-space:normal;text-align:left;overflow-wrap:anywhere;border:0;background:transparent;color:var(--accent,#315fab);font:inherit}
:is(.ui-workspace,dialog) [hidden]{display:none!important}
.memory-row-bottom>span{display:flex;align-items:center;gap:var(--ui-control-gap)}

/* Dialog sections are shared. Only direct sections receive window chrome. */
dialog.ui-form-dialog{width:var(--ui-form-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter));max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));overflow:hidden}
#dialog.ui-form-dialog{padding:0!important}
#dialog.ui-form-dialog > form{display:flex;flex-direction:column;max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));min-height:0}
#dialog.ui-form-dialog #form-body{min-height:0;overflow:auto;flex:1;padding:var(--ui-dialog-gutter)!important}
#dialog.ui-form-dialog > form > .skill-import-progress{flex:none;margin:0;padding:var(--ui-space-3) var(--ui-dialog-gutter);border-inline:0;border-radius:0}
:is(dialog > header,dialog > :is(form,#tr-form) > header,#dialog-heading){
 box-sizing:border-box;flex:none;min-height:0;padding:var(--ui-dialog-gutter) var(--ui-dialog-gutter) var(--ui-dialog-chrome-compact-inset)!important;
 border-bottom:1px solid var(--line);background:var(--paper,#fff);gap:var(--ui-control-gap);
}
:is(dialog > header,dialog > :is(form,#tr-form) > header) :is(h2,.ui-section-title){margin:0;align-content:center}
#dialog-heading > .skill-editor-heading{padding:0;margin:0;border:0;background:transparent}
:is(dialog > footer,dialog > :is(form,#tr-form) > footer,#dialog.ui-form-dialog .actions){
 display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex:none;box-sizing:border-box;
 min-height:var(--ui-action-footer-height);padding:var(--ui-dialog-chrome-compact-inset) var(--ui-dialog-gutter) var(--ui-dialog-gutter)!important;margin:0;
 gap:var(--ui-action-gap);border-top:1px solid var(--line);background:var(--paper,#fff);container-type:inline-size;
}
.ui-dialog-footer-note{flex:1 1 0;min-width:0;margin:0 auto 0 0!important;color:var(--muted);font-size:var(--type-caption);line-height:1.5;overflow-wrap:anywhere;text-align:left}
@container (max-width:430px){.ui-dialog-footer-note{flex-basis:100%}}
dialog :is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,.organization-review-body,.correction-body,#form-body)>:first-child{margin-top:0}
dialog :is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,.organization-review-body,.correction-body,#form-body)>p+*{margin-top:var(--ui-content-gap)}
dialog .ui-section-title>label{margin:0!important}
dialog .wp-body>.ui-section-title>label{margin:0!important}
dialog [data-mb-error]:empty{display:none}
dialog :is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,.organization-review-body,.correction-body,#form-body)>.ui-section-title{margin-block:var(--ui-content-gap) var(--ui-field-content-gap)}

/* Role configuration overview and its shared role form use the common dialog chrome. */
.role-organization-dialog{width:var(--ui-form-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter))}
.role-organization-dialog.role-organization-overview{width:var(--ui-guide-width)}
.role-configuration-summary,.role-configuration-heading{display:flex;align-items:center;gap:var(--ui-control-gap);flex-wrap:wrap}
.role-configuration-summary{justify-content:space-between;margin-bottom:var(--ui-section-gap)}
.role-configuration-summary p,.role-configuration-heading h3{margin:0}
.role-configuration-heading h3{min-width:0;overflow-wrap:anywhere}
.role-configuration-heading button{margin-left:auto;flex:none}
.role-configuration-card{padding:var(--ui-card-inset);border:1px solid var(--line);border-radius:var(--ui-card-radius)}
.role-configuration-card+.role-configuration-card{margin-top:var(--ui-content-gap)}
.role-configuration-card>p{margin:var(--ui-control-gap) 0 var(--ui-content-gap);overflow-wrap:anywhere;white-space:pre-wrap}
.role-configuration-plans ul{display:flex;gap:var(--ui-control-gap) var(--ui-content-gap);flex-wrap:wrap;list-style:none;margin:var(--ui-control-gap) 0 0;padding:0}
.role-configuration-plans li{overflow-wrap:anywhere}
.role-configuration-plans>p{margin:var(--ui-control-gap) 0 0}
.role-configuration-section{margin-top:var(--ui-section-gap);padding-top:var(--ui-content-gap);border-top:1px solid var(--line)}
.role-configuration-section h3{margin:0 0 var(--ui-control-gap)}
.role-configuration-section ul{display:grid;gap:var(--ui-content-gap);padding-left:var(--ui-content-gap);margin:var(--ui-content-gap) 0 0}
.role-configuration-section li{overflow-wrap:anywhere}
.role-configuration-section li p{margin:var(--ui-space-1) 0 0}
.role-review-fields>label{display:block;margin:var(--ui-content-gap) 0 var(--ui-field-content-gap)}
.role-review-fields>label:first-child{margin-top:0!important}
.role-organization-assignment>.role-match-choice+.role-review-fields{margin-top:var(--ui-content-gap)}
.role-review-fields>textarea{min-height:var(--ui-idea-editor-height)}
.role-review-fields>p{margin:var(--ui-control-gap) 0 0}

.role-organization-dialog .role-organization-assignment+.role-organization-assignment{margin-top:var(--ui-section-gap);padding-top:var(--ui-content-gap);border-top:1px solid var(--line)}
.role-organization-dialog .role-match-choice{display:flex;align-items:center;gap:var(--ui-control-gap);margin:0;padding:0;font-weight:400;min-height:var(--ui-control-height);overflow-wrap:anywhere}
.role-organization-dialog .role-match-choice input{flex:none;margin:0}
.role-organization-dialog .role-organization-options{display:flex;flex-wrap:wrap;gap:var(--ui-control-gap) var(--ui-content-gap);margin-top:var(--ui-control-gap)}
.role-organization-dialog .role-creation-plans{margin-top:var(--ui-content-gap)}
.role-organization-dialog .role-creation-plans .helper{margin:var(--ui-field-content-gap) 0 0;overflow-wrap:anywhere}
.role-organization-dialog .role-creation-plans .role-organization-options{display:grid;gap:var(--ui-control-gap)}
.role-organization-dialog .role-creation-plans details{margin:var(--ui-content-gap) 0 0}
.role-organization-dialog .role-creation-plans summary{min-height:var(--ui-control-height);align-content:center}
.role-organization-dialog .form-error:empty,[data-role-draft-status]:empty{display:none}
#dialog.ui-form-dialog .form-error:empty{display:none}
/* Contextual help is a self-contained surface, including inside another dialog. */
.ui-help-popover .ui-help-title{font-size:var(--type-heading)!important;line-height:1.6;font-weight:var(--type-heading-weight)}
.ui-help-popover .ui-help-heading{margin:0 0 var(--ui-control-gap);padding:0;border:0;background:transparent;gap:var(--ui-control-gap)}
.ui-help-popover .ui-help-copy{font-size:var(--type-body)!important;margin:0;padding:0;line-height:1.8}
.ui-help-popover [data-ui-help-close]{font-size:var(--ui-info-glyph-size)!important}
/* More actions start at their trigger when used in a left-aligned action group. */
:is(.ui-workspace,dialog) .mm-actions>.mm-more[open]>.mm-more-menu{left:0;right:auto}
:is(.ui-workspace,dialog) .mm-more[open]>.mm-more-menu{top:calc(100% + var(--ui-control-gap));padding:var(--ui-space-1);border-radius:var(--ui-leaf-radius)}
/* Imported Skill rows follow the same title/action and text rhythm as other detail lists. */
.work-plan-dialog.wp-import-list-dialog{width:var(--ui-form-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter))}
.work-plan-dialog .wp-import-row{display:block;padding-block:var(--ui-content-gap);border-bottom:1px solid var(--line)}
.work-plan-dialog .wp-import-row:first-child{padding-top:0}
.work-plan-dialog .wp-import-row:last-child{padding-bottom:0;border-bottom:0}
.work-plan-dialog .wp-import-row:last-child:has(.wp-recovery-footer){padding-bottom:var(--ui-content-gap)}
.work-plan-dialog .wp-import-row-heading{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-control-gap) var(--ui-content-gap)}
.work-plan-dialog .wp-import-row-heading h3{flex:1 1 160px;min-width:0;margin:0}
.work-plan-dialog .wp-import-row-heading .wp-row-actions{flex:0 1 auto;justify-content:flex-end;margin:0 0 0 auto;max-width:100%;gap:var(--ui-control-gap)}
.work-plan-dialog .wp-import-row-heading .wp-row-actions button{white-space:nowrap}
.work-plan-dialog .wp-import-row-heading details.mm-more{margin:0}
.work-plan-dialog .wp-import-row-heading .mm-more[open]>.mm-more-menu{z-index:40}
.work-plan-dialog .wp-import-row-meta{display:grid;gap:var(--ui-space-1);margin-top:var(--ui-control-gap)}
.work-plan-dialog .wp-import-row-meta p,.work-plan-dialog .wp-import-row-meta [data-wp-organization-row]>p{margin:0}
.work-plan-dialog .wp-import-organization .wp-row-actions{justify-content:flex-end}
.work-plan-dialog .wp-recovery-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-control-gap) var(--ui-content-gap);margin-top:var(--ui-content-gap);padding-top:var(--ui-content-gap);border-top:1px solid var(--line)}
.work-plan-dialog .wp-recovery-footer .helper{flex:1 1 220px;min-width:0;margin:0}
.work-plan-dialog .wp-recovery-footer .wp-recovery-actions{flex:0 1 auto;justify-content:flex-end;flex-wrap:wrap;gap:var(--ui-control-gap);margin:0 0 0 auto}
.work-plan-dialog .wp-recovery-footer .wp-recovery-actions button{white-space:nowrap}
@media(max-width:600px){.work-plan-dialog .wp-recovery-footer .wp-recovery-actions{justify-content:flex-start;margin-left:0}}
.work-plan-dialog .wp-action-feedback{color:#a32727;overflow-wrap:anywhere}
.work-plan-dialog .wp-action-feedback[hidden]{display:none}
.work-plan-dialog .wp-import-detail-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-control-gap) var(--ui-content-gap)}
.work-plan-dialog .wp-import-detail-toolbar .wp-row-actions{justify-content:flex-end;max-width:100%;margin:0 0 0 auto;gap:var(--ui-control-gap)}
.work-plan-dialog .wp-import-detail-toolbar details.mm-more{margin:0}
.work-plan-dialog .wp-import-detail-toolbar .mm-more[open]>.mm-more-menu{z-index:40}
.work-plan-dialog .wp-footer-setting{gap:var(--ui-control-gap);flex-wrap:wrap}
.work-plan-dialog .wp-footer-setting .helper{white-space:normal;overflow:visible;text-overflow:clip}
/* Plan dialogs place the object context beside the title, matching other reading and edit windows. */
.plan-directory-dialog>form>header{display:flex;align-items:center;flex-wrap:wrap;column-gap:var(--ui-control-gap)}
.plan-directory-dialog>form>header>p{margin:0;color:var(--muted);font-size:var(--type-caption);line-height:1.5;overflow-wrap:anywhere}
/* Identity editors share form chrome; avatar controls stay with the avatar. */
#dialog.profile-editor .profile-edit-grid{display:grid;grid-template-columns:var(--ui-avatar-editor-column) minmax(0,1fr);gap:var(--ui-section-gap);align-items:start}
#dialog.profile-editor .profile-image-editor{width:auto;min-width:0;display:grid;gap:var(--ui-content-gap);margin:0}
#dialog.profile-editor .profile-crop-frame{width:var(--ui-avatar-preview-size);height:var(--ui-avatar-preview-size);margin-inline:auto}
#dialog.profile-editor .profile-image-controls{display:grid;gap:var(--ui-content-gap);min-width:0}
#dialog.profile-editor .profile-image-actions{display:grid;gap:var(--ui-control-gap);margin:0}
#dialog.profile-editor .profile-image-picker{justify-content:center;margin:0;min-height:var(--ui-control-height)}
#dialog.profile-editor .profile-zoom-row{display:flex;align-items:center;gap:var(--ui-control-gap);margin:0;min-height:var(--ui-control-height)}
#dialog.profile-editor .profile-zoom-row input{width:0;margin:0}
#dialog.profile-editor .profile-edit-fields{min-width:0}
#dialog.profile-editor .profile-edit-fields>label{margin:var(--ui-content-gap) 0 var(--ui-field-content-gap)}
#dialog.profile-editor .profile-edit-fields>:first-child{margin-top:0}
#dialog.profile-editor .profile-edit-fields>.role-create-ai-option{display:flex;justify-content:center}
#dialog.profile-editor .profile-edit-fields>.role-create-divider{border:0;border-top:1px solid var(--line);margin:var(--ui-section-gap) 0}
#dialog.profile-editor .profile-edit-fields>.ui-section-title{margin:var(--ui-content-gap) 0 var(--ui-field-content-gap)}
#dialog.profile-editor .profile-edit-fields .helper{margin-top:var(--ui-content-gap)}
#dialog.profile-editor #profile-crop-help{margin:0}
@media(max-width:600px){
 #dialog.profile-editor .profile-edit-grid{grid-template-columns:minmax(0,1fr)}
 #dialog.profile-editor .profile-image-editor{grid-template-columns:var(--ui-avatar-preview-size) minmax(0,1fr);gap:var(--ui-content-gap)}
 #dialog.profile-editor .profile-image-controls{align-content:center}
}

/* A modal owns its controls; the background navigation avatar must not cover its title. */
dialog #dialog-avatar{display:none!important}
:is(.ui-confirm-dialog,.team-confirm-dialog,.member-removal-dialog){width:var(--ui-confirm-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter))}
.ui-dialog-header h2{margin:0}
/* Form labels and fields share one measured rhythm, overriding old modal-specific margins. */
dialog label:not(:where(.pick,.wp-choice,.wp-auto,.mm-choice,.plan-directory-choice,.tr-check,.profile-image-picker,.profile-zoom-row,.ui-section-title>label)):not(:has(>input[type=checkbox],>input[type=radio])){margin-block:var(--ui-content-gap) var(--ui-field-content-gap)!important}
dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select,textarea){margin-block:0!important}
dialog label>:is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select,textarea){display:block;margin-top:var(--ui-field-content-gap)!important}
dialog .ui-section-title>label{margin:0!important}
dialog :is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,.organization-review-body,.correction-body,#form-body,.profile-edit-fields)>:first-child{margin-top:0!important}
:is(.ui-workspace,dialog) :is(.mm-more-menu,.skill-more-menu,.project-archive-dropdown) button{justify-content:flex-start;text-align:left}

.archive-action-dialog{width:var(--ui-form-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter));max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));padding:0!important;overflow:hidden}
.archive-action-dialog>form{display:flex;flex-direction:column;max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));min-height:0}
.archive-action-dialog>form>header{margin:0}
.archive-action-dialog .archive-modal-body{flex:1;min-height:0;max-height:none;overflow:auto;padding:var(--ui-dialog-gutter);margin:0}
.archive-action-dialog .archive-modal-footer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-control-gap)}
.archive-modal-error{color:var(--danger,#c93b2b);margin-bottom:var(--ui-control-gap)}
.archive-modal-body>.ui-section-title{margin-bottom:var(--ui-content-gap)}
.archive-modal-body label.item{margin:0!important;padding:var(--ui-card-inset);border-radius:var(--ui-card-radius);min-height:var(--ui-resource-row-min-height)}
.archive-modal-body>.item-list{gap:var(--ui-content-gap)}
.archive-modal-body :is(input[type=search],input[type=url]){border:1px solid var(--line);background:var(--paper)}
dialog .field:has(>input,>textarea,>select){padding:0;border:0;margin:0 0 var(--ui-content-gap)}
dialog .field:has(>input,>textarea,>select)+.field{border-top:0}
dialog .field>label:first-child{margin-top:0!important;color:var(--ink)}
dialog .skill-import-method>label:first-child{margin-top:0!important}
.save-destinations-menu{position:relative;display:inline-block}
.save-destinations-menu>.menu-dropdown{position:absolute;bottom:calc(100% + var(--ui-control-gap));right:0;display:grid;min-width:max-content;padding:var(--ui-space-1);border:1px solid var(--line);border-radius:var(--ui-leaf-radius);background:var(--paper);box-shadow:var(--shadow);z-index:100}
.save-destinations-menu .menu-item{width:100%;justify-content:flex-start;text-align:left;border:0;background:transparent}

/* Connection and storage notices use the same sections as form-based windows. */
dialog.ui-direct-dialog{width:var(--ui-form-dialog-width);max-width:calc(100vw - 2 * var(--ui-dialog-gutter));max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));padding:0!important;overflow:hidden}
#folder-dialog.ui-direct-dialog{padding:0!important}
dialog.ui-direct-dialog[open]{display:flex;flex-direction:column}
.ui-direct-dialog>.ui-dialog-body{flex:1;min-height:0;overflow:auto;padding:var(--ui-dialog-gutter)}
.ui-dialog-body>p+p,.ui-dialog-body>.settings-actions{margin-top:var(--ui-content-gap)}
.ui-dialog-body .description{margin:0}
/* First use is a dedicated two-column window; each step owns one scroll region. */
#folder-dialog.folder-setup-dialog{
  box-sizing:border-box;width:var(--ui-guide-width);height:var(--ui-guide-height);
  max-width:calc(100vw - 2 * var(--ui-dialog-gutter));
  max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));
  padding:0!important;overflow:hidden;
  grid-template-columns:var(--ui-guide-brand-width) minmax(0,1fr);
}
#folder-dialog.folder-setup-dialog[open],#folder-dialog.folder-setup-dialog.ui-standard-window[open]{display:grid}
#folder-dialog.folder-setup-dialog>.guide-brand{min-width:0;min-height:0;border:0;padding:var(--ui-guide-inset)!important;display:flex;flex-direction:column;gap:var(--ui-section-gap)}
#folder-dialog.folder-setup-dialog>.guide-brand:before{width:var(--ui-guide-art-size);height:var(--ui-guide-art-size);right:-20%;top:-16%}
#folder-dialog.folder-setup-dialog .guide-brand-message{margin-top:0;flex:1;display:flex;flex-direction:column;justify-content:center}
#folder-dialog.folder-setup-dialog>.guide-work{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
#folder-dialog .guide-progress{padding:var(--ui-guide-inset) var(--ui-guide-inset) 0}
#folder-dialog .guide-scroll{min-width:0;min-height:0;overflow:auto;padding:var(--ui-guide-inset)}
#folder-dialog .guide-scroll:focus{outline:none}
.keyboard-focus #folder-dialog .guide-scroll:focus-visible{outline:1px solid #8792a4;outline-offset:-2px}
#folder-dialog .guide-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-control-gap);padding:var(--ui-content-gap) var(--ui-guide-inset) var(--ui-guide-inset)}
#folder-dialog .guide-action-spacer{flex:1}
#folder-dialog.folder-setup-dialog button{min-height:var(--ui-control-height);border-radius:var(--ui-control-radius);padding-inline:var(--ui-control-inset)}
#folder-dialog.folder-setup-dialog #folder-dialog-message:empty{display:none}
@media(max-width:900px){
  #folder-dialog.folder-setup-dialog{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  #folder-dialog.folder-setup-dialog>.guide-brand{padding:var(--ui-page-inset)!important;gap:var(--ui-space-3)}
  #folder-dialog.folder-setup-dialog>.guide-brand:before{width:calc(var(--ui-guide-art-size) * .4);height:calc(var(--ui-guide-art-size) * .4);right:0;top:-50%}
  #folder-dialog.folder-setup-dialog .guide-brand-message{flex:none}
  #folder-dialog .guide-progress{padding:var(--ui-page-inset) var(--ui-page-inset) 0}
  #folder-dialog .guide-scroll{padding:var(--ui-page-inset)}
  #folder-dialog .guide-actions{padding:var(--ui-space-2) var(--ui-page-inset) var(--ui-page-inset)}
}
@media(max-width:760px){
  #folder-dialog.folder-setup-dialog>.guide-brand{gap:var(--ui-space-2)}
  #folder-dialog .guide-progress{padding-top:var(--ui-space-3)}
}
.knowledge-dialog>#tr-form{display:flex;flex-direction:column;max-height:calc(100dvh - 2 * var(--ui-dialog-gutter));min-height:0}

.ui-detail-overview{position:relative;z-index:1;gap:var(--ui-content-gap);padding-bottom:var(--ui-content-gap);border-bottom:1px solid var(--line);margin-bottom:var(--ui-space-2)}
.ui-detail-title,.ui-detail-actions,.task-outcome-entry,.task-activity-filters,.task-activity-filters>label{gap:var(--ui-control-gap)}
.ui-detail-overview>.ui-detail-status{color:var(--muted);font-size:12px;line-height:1.5}
.ui-detail-overview>.ui-detail-actions,.ui-detail-overview>.resource-toolbar,.ui-detail-overview>.mm-actions,.ui-detail-overview>.plan-directory-actions{justify-content:flex-end;align-items:center;align-self:start}
@container ui-detail (max-width:560px){.ui-detail-overview>:is(.ui-detail-actions,.resource-toolbar,.mm-actions,.plan-directory-actions){grid-column:1/-1;grid-row:2}}
.ui-workspace .content-shell .ui-detail-overview .mm-actions>.mm-more[open]>.mm-more-menu{left:auto;right:0}
.ui-workspace .content-shell .ui-detail-overview :is(.mm-more,.skill-more)[open]>:is(.mm-more-menu,.skill-more-menu){z-index:40}
.ui-detail-overview>.resource-toolbar,.ui-detail-overview>.mm-actions,.ui-detail-overview>.plan-directory-actions{margin:0}
.ui-workspace .content-shell .ui-detail-overview>p{margin:0}
.ui-workspace .content-shell .ui-detail-overview>.ui-detail-status{margin-top:calc(0px - var(--ui-space-3))}
.ui-content-context{display:grid;gap:var(--ui-content-gap);margin-bottom:var(--ui-section-gap)}
.ui-content-context>p{margin:0}
.ui-detail-flow{display:flex;flex-direction:column;gap:0}
.ui-workspace .content-shell .team-role-config-pane.ui-detail-flow{gap:0}
.ui-detail-flow>.ui-detail-overview{margin-bottom:var(--ui-space-2)}
.ui-detail-flow>:not(.ui-detail-overview)+:not(.ui-detail-overview){margin-top:var(--ui-section-gap)}
.ui-workspace .content-shell .divider{margin-block:var(--ui-section-gap)}
.task-activity-filters{margin-bottom:var(--ui-content-gap)}
.task-activity-filters .search{min-width:min(100%,var(--ui-directory-width))}
.task-activity-report{padding-block:var(--ui-content-gap)}
.task-activity-report .skill-step-heading{margin-bottom:var(--ui-control-gap)}
.task-activity-list>li+li{margin-top:var(--ui-content-gap)}

/* Role groups use the directory's full width; linked plans share resource geometry. */
.plan-directory-groups{display:grid;gap:var(--ui-section-gap)}
.plan-directory-role-group{display:grid;gap:var(--ui-space-3);min-width:0}
.plan-directory-role-group>.item-list{min-width:0;max-width:100%}
.plan-directory-detail>.ui-detail-overview{margin-bottom:var(--ui-space-2)}
.ui-workspace .content-shell .plan-directory-detail>section{margin-top:var(--ui-content-gap);padding-top:var(--ui-space-2)}
.ui-workspace .content-shell .plan-directory-detail>.ui-detail-overview+section{margin-top:0;padding-top:0;border-top:0}
.ui-ai-request-dialog .ui-ai-request-header{justify-content:flex-start;flex-wrap:wrap;gap:var(--ui-control-gap)}
.ui-ai-request-prompt{min-width:0;flex:1 1 auto;color:var(--muted);font-size:var(--type-body);line-height:1.5}
.ui-ai-request-context{flex:0 0 100%;min-width:0;color:var(--muted);font-size:var(--type-caption);line-height:1.5;overflow-wrap:anywhere}
.ui-ai-request-dialog>form>footer{container-type:inline-size}
.ui-ai-request-dialog>form>footer>.ui-ai-request-footer-note{flex:1 1 0;min-width:0;margin-right:auto;color:var(--muted);font-size:var(--type-caption);line-height:1.5}
.ui-ai-request-dialog :is(.wp-body,.tr-body)>textarea.ui-ai-request-editor{min-height:var(--ui-idea-editor-height);height:var(--ui-idea-editor-height);margin:0;resize:none}
.ui-ai-request-dialog .ui-ai-request-field-error{margin:var(--ui-space-2) 0 0;color:var(--danger,#b33232);font-size:var(--type-caption);line-height:1.5}
.ui-ai-request-dialog .ui-ai-request-field-error:empty{display:none}
.ui-ai-request-dialog textarea.ui-ai-request-editor[aria-invalid="true"]{border-color:var(--danger,#b33232)}
@container (max-width:430px){.ui-ai-request-dialog>form>footer>.ui-ai-request-footer-note{flex-basis:100%}}
.knowledge-dialog.ui-ai-request-dialog{width:min(720px,calc(100vw - 32px))}
.ui-movable-dialog{box-sizing:border-box;max-width:calc(100vw - 32px)!important;max-height:calc(100dvh - 32px)!important;overflow:hidden}
.ui-movable-dialog>form{height:100%;max-height:none!important;min-height:0;display:flex;flex-direction:column}
.ui-ai-request-dialog.ui-movable-dialog :is(.wp-body,.tr-body){flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
.ui-ai-request-dialog.ui-movable-dialog :is(.wp-body,.tr-body)>textarea.ui-ai-request-editor{flex:1;min-height:var(--ui-idea-editor-height);height:auto}
.ui-movable-dialog>form>header{cursor:grab;touch-action:none;user-select:none}
.ui-movable-dialog.ui-dialog-moving>form>header{cursor:grabbing}
.ui-dialog-moving,.ui-dialog-sizing{user-select:none}
.ui-movable-dialog>.ui-dialog-resize{position:absolute;right:1px;bottom:1px;width:22px;height:22px;min-height:22px;padding:3px;border:0;background:transparent;color:var(--muted);cursor:nwse-resize;touch-action:none}
.ui-dialog-resize svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
/* Standalone forms and readers keep their chrome fixed while the middle scrolls. */
dialog.ui-standard-window{box-sizing:border-box;max-width:calc(100vw - 32px)!important;max-height:calc(100dvh - 32px)!important;overflow:hidden}
dialog.ui-standard-window[open]{display:flex;flex-direction:column}
dialog.ui-standard-window>form{display:flex;flex-direction:column;height:100%;max-height:none!important;min-height:0;overflow:hidden}
dialog.ui-standard-window>header,dialog.ui-standard-window>form>header{flex:none;cursor:grab;touch-action:none;user-select:none}
dialog.ui-standard-window.ui-dialog-moving>header,dialog.ui-standard-window.ui-dialog-moving>form>header{cursor:grabbing}
dialog.ui-standard-window>footer,dialog.ui-standard-window>form>footer,dialog.ui-standard-window>form>.actions{flex:none}
dialog.ui-standard-window>form>:is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,.organization-review-body,.archive-modal-body,#form-body),dialog.ui-standard-window>:is(.ui-dialog-body,.organization-review-body,#archive-preview-body){flex:1;min-height:0;overflow:auto}
/* Direct long-form editors take the space gained when their dialog grows. */
dialog.ui-standard-window>form>:is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,#form-body):has(>textarea,>label>textarea,>.plan-directory-field>textarea){display:flex;flex-direction:column}
dialog.ui-standard-window>form>:is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,#form-body)>:is(textarea,label:has(>textarea),.plan-directory-field:has(>textarea)){flex:1 0 auto}
dialog.ui-standard-window>form>:is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,#form-body)>:is(label,.plan-directory-field):has(>textarea){display:flex;flex-direction:column;align-items:stretch}
dialog.ui-standard-window>form>:is(.wp-body,.tr-body,.memory-body,.plan-directory-dialog-body,#form-body) :is(label,.plan-directory-field)>textarea{flex:1 0 auto}
dialog.ui-standard-window>.ui-dialog-resize{position:absolute;right:1px;bottom:1px;width:22px;height:22px;min-height:22px;padding:3px;border:0;background:transparent;color:var(--muted);cursor:nwse-resize;touch-action:none}
dialog.ui-standard-window .ui-window-fallback-header{padding:var(--ui-dialog-gutter);border-bottom:1px solid var(--line);cursor:grab}
.directory-role-divider{display:flex;align-items:center;gap:var(--ui-control-gap);margin:0 calc(-1 * var(--ui-page-inset));color:var(--muted);font-size:inherit;font-weight:500;text-align:center}
.directory-role-divider::before,.directory-role-divider::after{content:"";height:1px;background:var(--line);flex:1 0 var(--ui-content-gap)}
.directory-role-divider>span{min-width:0;overflow-wrap:anywhere}
.role-plan-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-control-gap)}
.role-plan-heading h3{margin:0}
.role-plan-list{display:grid;gap:var(--ui-content-gap);margin-top:var(--ui-content-gap)}
.ui-workspace .role-plan-entry{display:flex;flex-direction:column;align-items:flex-start;white-space:normal;gap:var(--ui-space-1);overflow-wrap:anywhere}
.role-plan-pending{color:var(--muted);font-size:smaller;font-weight:600}
.role-plan-entry small{color:var(--muted);font-weight:400}
.role-plan-entry small,.role-plan-choices small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.role-plan-choices .plan-directory-choice{padding:var(--ui-control-inset);gap:var(--ui-control-gap);border-radius:var(--ui-control-radius)}
.role-plan-choices .plan-directory-choice span{gap:var(--ui-space-1)}
.plan-directory-dialog[data-mode="role"]{width:min(var(--ui-form-dialog-width),calc(100vw - 2 * var(--ui-dialog-gutter)))}

/* Empty states share one text/action rhythm across details, lists, and dialogs. */
:is(.ui-workspace,dialog) :is(.mb-empty,.memory-list-empty,.memory-empty,.log-empty,.plan-directory-empty,.project-task-empty,.empty:has(>h3)) > :is(h2,h3,p,button){margin:0}
:is(.ui-workspace,dialog) :is(.mb-empty,.memory-list-empty,.memory-empty,.log-empty,.plan-directory-empty,.project-task-empty,.empty:has(>h3)) > :is(h2,h3) + p{margin-top:var(--ui-space-2)}
:is(.ui-workspace,dialog) :is(.mb-empty,.memory-list-empty,.memory-empty,.log-empty,.plan-directory-empty,.project-task-empty,.empty:has(>h3)) > p + :is(p,button){margin-top:var(--ui-content-gap)}
:is(.ui-workspace,dialog) :is(.mb-empty,.memory-list-empty,.memory-empty,.log-empty,.plan-directory-empty,.project-task-empty,.empty:has(>h3)) > p + p.helper{margin-top:var(--ui-section-gap)}
.ui-workspace .mb-empty > p:has(>button){display:flex;justify-content:center;align-items:center;line-height:normal}
