/* The Cave V2 — direction-safe component contract */

/* Mixed-language data never changes container geometry. */
.app-table{table-layout:fixed;width:100%}
.app-table th,.app-table td{direction:inherit;text-align:start;vertical-align:middle}
.app-table th[data-align="center"],.app-table td[data-align="center"]{text-align:center}
.app-table th[data-align="end"],.app-table td[data-align="end"]{text-align:end}
.app-table .value-auto,[dir="auto"].value-auto{unicode-bidi:plaintext}
.app-table .value-ltr,.value-ltr{direction:ltr;unicode-bidi:isolate;display:inline-block;text-align:start}
.app-table .value-rtl,.value-rtl{direction:rtl;unicode-bidi:isolate;display:inline-block;text-align:start}

/* Label/value information grids keep a stable track independent of text language. */
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.info-item{min-width:0;padding:18px 20px;border-inline-end:1px solid var(--line);border-block-end:1px solid var(--line);text-align:start}
.info-item:nth-child(3n){border-inline-end:0}
.info-item:nth-last-child(-n+3){border-block-end:0}
.info-item small{display:block;color:var(--text-muted);font-weight:700;margin-block-end:7px;line-height:1.25}
.info-item strong,.info-item .info-value{display:block;min-width:0;overflow-wrap:anywhere;font-weight:700;line-height:1.35}
html[dir="rtl"] .info-item strong[dir="ltr"],html[dir="rtl"] .info-item .info-value[dir="ltr"]{text-align:start}

.employee-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.employee-meta>div{padding:14px 16px;min-width:0;text-align:start;border-block-end:1px solid var(--line)}
.employee-meta>div:nth-child(odd){border-inline-end:1px solid var(--line)}
.employee-meta>div:nth-last-child(-n+2){border-block-end:0}
.employee-meta small{display:block;color:var(--text-muted);margin-block-end:5px}
.employee-meta strong{display:block;overflow-wrap:anywhere}

.profile-list-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;text-align:start}
.profile-list-row>div:first-child{min-width:0}
.profile-list-row strong,.profile-list-row small{display:block}
.profile-list-row small{margin-block-start:3px;color:var(--text-muted)}
.profile-list-row>form,.profile-list-row>.btn{justify-self:end}

/* Dedicated entity forms */
.entity-form-shell{max-width:1180px;margin-inline:auto}
.entity-form-panel{padding:0;overflow:visible}
.entity-form-section{padding:24px;border-block-end:1px solid var(--line)}
.entity-form-section:last-child{border-block-end:0}
.entity-form-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-block-end:18px;text-align:start}
.entity-form-section-header h2{margin:0;font-size:1.1rem}
.entity-form-section-header p{margin:5px 0 0;color:var(--text-muted)}
.entity-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.entity-form-grid .span-2{grid-column:1/-1}
.entity-form-grid label{min-width:0;text-align:start;font-weight:700}
.entity-form-grid label>.form-control,.entity-form-grid label>.form-select,.entity-form-grid label>.phone-input-group{margin-block-start:7px}
.entity-form-actions{display:flex;justify-content:flex-end;gap:10px;padding:20px 24px;background:var(--surface-soft);border-block-start:1px solid var(--line);position:sticky;bottom:0;z-index:5}
html[dir="rtl"] .entity-form-actions{justify-content:flex-start}
.form-error-summary{border:1px solid color-mix(in srgb,#b42318 35%,var(--line));background:color-mix(in srgb,#b42318 7%,var(--surface));border-radius:var(--radius-md);padding:14px 16px;margin-block-end:18px;text-align:start}
.form-error-summary strong{display:block;margin-block-end:4px}
.field-error{display:block;color:#b42318;font-size:.86rem;margin-block-start:5px}
.form-control.is-invalid,.form-select.is-invalid{border-color:#b42318!important;box-shadow:0 0 0 2px color-mix(in srgb,#b42318 12%,transparent)!important}

/* Phone and WhatsApp rows */
.contact-pair{display:grid;grid-template-columns:1fr;gap:12px}
.same-contact-row{display:flex;align-items:center;gap:9px;font-weight:600!important;margin-block-start:8px}
.same-contact-row input{inline-size:18px;block-size:18px}
.phone-input-group{display:grid!important;grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);gap:0;align-items:stretch}
html[dir="rtl"] .phone-input-group{grid-template-columns:minmax(0,1fr) minmax(190px,.42fr)}
html[dir="rtl"] .phone-input-group>[data-country-code]{order:2}
html[dir="rtl"] .phone-input-group>[data-phone-number]{order:1}
.phone-input-group .custom-select-trigger,.phone-input-group .form-control{height:var(--input-h,46px)}

@media(max-width:767.98px){
 .info-grid{grid-template-columns:1fr}
 .info-item,.info-item:nth-child(3n){border-inline-end:0;border-block-end:1px solid var(--line)}
 .info-item:last-child{border-block-end:0}
 .employee-meta{grid-template-columns:1fr}
 .employee-meta>div:nth-child(odd){border-inline-end:0}
 .employee-meta>div{border-block-end:1px solid var(--line)!important}
 .employee-meta>div:last-child{border-block-end:0!important}
 .entity-form-grid{grid-template-columns:1fr}
 .entity-form-grid .span-2{grid-column:auto}
 .phone-input-group,html[dir="rtl"] .phone-input-group{grid-template-columns:1fr}
 html[dir="rtl"] .phone-input-group>[data-country-code],html[dir="rtl"] .phone-input-group>[data-phone-number]{order:initial}
 .entity-form-actions{position:static;justify-content:stretch}
 .entity-form-actions .btn{flex:1}
}

/* Direction-safe read-only detail grids */
.detail-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;overflow:hidden!important}
.detail-grid>div{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:7px!important;min-width:0!important;padding:18px 20px!important;text-align:start!important;border-inline-end:1px solid var(--line)!important;border-block-end:1px solid var(--line)!important}
.detail-grid>div:nth-child(3n){border-inline-end:0!important}
.detail-grid>div:nth-last-child(-n+3){border-block-end:0!important}
.detail-grid>div>span{display:block!important;color:var(--text-muted)!important;font-weight:700!important;line-height:1.25!important;text-align:start!important}
.detail-grid>div>strong{display:block!important;min-width:0!important;font-weight:700!important;line-height:1.35!important;text-align:start!important;overflow-wrap:anywhere!important;unicode-bidi:plaintext!important}
@media(max-width:900px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.detail-grid>div:nth-child(3n){border-inline-end:1px solid var(--line)!important}.detail-grid>div:nth-child(2n){border-inline-end:0!important}.detail-grid>div:nth-last-child(-n+3){border-block-end:1px solid var(--line)!important}.detail-grid>div:nth-last-child(-n+2){border-block-end:0!important}}
@media(max-width:600px){.detail-grid{grid-template-columns:1fr!important}.detail-grid>div,.detail-grid>div:nth-child(3n),.detail-grid>div:nth-child(2n){border-inline-end:0!important;border-block-end:1px solid var(--line)!important}.detail-grid>div:last-child{border-block-end:0!important}}

/* ======================================================================
   Global bidi + form visual contract v2
   Structural alignment belongs to the component. Text direction belongs
   only to the value rendered inside that component.
   ====================================================================== */
html[dir="ltr"] :where(.app-table th,.app-table td,.info-item,.detail-grid>div,.employee-meta>div,.permission-grid>div,.profile-list-row){text-align:left!important}
html[dir="rtl"] :where(.app-table th,.app-table td,.info-item,.detail-grid>div,.employee-meta>div,.permission-grid>div,.profile-list-row){text-align:right!important}
:where(.app-table th,.app-table td)[data-align="center"]{text-align:center!important}
html[dir="ltr"] :where(.app-table th,.app-table td)[data-align="end"]{text-align:right!important}
html[dir="rtl"] :where(.app-table th,.app-table td)[data-align="end"]{text-align:left!important}

.tc-direction-container{direction:inherit!important}
.tc-bidi-value{unicode-bidi:isolate!important;max-width:100%}
.tc-bidi-value[dir="ltr"],.value-ltr{direction:ltr!important;unicode-bidi:isolate!important}
.tc-bidi-value[dir="rtl"],.value-rtl{direction:rtl!important;unicode-bidi:isolate!important}

/* Never let a technical value move its structural cell/card to the other side. */
html[dir="rtl"] :where(.app-table td,.info-item,.detail-grid>div,.employee-meta>div) :where(.value-ltr,[dir="ltr"]){text-align:inherit!important}
html[dir="ltr"] :where(.app-table td,.info-item,.detail-grid>div,.employee-meta>div) :where(.value-rtl,[dir="rtl"]){text-align:inherit!important}

/* Form hierarchy: labels are quieter; entered values are regular weight. */
.entity-form-grid label,.form-grid label{font-weight:600!important;color:var(--text)!important}
.entity-form-grid label>.form-control,.entity-form-grid label>.form-select,
.form-grid label>.form-control,.form-grid label>.form-select,
.form-control,.app-select-button,.app-select-label{font-weight:400!important}
.entity-form-section-header h2{font-weight:650!important}
.entity-form-section-header p,.field-help{font-weight:400!important}
.same-contact-row{font-weight:500!important}
.form-control::placeholder{font-weight:400!important}

/* A selected option may be emphasized in the popup, but not in the field itself. */
.app-select-button .app-option-text{font-weight:400!important}
.app-select-option.active .app-option-text{font-weight:650!important}

/* v3: structural children inherit the container's physical alignment. */
.tc-direction-container > :where(strong,small,span,b,em,code,div){text-align:inherit!important}
html[dir="ltr"] :where(.permission-table-head>span,.permission-row>div){text-align:left!important}
html[dir="rtl"] :where(.permission-table-head>span,.permission-row>div){text-align:right!important}
html[dir="ltr"] :where(.info-item,.detail-grid>div,.employee-meta>div) > :where(strong,small,span,.info-value){text-align:left!important}
html[dir="rtl"] :where(.info-item,.detail-grid>div,.employee-meta>div) > :where(strong,small,span,.info-value){text-align:right!important}

/* Table cell descendants do not get to redefine the cell's column alignment. */
.app-table th > :where(strong,small,span,div,bdi),
.app-table td > :where(strong,small,span,div,bdi){text-align:inherit!important}

/* Status/action content follows the structural cell edge unless explicitly centred. */
.app-table td .status-badge{vertical-align:middle}
.app-table .row-action-cell,.app-table td.flow-end{text-align:center!important}

/* Custom select disabled state must track the underlying native select immediately. */
.app-select-button:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)!important}

/* ========================================================================
   GLOBAL MIXED-LANGUAGE INFORMATION CONTRACT
   Structural boxes remain aligned to the application direction. Only glyph
   order inside the value is bidi-isolated. Never let an English value move
   an Arabic information cell to the opposite edge (or vice versa).
   ======================================================================== */
.tc-direction-container{direction:inherit!important;text-align:start!important}
.tc-direction-container>.tc-value-box,
.tc-direction-container>.info-value,
.tc-direction-container>strong,
.tc-direction-container>small,
.tc-direction-container>span{display:block;inline-size:100%;direction:inherit!important;text-align:inherit!important}
.tc-bidi-value{display:inline;unicode-bidi:isolate;direction:auto;text-align:inherit!important}
html[dir="ltr"] .tc-direction-container{text-align:left!important}
html[dir="rtl"] .tc-direction-container{text-align:right!important}
html[dir="ltr"] .tc-direction-container>.tc-value-box,
html[dir="ltr"] .tc-direction-container>strong,
html[dir="ltr"] .tc-direction-container>small,
html[dir="ltr"] .tc-direction-container>span{text-align:left!important}
html[dir="rtl"] .tc-direction-container>.tc-value-box,
html[dir="rtl"] .tc-direction-container>strong,
html[dir="rtl"] .tc-direction-container>small,
html[dir="rtl"] .tc-direction-container>span{text-align:right!important}

.company-section+.company-section{margin-top:18px}
.company-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:10px}
.company-section-head h2{font-size:1rem;margin:0}.company-section-head p{margin:4px 0 0;color:var(--muted);font-size:.84rem}
.registration-list{display:grid;gap:10px}
.registration-row{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(170px,1fr) minmax(150px,.8fr) minmax(150px,.8fr);gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.registration-row>div{min-width:0;text-align:start}.registration-row small{display:block;color:var(--muted);font-weight:600;margin-bottom:4px}.registration-row strong{display:block;font-weight:600;overflow-wrap:anywhere}
@media(max-width:900px){.registration-row{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.registration-row{grid-template-columns:1fr}.company-section-head{align-items:flex-start;flex-direction:column}}


/* === Phase 2.14: directional footer + spanning information rows === */
.detail-grid > .span-3{grid-column:1/-1!important}
.info-grid > .span-3{grid-column:1/-1!important}

/* Table footer geometry is physical and mirrored explicitly; text direction stays local. */
.app-table-controlbar-bottom{direction:ltr!important;grid-template-areas:"rows count pager"!important}
.app-table-page-size{grid-area:rows!important;justify-self:start!important;direction:ltr}
.app-table-count{grid-area:count!important;justify-self:center!important;text-align:center!important}
.stage-pagination{grid-area:pager!important;justify-self:end!important;direction:ltr!important}
html[dir="rtl"] .app-table-controlbar-bottom{grid-template-areas:"pager count rows"!important}
html[dir="rtl"] .app-table-page-size{justify-self:end!important;direction:rtl}
html[dir="rtl"] .app-table-count{direction:rtl}
html[dir="rtl"] .stage-pagination{justify-self:start!important}
@media(max-width:760px){
  .app-table-controlbar-bottom{grid-template-columns:1fr auto!important;grid-template-areas:"rows pager" "count count"!important}
  html[dir="rtl"] .app-table-controlbar-bottom{grid-template-areas:"pager rows" "count count"!important}
}


/* ======================================================================
   Phase 2.17 — Unified directory/detail/mobile contract
   ====================================================================== */
.entity-detail-page{max-width:1440px!important;width:100%;margin-inline:auto}
.entity-detail-heading{align-items:flex-start}
.entity-summary-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;padding:22px 24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)}
.entity-avatar-lg{inline-size:76px;block-size:76px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));font-size:1.9rem;font-weight:700;color:var(--accent-strong)}
.entity-summary-copy{min-width:0;text-align:start}.entity-summary-copy h2{margin:0 0 4px;font-size:1.45rem}.entity-summary-copy p{margin:0 0 10px;color:var(--muted)}
.entity-detail-stack{display:grid;gap:16px}.entity-detail-section{padding:0;overflow:hidden}.entity-detail-section>.panel-header{padding:18px 20px;border-block-end:1px solid var(--border);margin:0}.entity-detail-section>.panel-header h2{margin:0;font-size:1rem}.entity-detail-section>.panel-header p{margin-top:4px;font-size:.8rem}
.entity-kv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.entity-kv{min-width:0;padding:16px 18px;border-inline-end:1px solid var(--border);border-block-end:1px solid var(--border);text-align:start}.entity-kv:nth-child(4n){border-inline-end:0}.entity-kv:nth-last-child(-n+4){border-block-end:0}.entity-kv>span{display:block;color:var(--muted);font-size:.72rem;font-weight:600;margin-bottom:6px}.entity-kv>strong{display:block;font-size:.92rem;font-weight:600;overflow-wrap:anywhere;text-align:inherit}
.entity-list{display:flex;flex-direction:column}.entity-list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-block-end:1px solid var(--border);text-align:start}.entity-list-row:last-child{border-block-end:0}.entity-list-row>div{min-width:0}.entity-list-row strong,.entity-list-row small{display:block;text-align:inherit}.entity-list-row small{color:var(--muted);margin-top:3px}
.app-table-shell{width:100%;max-width:100%;min-width:0}.app-table-shell>.table-responsive{width:100%;max-width:100%}.app-table-controlbar{width:100%;box-sizing:border-box}
.table-tool-btn.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent-strong)}
.app-table tr[data-deleted="1"]{opacity:.66;background:color-mix(in srgb,var(--danger) 5%,transparent)}

@media(max-width:1100px){.entity-kv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entity-kv:nth-child(4n){border-inline-end:1px solid var(--border)}.entity-kv:nth-child(2n){border-inline-end:0}.entity-kv:nth-last-child(-n+4){border-block-end:1px solid var(--border)}.entity-kv:nth-last-child(-n+2){border-block-end:0}}
@media(max-width:767.98px){
  html,body{overflow-x:hidden!important}
  .app-main{width:100%!important;min-width:0!important;margin-inline:0!important;padding-top:var(--header-h)!important}
  .page-shell{width:100%!important;max-width:none!important;margin:0!important;padding:12px!important;gap:12px!important;overflow:visible!important}
  .page-heading{width:100%;min-width:0;gap:12px!important;margin:0!important}.page-heading>div:first-child{min-width:0;width:100%}.page-heading h1{font-size:1.65rem!important;overflow-wrap:anywhere}.page-heading p{max-width:100%!important;font-size:.9rem;overflow-wrap:anywhere}
  .page-actions{width:100%!important;display:flex!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-start!important}.page-actions .btn{max-width:100%}
  .panel{width:100%!important;min-width:0!important;border-radius:14px!important}.panel-header{padding:14px!important}.panel-header h2{font-size:1.05rem}
  .entity-summary-card{grid-template-columns:56px minmax(0,1fr);gap:14px;padding:16px}.entity-avatar-lg{inline-size:56px;block-size:56px;border-radius:14px;font-size:1.3rem}.entity-summary-copy h2{font-size:1.2rem}
  .entity-kv-grid{grid-template-columns:1fr}.entity-kv,.entity-kv:nth-child(n){border-inline-end:0!important;border-block-end:1px solid var(--border)!important;padding:14px 16px}.entity-kv:last-child{border-block-end:0!important}
  .entity-list-row{padding:13px 15px;align-items:flex-start}
  .table-responsive{width:100%!important;max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .app-table{width:max-content;min-width:100%}.users-directory-table{min-width:720px!important}
  .app-table-controlbar-top{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:8px!important}.app-table-search{min-width:0!important;width:100%!important}.app-table-tools{display:flex!important;gap:6px!important;flex-wrap:nowrap!important}.table-tool-btn{white-space:nowrap!important}
  .app-table-controlbar-bottom{padding:8px!important;gap:8px!important}.app-table-count{font-size:.74rem!important}
  .stage-pagination{max-width:100%;overflow:hidden}.stage-page-btn{min-width:34px!important}.stage-page-status{padding-inline:8px!important;white-space:nowrap}
}
@media(max-width:520px){.app-table-controlbar-top{grid-template-columns:1fr!important}.app-table-tools{justify-content:flex-start;overflow-x:auto}.app-table-controlbar-bottom{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"rows" "count" "pager"!important}.app-table-page-size,.app-table-count,.stage-pagination{justify-self:stretch!important}.stage-pagination{display:grid!important;grid-template-columns:34px 34px minmax(0,1fr) 34px 34px!important}.stage-page-status{text-align:center}}

/* ======================================================================
   Phase 2.18 — detail/access polish, restore lifecycle, mobile full-width
   ====================================================================== */
.entity-detail-page{max-width:1520px!important}
.entity-detail-page .page-heading{margin-block-end:4px}
.entity-detail-page .page-heading h1{letter-spacing:-.025em}
.entity-detail-page .page-heading p{max-width:760px;color:var(--muted)}
.entity-detail-stack{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;background:transparent!important}
.entity-detail-section{width:100%!important;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:15px!important;box-shadow:var(--shadow-soft)!important;overflow:hidden!important}
.entity-detail-section>.panel-header{background:color-mix(in srgb,var(--surface) 92%,var(--surface-2));padding:18px 20px!important}
.entity-detail-section>.panel-header h2{font-size:1.02rem!important;font-weight:720!important;line-height:1.25}
.entity-detail-section>.panel-header p{font-size:.79rem!important;line-height:1.5;color:var(--muted);margin:4px 0 0!important}
.entity-kv-grid{background:var(--surface)!important}
.entity-kv{display:flex!important;flex-direction:column!important;gap:6px!important;min-height:84px!important;justify-content:center!important}
.entity-kv>span{margin:0!important;font-size:.69rem!important;font-weight:700!important;letter-spacing:.015em;color:var(--muted)!important}
.entity-kv>strong{font-size:.91rem!important;font-weight:580!important;line-height:1.45!important}
.entity-list-row{min-height:66px!important;padding:14px 20px!important;background:var(--surface)!important}
.entity-list-row strong{font-size:.9rem!important;font-weight:650!important;line-height:1.3!important}
.entity-list-row small{font-size:.73rem!important;line-height:1.4!important}
.empty-state{padding:20px!important;color:var(--muted)!important;line-height:1.5!important}

/* Access page: two concise configuration cards + one readable effective table. */
.access-page{max-width:1500px!important}
.access-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.access-card{padding:0!important;overflow:hidden!important}
.access-card>.panel-header{padding:18px 20px!important;border-block-end:1px solid var(--border);align-items:center}
.access-card>.panel-header h2{font-size:1rem!important;margin:0!important;font-weight:720!important}
.access-card>.panel-header p{font-size:.78rem!important;margin:4px 0 0!important;color:var(--muted);line-height:1.45}
.access-empty{min-height:90px;display:flex!important;align-items:center;gap:10px!important;font-size:.82rem}
.access-empty>i{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--surface-2);color:var(--muted)}
.access-effective-panel{padding:0!important;overflow:hidden!important}
.access-effective-panel>.panel-header{padding:18px 20px!important;border-block-end:1px solid var(--border)}
.access-effective-panel>.panel-header h2{font-size:1rem!important;margin:0!important;font-weight:720!important}
.access-effective-panel>.panel-header p{font-size:.78rem!important;margin:4px 0 0!important;color:var(--muted)}
.access-permission-table{display:flex;flex-direction:column;background:var(--surface)}
.access-permission-row{display:grid;grid-template-columns:minmax(240px,1fr) 116px minmax(150px,220px);align-items:center;gap:18px;padding:13px 20px;border-block-end:1px solid var(--border)}
.access-permission-row:last-child{border-block-end:0}
.access-permission-name{min-width:0;text-align:start}.access-permission-name strong{display:block;font-size:.87rem;font-weight:650;line-height:1.3}.access-permission-name small{display:block;margin-top:3px;color:var(--muted);font-size:.66rem}
.access-scope{color:var(--text);font-size:.82rem;text-align:start}
.confirmation-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px!important}
.confirmation-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--accent-strong);font-size:1.05rem}.confirmation-icon.success{background:color-mix(in srgb,var(--success) 13%,var(--surface));color:var(--success)}
.confirmation-panel h2{margin:0 0 4px;font-size:1.05rem}.confirmation-panel p{margin:0;color:var(--muted)}.confirmation-actions{margin:0}

/* Deleted directory rows keep their action menu readable. */
.app-table tr[data-deleted="1"]{opacity:.72}
.app-table tr[data-deleted="1"] .row-action-cell,.app-table tr[data-deleted="1"] .row-action-cell *{opacity:1!important}

@media(max-width:900px){
  .access-overview-grid{grid-template-columns:1fr}
  .access-permission-row{grid-template-columns:minmax(0,1fr) auto}.access-scope{grid-column:1/-1;color:var(--muted);padding-inline-start:0}
}
@media(max-width:767.98px){
  /* Phone pages must never reserve desktop sidebar rail/content width. */
  html,body{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;overflow-x:hidden!important}
  body .app-main,body.sidebar-open .app-main,body.sidebar-docked .app-main,body.sidebar-hidden .app-main{
    position:relative!important;inset:auto!important;transform:none!important;margin:0!important;margin-left:0!important;margin-right:0!important;margin-inline:0!important;padding-inline:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important
  }
  .page-shell,.entity-detail-page,.access-page{width:100%!important;max-width:100%!important;margin:0!important;margin-inline:0!important;padding-inline:12px!important;box-sizing:border-box!important}
  .entity-detail-heading{gap:10px!important}.entity-detail-heading .page-actions{margin:0!important}
  .entity-summary-card{width:100%!important;margin:0!important}
  .access-overview-grid{gap:12px}
  .access-permission-row{padding:12px 14px;gap:10px}
  .confirmation-panel{grid-template-columns:auto minmax(0,1fr);padding:18px!important}.confirmation-actions{grid-column:1/-1;width:100%}.confirmation-actions .btn{width:100%;justify-content:center}
  /* Hidden drawer is completely outside the viewport; no residual edge strip. */
  html[data-sidebar-side="left"] .app-sidebar{transform:translateX(calc(-100% - 8px))!important}
  html[data-sidebar-side="right"] .app-sidebar{transform:translateX(calc(100% + 8px))!important}
  body.sidebar-mobile-open .app-sidebar{transform:translateX(0)!important}
}

/* =====================================================================
   v0.20 — structured detail/access tables + zero-gutter mobile contract
   ===================================================================== */
.detail-table-panel{padding:0!important;overflow:hidden!important;background:var(--surface)!important}
.detail-table-panel>.panel-header{padding:16px 18px!important;border-block-end:1px solid var(--border)!important;background:color-mix(in srgb,var(--surface) 95%,var(--surface-2))!important}
.detail-table-panel>.panel-header h2{margin:0!important;font-size:1rem!important;font-weight:700!important;line-height:1.25!important}
.detail-table-panel>.panel-header p{margin:4px 0 0!important;color:var(--muted)!important;font-size:.78rem!important;line-height:1.45!important}
.detail-table-panel>.table-responsive{margin:0!important;border:0!important;border-radius:0!important}
.detail-table-panel .app-table{margin:0!important;border:0!important;border-radius:0!important;table-layout:fixed!important}
.detail-table-panel .app-table thead th{background:var(--surface-2)!important}
.detail-table-panel .app-table th,.detail-table-panel .app-table td{padding:12px 16px!important;vertical-align:middle!important}
.detail-table-panel .app-table tbody tr:last-child>th,.detail-table-panel .app-table tbody tr:last-child>td{border-block-end:0!important}
.detail-kv-table th{width:18%!important;color:var(--muted)!important;font-size:.7rem!important;font-weight:700!important;text-transform:none!important;letter-spacing:.01em!important;background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))!important}
.detail-kv-table td{width:32%!important;font-size:.88rem!important;font-weight:500!important}
.detail-kv-table td>bdi,.detail-kv-table td>span{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.table-empty-cell{text-align:center!important;color:var(--muted)!important;padding:22px 16px!important;font-weight:500!important}
.detail-summary-card{min-height:112px!important;padding:18px 20px!important;gap:18px!important}
.detail-summary-card .entity-summary-copy h2{font-size:1.28rem!important;margin:0 0 3px!important}
.detail-summary-card .entity-summary-copy p{font-size:.8rem!important;margin:0!important;color:var(--muted)!important}
.access-effective-table{min-width:720px}
.access-effective-table td:first-child strong{font-weight:650!important}.access-effective-table td:first-child small{font-size:.66rem!important;color:var(--muted)!important}
.access-page>.panel{margin:0!important}

/* Keep structural alignment stable. Bidi isolation belongs to the value,
   never to the table cell or the panel geometry. */
.detail-table-panel th,.detail-table-panel td,.detail-table-panel .panel-header{text-align:start!important;direction:inherit!important}
.detail-table-panel bdi[dir="ltr"],.detail-table-panel .ltr-isolate{direction:ltr!important;unicode-bidi:isolate!important}

@media(max-width:991.98px){
  /* Mobile has NO docked rail. Closed means absent from layout and display. */
  body:not(.sidebar-mobile-open) .app-sidebar{display:none!important;visibility:hidden!important;pointer-events:none!important}
  body.sidebar-mobile-open .app-sidebar{display:flex!important;visibility:visible!important;pointer-events:auto!important}
  body .app-main,body.sidebar-open .app-main,body.sidebar-docked .app-main,body.sidebar-hidden .app-main{
    margin:0!important;margin-left:0!important;margin-right:0!important;margin-inline:0!important;
    padding-inline:0!important;inset-inline:0!important;left:0!important;right:0!important;
    width:100vw!important;max-width:100vw!important;min-width:0!important;box-sizing:border-box!important;
  }
  .page-shell,.entity-detail-page,.access-page{
    width:100%!important;max-width:100%!important;margin:0!important;padding:12px!important;
    box-sizing:border-box!important;transform:none!important;
  }
  .entity-detail-heading{width:100%!important;grid-template-columns:1fr!important}
  .entity-detail-heading .page-actions{width:100%!important;justify-content:flex-start!important;flex-wrap:wrap!important}
  html[dir="rtl"] .entity-detail-heading .page-actions{justify-content:flex-start!important}
  .detail-summary-card{width:100%!important;margin:0!important}
}
@media(max-width:680px){
  .detail-kv-table{table-layout:auto!important;min-width:0!important}
  .detail-kv-table tbody,.detail-kv-table tr,.detail-kv-table th,.detail-kv-table td{display:block!important;width:100%!important;max-width:100%!important}
  .detail-kv-table tr{display:grid!important;grid-template-columns:minmax(108px,34%) minmax(0,1fr)!important;border-block-end:1px solid var(--border)!important}
  .detail-kv-table tr>th,.detail-kv-table tr>td{display:block!important;border:0!important;padding:10px 12px!important}
  .detail-kv-table tr>th:nth-of-type(2){grid-column:1}.detail-kv-table tr>td:nth-of-type(2){grid-column:2}
  .detail-kv-table tr>th:nth-of-type(1){grid-column:1}.detail-kv-table tr>td:nth-of-type(1){grid-column:2}
  .detail-kv-table tr{grid-auto-flow:row}
  .detail-table-panel .app-table:not(.detail-kv-table){min-width:620px}
  .detail-table-panel .table-responsive{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
}
@media(max-width:680px){
  .detail-kv-table tr>th:nth-of-type(1){grid-column:1;grid-row:1}
  .detail-kv-table tr>td:nth-of-type(1){grid-column:2;grid-row:1}
  .detail-kv-table tr>th:nth-of-type(2){grid-column:1;grid-row:2}
  .detail-kv-table tr>td:nth-of-type(2){grid-column:2;grid-row:2}
}


/* =====================================================================
   THE CORE — Generic busy / loading / dirty-form contract
   ===================================================================== */
.btn.is-busy,
button.is-busy{
  cursor:wait!important;
  pointer-events:none!important;
}
.app-busy-icon{
  flex:0 0 auto;
}

.core-loading-host{
  position:relative!important;
}
.core-loading-host.is-loading{
  min-height:72px;
}
.core-loading-overlay{
  position:absolute;
  inset:0;
  z-index:25;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:16px;
  border-radius:inherit;
  background:color-mix(in srgb,var(--surface) 82%,transparent);
  backdrop-filter:blur(2px);
  color:var(--muted);
}
.core-loading-overlay.is-compact{
  padding:8px;
}
.core-loader-spinner{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-block;
  border:2px solid color-mix(in srgb,var(--muted) 28%,transparent);
  border-top-color:var(--accent);
  border-radius:50%;
  animation:core-loader-spin .72s linear infinite;
}
.core-loader-label{
  font-size:.76rem;
  font-weight:700;
}

.core-page-loading-overlay{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  padding:20px;
  background:color-mix(in srgb,var(--bg) 62%,transparent);
  backdrop-filter:blur(3px);
}
.core-page-loading-card{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
  color:var(--text);
  font-size:.78rem;
  font-weight:750;
}
body.core-page-busy{
  cursor:wait;
}

@keyframes core-loader-spin{
  to{transform:rotate(360deg)}
}

@media(prefers-reduced-motion:reduce){
  .core-loader-spinner{
    animation-duration:1.8s;
  }
}


/* =====================================================================
   THE CORE — Async Person lookup
   ===================================================================== */
.core-person-lookup{position:relative;min-width:0}
.core-person-lookup-control{position:relative;display:flex;align-items:center}
.core-person-lookup-control>i{position:absolute;inset-inline-start:10px;z-index:2;color:var(--muted);pointer-events:none;font-size:.75rem}
.core-person-lookup-control .form-control{padding-inline-start:30px;padding-inline-end:30px}
.core-person-lookup-clear{position:absolute;inset-inline-end:6px;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--muted);display:inline-grid;place-items:center}
.core-person-lookup-clear:hover{background:var(--surface-2);color:var(--text)}
.core-person-lookup-results{position:absolute;inset-inline:0;top:calc(100% + 5px);z-index:3500;max-height:280px;overflow:auto;padding:5px;border:1px solid var(--border);border-radius:9px;background:var(--surface);box-shadow:var(--shadow-soft)}
.core-person-lookup-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;border-radius:7px;padding:8px 9px;background:transparent;color:var(--text);text-align:start}
.core-person-lookup-result:hover,.core-person-lookup-result:focus-visible{background:var(--surface-2);outline:none}
.core-person-lookup-result-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.core-person-lookup-result-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.core-person-lookup-result-main small,.core-person-lookup-result-contact{color:var(--muted);font-size:.7rem}
.core-person-lookup-result-contact{flex:0 0 auto;text-align:end}
.core-person-lookup-message{padding:10px;color:var(--muted);font-size:.74rem}
.core-person-lookup-selection{margin-top:4px;color:var(--muted);font-size:.68rem}

/* Core entity reference contract */
.core-entity-reference-link{display:inline-block;color:inherit;text-decoration:none;max-width:100%}
.core-entity-reference-link:hover .core-entity-reference-main{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.core-entity-reference{display:inline-flex;flex-direction:column;min-width:0;max-width:100%;line-height:1.25}
.core-entity-reference-main{font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.core-entity-reference-secondary{margin-top:2px;color:var(--muted);font-size:.69rem;font-weight:650}
.technical-id-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.74rem}

/* =====================================================================
   THE CORE — Core password input contract
   ===================================================================== */
.password-input-wrap{position:relative;display:block}
.password-input-wrap>input,
.password-input-wrap>.form-control{
  width:100%;
  padding-right:3rem!important;
  margin-bottom:0!important;
}
.login-card .password-input-wrap{
  margin-bottom:15px;
}
.password-visibility-toggle{
  position:absolute!important;
  right:.45rem!important;
  left:auto!important;
  top:0!important;
  bottom:0!important;
  margin-block:auto!important;
  transform:none!important;
  width:2rem!important;
  height:2rem!important;
  min-width:2rem!important;
  min-height:2rem!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:.45rem!important;
  line-height:1!important;
  z-index:3;
}
.password-visibility-toggle i{
  display:block;
  line-height:1;
  margin:0!important;
}
.password-visibility-toggle:hover{
  color:var(--text)!important;
  background:var(--surface-soft)!important;
}
.password-policy-list{display:grid;gap:.3rem;margin-top:.55rem;color:var(--muted);font-size:.78rem}
.password-policy-rule{display:flex;align-items:center;gap:.45rem}
.password-policy-rule.is-valid{color:var(--success)}
.person-lookup{position:relative}
.person-lookup-results{
  position:absolute;z-index:40;inset-inline:0;top:calc(100% + .3rem);
  max-height:18rem;overflow:auto;background:var(--surface);
  border:1px solid var(--border);border-radius:.65rem;box-shadow:var(--shadow-lg)
}
.person-lookup-option{
  width:100%;border:0;background:transparent;color:inherit;text-align:start;
  padding:.7rem .8rem;display:flex;flex-direction:column;gap:.15rem
}
.person-lookup-option:hover,.person-lookup-option:focus{background:var(--surface-soft);outline:none}
.person-lookup-option small{color:var(--muted)}

/* =====================================================================
   THE CORE — Core login identifier editor
   ===================================================================== */
.login-identifier-list{display:grid;gap:.55rem}
.login-identifier-row{
  display:grid;grid-template-columns:minmax(16rem,1fr) auto;gap:.65rem;
  align-items:center;padding:.55rem .65rem;border:1px solid var(--border);
  border-radius:.65rem;background:var(--surface-soft)
}
.login-identifier-main{
  display:grid;grid-template-columns:minmax(7.25rem,10rem) minmax(12rem,1fr);
  gap:.45rem;align-items:center;min-width:0
}
.login-identifier-options{
  display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap
}
.login-identifier-check{
  display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;
  white-space:nowrap;margin:0
}
.login-identifier-check input{margin:0}
.login-identifier-footer{
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.6rem
}
.login-identifier-footer small{color:var(--muted)}
.icon-button-sm{width:1.8rem;height:1.8rem;font-size:.75rem}
@media(max-width:900px){
  .login-identifier-row{grid-template-columns:1fr}
  .login-identifier-options{justify-content:flex-start}
}
@media(max-width:560px){
  .login-identifier-main{grid-template-columns:1fr}
  .login-identifier-options{gap:.4rem}
}

/* =====================================================================
   THE CORE — Public authentication language selector
   ===================================================================== */
.public-auth-topbar{
  position:absolute;top:1rem;inset-inline-end:1rem;z-index:30
}
.public-language-switcher{position:relative;display:inline-flex}
.public-language-trigger{
  min-height:2.25rem;padding:.35rem .55rem;border:1px solid var(--border);
  border-radius:.6rem;background:var(--surface);color:var(--text);
  display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;
  box-shadow:0 4px 16px rgb(0 0 0 / .08)
}
.public-language-trigger:hover{background:var(--surface-soft)}
.public-language-short{font-weight:700;letter-spacing:.04em}
.public-language-chevron{font-size:.65rem;color:var(--muted)}
.public-language-menu{
  position:absolute;top:calc(100% + .4rem);inset-inline-end:0;
  min-width:12rem;padding:.35rem;z-index:60
}
.public-language-option{
  display:grid;grid-template-columns:1.4rem 1fr auto 1rem;
  gap:.5rem;align-items:center;padding:.55rem .6rem;border-radius:.45rem;
  color:var(--text);text-decoration:none;font-size:.8rem
}
.public-language-option:hover{background:var(--surface-soft);color:var(--text)}
.public-language-option.active{font-weight:650}
.public-language-code{color:var(--muted);font-size:.7rem}
.public-language-check{font-size:.7rem}
@media(max-width:700px){
  .public-auth-topbar{top:.7rem;inset-inline-end:.7rem}
}


/* =====================================================================
   THE CORE — Documentation & Translation Centre
   ===================================================================== */
.documentation-philosophy-grid,.documentation-model-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:0 1rem 1rem}.documentation-philosophy-grid>div,.documentation-model-grid>div{border:1px solid var(--border);border-radius:.75rem;padding:1rem;background:var(--surface-soft)}.documentation-model-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem;padding:0 1rem 1rem}.documentation-model-index a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.6rem;text-decoration:none;color:var(--text);background:var(--surface)}.documentation-model{scroll-margin-top:1rem}.documentation-model-description{padding:0 1rem}.documentation-model h3{font-size:.9rem;margin:1rem 0 .55rem}.documentation-diagram{margin:0 1rem 1rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--surface-soft);overflow:auto;direction:ltr;text-align:left;white-space:pre;font-size:.82rem;line-height:1.5}.documentation-status,.translation-status{display:inline-flex;align-items:center;padding:.2rem .45rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.documentation-status.is-locked,.translation-status.is-translated,.translation-status.is-base{background:var(--success-soft);color:var(--success)}.documentation-status.is-active{background:var(--info-soft);color:var(--info)}.documentation-status.is-foundation,.translation-status.is-same_as_english{background:var(--warning-soft);color:var(--warning)}.documentation-status.is-planned,.translation-status.is-missing,.translation-status.is-extra{background:var(--surface-soft);color:var(--muted)}.technical-list code{font-size:.78rem}.manual-test-result-sheet{margin-top:1rem;display:grid;gap:.5rem;padding:1rem;border:1px dashed var(--border);border-radius:.75rem;background:var(--surface-soft)}.translation-language-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:1rem;flex-wrap:wrap}.translation-language-toolbar .core-form-field{min-width:220px;margin:0}.translation-actions{display:flex;gap:.5rem;flex-wrap:wrap}.translation-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;padding:0 1rem 1rem}.translation-summary>div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:.6rem;padding:.6rem .75rem;background:var(--surface-soft)}.translation-summary span{font-size:.72rem;color:var(--muted)}.translation-summary strong{font-size:.9rem}.translation-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.translation-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:0 1rem 1rem}.translation-editor textarea{min-height:260px;font-family:var(--font-family);line-height:1.5}.translation-cell-preview{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.translation-editor .core-form-actions{padding:0 1rem 1rem}
@media(max-width:800px){.documentation-philosophy-grid,.documentation-model-grid,.translation-editor-grid{grid-template-columns:1fr}.translation-language-toolbar{align-items:stretch}.translation-actions{width:100%}}


/* =====================================================================
   THE CORE — Resizable textarea contract
   ===================================================================== */
/* Normal text areas must retain the browser resize handle. Vertical resize
   is direction-safe and cannot break surrounding responsive grid widths. */
textarea,
textarea.form-control,
.core-form-field textarea,
.entity-form-grid textarea,
.form-grid textarea{
  -webkit-appearance:textarea!important;
  appearance:auto!important;
  resize:vertical!important;
  overflow:auto!important;
  min-height:5.5rem;
  max-width:100%;
}
/* Explicitly fixed technical views may opt out with this class. */
textarea.no-resize{resize:none!important}

/* =====================================================================
   THE CORE — MFA option / public-auth control contract
   ===================================================================== */
.mfa-option-list{
  display:grid;
  gap:.65rem;
  width:100%;
}
.login-card .mfa-option,
.mfa-option{
  position:relative;
  display:grid!important;
  grid-template-columns:1.25rem minmax(0,1fr);
  gap:.75rem;
  align-items:center;
  width:100%;
  margin:0!important;
  padding:.8rem .9rem;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--input-bg);
  color:var(--text);
  cursor:pointer;
  text-align:start;
}
.login-card .mfa-option:hover,
.mfa-option:hover{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));
  background:var(--surface-soft);
}
.login-card .mfa-option>input[type="radio"],
.mfa-option>input[type="radio"]{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none;
}
.mfa-option-indicator{
  width:1.1rem;
  height:1.1rem;
  border:1.5px solid var(--border);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--surface);
  transition:border-color var(--transition),box-shadow var(--transition);
}
.mfa-option-indicator::after{
  content:"";
  width:.5rem;
  height:.5rem;
  border-radius:50%;
  background:var(--accent);
  transform:scale(0);
  transition:transform var(--transition);
}
.mfa-option:has(input[type="radio"]:checked){
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft);
}
.mfa-option:has(input[type="radio"]:checked) .mfa-option-indicator{
  border-color:var(--accent);
}
.mfa-option:has(input[type="radio"]:checked) .mfa-option-indicator::after{
  transform:scale(1);
}
.mfa-option:focus-within{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.mfa-option-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.15rem;
  text-align:start;
}
.mfa-option-copy strong{
  display:block;
  font-size:.82rem;
  line-height:1.25;
  color:var(--text);
}
.mfa-option-copy small{
  display:block;
  font-size:.72rem;
  line-height:1.35;
  color:var(--muted);
}
.login-card .mfa-value-label{
  display:block;
  margin-top:1rem;
}


/* =====================================================================
   THE CORE — User Security & Access Console
   ===================================================================== */
.security-console-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.security-console-summary .core-card{
  min-height:108px;
  padding:16px 18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
}
.security-console-summary .core-card span{
  color:var(--muted);
  font-size:.75rem;
  font-weight:650;
}
.security-console-summary .core-card strong{
  font-size:1.65rem;
  line-height:1;
}
.security-console-subtitle{
  margin:0;
  padding:16px 20px 10px;
  font-size:.86rem;
  color:var(--text);
}
.security-console-effective{
  margin:14px 18px 18px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-soft);
}
.security-console-effective>summary{
  cursor:pointer;
  font-weight:700;
}
.security-console-agent{
  max-width:340px;
  overflow-wrap:anywhere;
  font-size:.75rem;
}
@media(max-width:1000px){
  .security-console-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  .security-console-summary{
    grid-template-columns:1fr;
  }
}


/* =====================================================================
   THE CORE — deterministic textarea resize handle
   ===================================================================== */
.core-textarea-resize-handle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:18px;
  margin:-2px 8px 5px auto;
  padding:0;
  border:1px solid var(--border);
  border-top:0;
  border-radius:0 0 7px 7px;
  background:var(--surface-soft);
  color:var(--muted);
  cursor:ns-resize;
  line-height:1;
}
html[dir="rtl"] .core-textarea-resize-handle{
  margin-inline-start:8px;
  margin-inline-end:auto;
}
.core-textarea-resize-handle:hover,
.core-textarea-resize-handle:focus-visible{
  color:var(--text);
  border-color:var(--accent);
  outline:none;
}
.core-textarea-resize-handle i{
  pointer-events:none;
  font-size:.7rem;
}
body.core-textarea-resizing{
  cursor:ns-resize!important;
  user-select:none!important;
}
textarea:not(.no-resize){
  resize:vertical!important;
}


/* =====================================================================
   THE CORE — Remote ReusableTable adapter
   ===================================================================== */
.remote-table-shell{
  position:relative;
}
.remote-table-shell.is-loading{
  opacity:.72;
  pointer-events:none;
}
.remote-table-controlbar{
  display:flex;
  gap:10px;
  align-items:end;
  justify-content:space-between;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.remote-table-search{
  min-width:min(340px,100%);
  flex:1 1 260px;
}
.remote-table-filters{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:end;
}
.remote-table-filter{
  min-width:150px;
  display:grid;
  gap:4px;
}
.remote-table-filter>span,
.remote-table-page-size>span{
  color:var(--muted);
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.remote-table-footer{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  margin-top:10px;
}
.remote-table-page-size{
  display:flex;
  align-items:center;
  gap:7px;
}
.remote-table-page-size .form-select{
  width:auto;
  min-width:78px;
}
.remote-table-count{
  text-align:center;
  color:var(--muted);
  font-size:.75rem;
}
.remote-table-pagination{
  display:flex;
  justify-content:flex-end;
  gap:4px;
}
.remote-table-pagination .page-link{
  min-width:30px;
  height:30px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface);
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.remote-table-pagination .page-link.active{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-contrast,#fff);
}
.remote-table-pagination .page-link:disabled{
  opacity:.4;
  cursor:not-allowed;
}
@media(max-width:720px){
  .remote-table-footer{
    grid-template-columns:1fr;
  }
  .remote-table-count{
    text-align:start;
  }
  .remote-table-pagination{
    justify-content:flex-start;
  }
}

/* =====================================================================
   THE CORE — Living Road Map
   ===================================================================== */
.roadmap-status-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  padding:0 18px 18px;
}
.roadmap-status-grid>div{
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-soft);
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.roadmap-status-grid strong{
  font-size:1.25rem;
}
.documentation-status.is-complete{
  background:var(--success-soft);
  color:var(--success);
}
.documentation-status.is-current{
  background:var(--info-soft);
  color:var(--info);
}
.documentation-status.is-next{
  background:var(--accent-soft);
  color:var(--accent);
}
.roadmap-sequence-diagram{
  margin-bottom:18px;
}
.roadmap-principle-icon{
  margin-inline-end:8px;
  color:var(--success);
}
.roadmap-index a{
  min-height:54px;
}
.roadmap-timeline{
  position:relative;
  display:grid;
  gap:16px;
  margin-top:16px;
  padding-inline-start:40px;
}
.roadmap-timeline::before{
  content:"";
  position:absolute;
  inset-block:0;
  inset-inline-start:17px;
  width:2px;
  background:var(--border);
}
.roadmap-milestone{
  position:relative;
  scroll-margin-top:18px;
}
.roadmap-marker{
  position:absolute;
  inset-inline-start:-40px;
  top:18px;
  width:34px;
  height:34px;
  border-radius:50%;
  border:2px solid var(--surface);
  background:var(--accent);
  color:var(--accent-contrast,#fff);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.72rem;
  font-weight:800;
  box-shadow:0 0 0 2px var(--border);
}
.roadmap-deliverables{
  padding:0 20px 8px;
}
.roadmap-deliverables h3{
  font-size:.82rem;
  margin:0 0 8px;
}
@media(max-width:850px){
  .roadmap-status-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:540px){
  .roadmap-status-grid{
    grid-template-columns:1fr;
  }
  .roadmap-timeline{
    padding-inline-start:28px;
  }
  .roadmap-marker{
    inset-inline-start:-31px;
    width:28px;
    height:28px;
  }
}


/* =====================================================================
   THE CORE — Security administration foundation
   ===================================================================== */
.security-admin-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.security-admin-summary .core-card{
  padding:16px 18px;
  min-height:100px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}
.security-admin-summary .core-card span{
  color:var(--muted);
  font-size:.75rem;
  font-weight:650;
}
.security-admin-summary .core-card strong{
  font-size:1.3rem;
}
.security-permission-group .panel-header{
  align-items:center;
}
.security-module-select-all{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
}
.security-module-select-all input,
.security-permission-check input{
  width:1rem;
  height:1rem;
  accent-color:var(--accent);
}
.security-permission-checks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:14px 18px 18px;
}
.security-permission-check{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:9px;
  align-items:start;
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  background:var(--surface-soft);
  cursor:pointer;
}
.security-permission-check:hover{
  border-color:var(--accent);
}
.security-permission-check strong,
.security-permission-check small{
  display:block;
  overflow-wrap:anywhere;
}
.security-permission-check strong{
  font-size:.76rem;
  margin-bottom:3px;
}
.security-permission-check small{
  color:var(--muted);
  line-height:1.35;
}
@media(max-width:900px){
  .security-admin-summary{
    grid-template-columns:1fr;
  }
  .security-permission-checks{
    grid-template-columns:1fr;
  }
}


/* 0.13.3 — textarea height contract: single-line .form-control height must never pin textareas. */
textarea.form-control,
.core-form-field textarea.form-control,
.entity-form-grid textarea.form-control,
.form-grid textarea.form-control{
  height:auto!important;
  min-height:88px!important;
  display:block!important;
  resize:vertical!important;
}
.core-textarea-resizer{
  width:100%;
  min-width:0;
}
.core-textarea-resizer>textarea{
  margin-bottom:0!important;
  border-radius:9px 9px 5px 5px!important;
}
.core-textarea-resize-grip{
  height:22px;
  margin-top:-1px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-top:0;
  border-radius:0 0 8px 8px;
  background:var(--surface-soft);
  color:var(--muted);
  cursor:ns-resize;
  user-select:none;
  touch-action:none;
}
.core-textarea-resize-grip:hover,
.core-textarea-resize-grip:focus-visible{
  color:var(--text);
  border-color:var(--accent);
  outline:none;
}


/* 0.13.3 — themed Allow/Deny override choice */
.security-effect-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:7px;
}
.security-effect-option{
  position:relative;
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-soft);
  cursor:pointer;
}
.security-effect-option:hover,
.security-effect-option:has(input:checked){
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft);
}
.security-effect-option.is-deny:has(input:checked){
  border-color:var(--danger);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent);
}
.security-effect-option input{
  width:17px;
  height:17px;
  margin-top:2px;
  accent-color:var(--accent);
}
.security-effect-option.is-deny input{accent-color:var(--danger)}
.security-effect-option strong,
.security-effect-option small{
  display:block;
}
.security-effect-option small{
  color:var(--muted);
  margin-top:3px;
  line-height:1.35;
}
@media(max-width:640px){
  .security-effect-options{grid-template-columns:1fr}
}


/* ======================================================================
   0.13.4 — Security administration UX polish
   ====================================================================== */

/* Core owns textarea resizing. Hide the browser-native bottom-corner handle. */
textarea.form-control,
.core-form-field textarea.form-control,
.entity-form-grid textarea.form-control,
.form-grid textarea.form-control{
  resize:none!important;
}

/* Searchable themed selects retain the existing select component geometry. */
.app-select-search-wrap{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.app-select-search-wrap>i{
  color:var(--muted);
  flex:0 0 auto;
}
.app-select-search{
  width:100%;
  min-width:0;
  height:34px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--input-bg);
  color:var(--text);
  padding:6px 9px;
  outline:none;
}
.app-select-search:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft);
}
.app-select-options-host{
  max-height:290px;
  overflow-y:auto;
  overflow-x:hidden;
}
.app-select-search-empty{
  padding:14px 12px;
  color:var(--muted);
  font-size:.82rem;
  text-align:center;
}

/* Custom-select validation highlights the visible control, not the hidden select. */
.app-select.is-invalid .app-select-button{
  border-color:var(--danger)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent)!important;
}

/* Non-destructive Profile permission search: existing cards/groups remain intact. */
.security-permission-search-panel{
  padding:12px 16px;
}
.security-permission-searchbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
}
.security-permission-searchbar>label{
  flex:1;
  min-width:0;
  font-weight:600;
}
.security-permission-searchbar>label>span{
  display:block;
  margin-bottom:6px;
}
.security-permission-search-input{
  position:relative;
  display:flex;
  align-items:center;
}
.security-permission-search-input>i{
  position:absolute;
  inset-inline-start:11px;
  color:var(--muted);
  z-index:1;
}
.security-permission-search-input>.form-control{
  padding-inline-start:34px;
  padding-inline-end:38px;
}
.security-permission-search-input>.icon-button{
  position:absolute;
  inset-inline-end:4px;
  width:30px;
  height:30px;
  min-height:30px;
}
.security-permission-dependency-summary{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid color-mix(in srgb,var(--warning) 42%,var(--border));
  border-radius:9px;
  background:color-mix(in srgb,var(--warning) 8%,var(--surface));
  font-size:.82rem;
}
.security-permission-dependency-summary strong{
  display:block;
  margin-bottom:5px;
}
.security-permission-dependency-summary ul{
  margin:0;
  padding-inline-start:20px;
}
.security-permission-dependency-note{
  margin-top:6px!important;
  color:var(--warning)!important;
}
.security-permission-check.has-missing-dependency{
  border-color:color-mix(in srgb,var(--warning) 65%,var(--border));
  background:color-mix(in srgb,var(--warning) 5%,var(--surface-soft));
}
[data-permission-card][hidden],
[data-permission-group][hidden]{
  display:none!important;
}

@media(max-width:640px){
  .security-permission-searchbar{
    align-items:stretch;
    flex-direction:column;
  }
}


/* ======================================================================
   0.13.5 — global JS containment hotfix
   ====================================================================== */

/* Search for User override permissions is page-local; shared custom-select
   bootstrap remains the known-good 0.13.3 implementation. */
.security-override-permission-search{
  position:relative;
  display:flex;
  align-items:center;
  margin:7px 0 8px;
}
.security-override-permission-search>i{
  position:absolute;
  inset-inline-start:11px;
  color:var(--muted);
  pointer-events:none;
  z-index:1;
}
.security-override-permission-search>.form-control{
  padding-inline-start:34px;
  padding-inline-end:38px;
}
.security-override-permission-search>.icon-button{
  position:absolute;
  inset-inline-end:4px;
  width:30px;
  height:30px;
  min-height:30px;
}

/* Core grip remains the sole textarea resize affordance. */
textarea.form-control,
.core-form-field textarea.form-control,
.entity-form-grid textarea.form-control,
.form-grid textarea.form-control{
  resize:none!important;
}


/* ======================================================================
   0.13.6 — User override permission searchable combobox
   Page-local behavior; no shared custom-select bootstrap changes.
   ====================================================================== */
.security-permission-combobox{
  position:relative;
  width:100%;
  margin-top:7px;
}
.security-permission-combobox-input{
  width:100%;
  padding-inline-start:38px!important;
  padding-inline-end:38px!important;
  cursor:text;
}
.security-permission-combobox-search-icon,
.security-permission-combobox-chevron{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  pointer-events:none;
  z-index:2;
}
.security-permission-combobox-search-icon{
  inset-inline-start:13px;
}
.security-permission-combobox-chevron{
  inset-inline-end:14px;
}
.security-permission-combobox.is-invalid .security-permission-combobox-input{
  border-color:var(--danger)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent)!important;
}
.security-permission-combobox-menu{
  position:absolute;
  z-index:2200;
  top:calc(100% + 5px);
  inset-inline:0;
  max-height:320px;
  overflow-y:auto;
  overflow-x:hidden;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  box-shadow:var(--shadow-lg);
  padding:5px;
}
.security-permission-combobox-option{
  width:100%;
  display:block;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  text-align:start;
  padding:9px 10px;
  cursor:pointer;
}
.security-permission-combobox-option:hover,
.security-permission-combobox-option:focus-visible{
  background:var(--accent-soft);
  outline:none;
}
.security-permission-combobox-option strong,
.security-permission-combobox-option small{
  display:block;
  text-align:inherit;
}
.security-permission-combobox-option strong{
  font-size:.82rem;
}
.security-permission-combobox-option small{
  margin-top:3px;
  color:var(--muted);
  font-size:.75rem;
}
.security-permission-combobox-option[hidden]{
  display:none!important;
}
.security-permission-combobox-empty{
  padding:14px 10px;
  color:var(--muted);
  text-align:center;
  font-size:.8rem;
}


/* ======================================================================
   0.13.7 — Permission lookup consistency + RemoteTable convergence
   ====================================================================== */

/* Override Permission uses the same search-result geometry as User Create.
   Focus opens the complete permission list; typing filters it in place. */
.permission-lookup{
  position:relative;
  min-width:0;
  margin-top:7px;
}
.permission-lookup-control{
  position:relative;
  display:flex;
  align-items:center;
}
.permission-lookup-control>i.fa-magnifying-glass{
  position:absolute;
  inset-inline-start:11px;
  z-index:2;
  color:var(--muted);
  pointer-events:none;
}
.permission-lookup-control>.form-control{
  padding-inline-start:34px!important;
  padding-inline-end:34px!important;
  margin:0!important;
}
.permission-lookup-chevron{
  position:absolute;
  inset-inline-end:12px;
  color:var(--muted);
  pointer-events:none;
}
.permission-lookup.is-invalid .permission-lookup-control>.form-control{
  border-color:var(--danger)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent)!important;
}
.permission-lookup-results{
  position:absolute;
  inset-inline:0;
  top:calc(100% + 5px);
  z-index:3500;
  max-height:310px;
  overflow-y:auto;
  overflow-x:hidden;
  padding:5px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  box-shadow:var(--shadow-lg);
}
.permission-lookup-option{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:3px;
  border:0;
  border-radius:7px;
  padding:9px 10px;
  background:transparent;
  color:var(--text);
  text-align:start;
  cursor:pointer;
}
.permission-lookup-option:hover,
.permission-lookup-option:focus-visible{
  background:var(--surface-soft);
  outline:none;
}
.permission-lookup-option strong{
  font-size:.8rem;
  font-weight:700;
}
.permission-lookup-option small{
  color:var(--muted);
  font-size:.72rem;
}
.permission-lookup-option[hidden]{
  display:none!important;
}
.permission-lookup-message{
  padding:11px;
  color:var(--muted);
  font-size:.75rem;
  text-align:center;
}

/* Profile permission search intentionally has no custom clear button and uses
   a text input so Safari does not add its native search-field X either. */
.security-permission-search-input>.form-control{
  padding-inline-end:10px!important;
}

/* RemoteTable is an adapter, not a second table design. Its visible toolbar
   and footer use the exact generic ReusableTable classes and geometry. */
.remote-reusable-table>.remote-table-controlbar{
  margin-bottom:10px!important;
}
.remote-reusable-table>.remote-table-controlbar.sd-table-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex-wrap:wrap!important;
}
.remote-reusable-table .remote-table-filters.sd-table-tools{
  display:flex!important;
  align-items:end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  width:auto!important;
}
.remote-reusable-table [data-remote-table]>.sd-table-footer[hidden]{
  display:none!important;
}
.remote-reusable-table>.remote-table-footer.sd-table-footer{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  gap:10px!important;
  min-height:42px!important;
  margin:0!important;
  padding:8px 2px!important;
  color:var(--muted)!important;
  font-size:.7rem!important;
}
.remote-reusable-table>.remote-table-footer .sd-footer-size{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
}
.remote-reusable-table>.remote-table-footer .sd-footer-size label{
  margin:0!important;
}
.remote-reusable-table>.remote-table-footer .sd-footer-size .app-select,
.remote-reusable-table>.remote-table-footer .sd-footer-size .form-select{
  width:78px!important;
}
.remote-reusable-table>.remote-table-footer .sd-showing-info{
  justify-self:center!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.remote-reusable-table>.remote-table-footer nav{
  justify-self:end!important;
}
.remote-reusable-table>.remote-table-footer .sd-pagination{
  margin:0!important;
}
.remote-reusable-table>.remote-table-footer .sd-pagination .page-link{
  min-width:30px!important;
  text-align:center!important;
}
@media(max-width:800px){
  .remote-reusable-table>.remote-table-footer.sd-table-footer{
    grid-template-columns:1fr auto!important;
  }
  .remote-reusable-table>.remote-table-footer .sd-showing-info{
    grid-column:1/-1!important;
    grid-row:2!important;
    justify-self:start!important;
    text-align:start!important;
  }
}


/* =====================================================================
   THE CORE — User Security console layout polish 0.14.9
   ===================================================================== */
.security-console-block{
  margin:18px;
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  background:var(--surface-soft);
}
.security-console-block+.security-console-block{
  margin-top:0;
}
.security-console-block-body{
  padding:0;
}
.security-console-section-heading{
  min-height:64px;
  padding:16px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--surface-2) 82%,transparent);
}
.security-console-section-heading .security-console-subtitle{
  padding:0;
  margin:0;
}
.security-console-section-heading small{
  display:block;
  margin-top:4px;
  line-height:1.45;
}
.security-console-section-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.security-console-effective{
  margin:18px;
}
.security-console-effective .security-console-block-body{
  padding:0 0 2px;
}
.security-console-effective-host,
.security-console-effective-host.sd-table-component,
.security-console-effective-host .sd-table-component,
.security-console-effective-host .sd-table-wrap,
.security-console-effective-host .sd-data-table{
  width:100%;
  max-width:100%;
}
.security-console-effective-host .sd-table-component{
  display:block;
}
.security-static-table-limit{
  display:flex;
  justify-content:flex-end;
  padding:8px 16px 12px;
  border-top:1px solid var(--border);
  background:var(--surface-soft);
}
@media(max-width:760px){
  .security-console-section-heading{
    flex-direction:column;
    align-items:flex-start;
  }
  .security-console-section-actions{
    width:100%;
    justify-content:flex-start;
  }
}

/* =====================================================================
   THE CORE — User Security generic table convergence 0.14.10
   ===================================================================== */
.security-console-compact-table{
  width:100%;
  min-width:0;
}
.security-console-compact-table .sd-table-wrap{
  border:0;
  border-radius:0;
}
.security-console-compact-table .sd-table-footer{
  padding:9px 14px;
  border-top:1px solid var(--border);
  background:var(--surface-soft);
}
.security-console-compact-table .sd-data-table{
  width:100%;
  min-width:100%;
}
.security-reason-cell{
  display:block;
  max-width:360px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.security-console-effective-host .sd-table-component,
.security-console-effective-host .sd-table-wrap,
.security-console-effective-host .sd-data-table{
  width:100%;
  max-width:none;
}

/* The Core 0.17.0 — Maintenance backup capability/configuration helpers */
.maintenance-capability-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:0 0 14px;
}
.maintenance-capability-item{
  min-width:220px;
  flex:1 1 220px;
  border:1px solid var(--border);
  background:var(--surface-soft);
  border-radius:14px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.maintenance-capability-item>span:first-child{
  color:var(--text-muted,var(--muted));
  font-size:.82rem;
}
.maintenance-capability-item bdi{
  overflow-wrap:anywhere;
  text-align:end;
}
.core-check-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  min-height:42px;
  align-items:center;
}
.core-check-list label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
}

/* Membership & scoped-access administration wizard */
.core-wizard-stepper{display:flex;gap:.45rem;overflow-x:auto;padding:.15rem 0 .65rem;margin-bottom:.75rem}.core-wizard-stepper button{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;border:1px solid var(--border-color,var(--bs-border-color));background:var(--surface-1,var(--bs-body-bg));color:inherit;border-radius:.55rem;padding:.45rem .65rem;font:inherit}.core-wizard-stepper button span{display:inline-grid;place-items:center;min-width:1.55rem;height:1.55rem;border-radius:50%;background:var(--surface-2,var(--bs-tertiary-bg));font-weight:700}.core-wizard-stepper button.active{border-color:var(--accent-color,var(--bs-primary));box-shadow:0 0 0 1px var(--accent-color,var(--bs-primary))}.core-wizard-stepper button:disabled{opacity:.58}.core-wizard-step{min-height:18rem}.core-wizard-actions{position:sticky;bottom:0;z-index:20;background:var(--surface-1,var(--bs-body-bg));border-top:1px solid var(--border-color,var(--bs-border-color));padding-top:.75rem}.core-wizard-actions #wizardStepText{margin-inline:auto}.core-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.55rem}.core-check-row{display:flex;gap:.65rem;align-items:flex-start}.core-check-row>input{margin-top:.3rem}.core-check-row>span{display:grid;gap:.15rem}.core-check-row small{display:block;color:var(--text-muted,var(--bs-secondary-color))}

/* Documentation terminology / model-map */
.documentation-local-nav{display:flex;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem;padding:.5rem;border:1px solid var(--border);border-radius:.75rem;background:var(--surface-soft)}
.documentation-local-nav-item{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border:1px solid transparent;border-radius:.55rem;text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:700}
.documentation-local-nav-item:hover{color:var(--text);background:var(--surface)}
.documentation-local-nav-item.active{color:var(--text);background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm)}
.terminology-layer-grid,.terminology-map-grid,.terminology-difference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding:0 1rem 1rem}
.terminology-layer-grid>div,.terminology-map-card,.terminology-difference-grid>article{border:1px solid var(--border);border-radius:.75rem;background:var(--surface-soft);padding:1rem}
.terminology-layer-grid h3,.terminology-map-card h3{font-size:.95rem;margin:.35rem 0 .45rem}.terminology-layer-grid p,.terminology-difference-grid p{margin:0;color:var(--muted);line-height:1.55}
.terminology-layer-number{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border:1px solid var(--border);border-radius:999px;font-size:.72rem;font-weight:800;background:var(--surface)}
.terminology-map-card{padding:0}.terminology-map-card h3{padding:1rem 1rem 0}.terminology-map-card .terminology-diagram{margin:.75rem 1rem 1rem}
.terminology-versus{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.55rem}.terminology-versus span{font-size:.7rem;text-transform:uppercase;color:var(--muted);font-weight:800}
.terminology-access-matrix .table-responsive{padding:0 1rem 1rem}.terminology-access-matrix table{margin:0}
.terminology-toolbar{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;padding:0 1rem 1rem}.terminology-search-field{flex:1 1 420px;margin:0}.terminology-category-field{flex:0 1 260px;margin:0}.terminology-search-wrap{position:relative}.terminology-search-wrap>i{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.terminology-search-wrap input{padding-left:2.25rem}.terminology-result-count{display:flex;flex-direction:column;justify-content:center;min-width:90px;height:38px}.terminology-result-count strong{font-size:1rem}.terminology-result-count span{font-size:.7rem;color:var(--muted)}
.terminology-glossary{display:grid;gap:.8rem;padding:0 1rem 1rem}.terminology-term{border:1px solid var(--border);border-radius:.8rem;background:var(--surface);overflow:hidden;scroll-margin-top:1rem}.terminology-term[hidden]{display:none!important}.terminology-term-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-soft)}.terminology-term-header h3{margin:.35rem 0 0;font-size:1rem}.terminology-term-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-bottom:1px solid var(--border)}.terminology-term-body>div{padding:.85rem 1rem}.terminology-term-body>div:nth-child(odd){border-right:1px solid var(--border)}.terminology-term-body>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.terminology-term-body h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .35rem}.terminology-term-body p{margin:0;line-height:1.55}.terminology-related{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.65rem 1rem;font-size:.75rem}.terminology-related>span{color:var(--muted);font-weight:700}.terminology-related a{padding:.2rem .4rem;border:1px solid var(--border);border-radius:.45rem;text-decoration:none;color:var(--text);background:var(--surface-soft)}
.terminology-empty{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:2rem;color:var(--muted)}.terminology-model-catalogue{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.65rem;padding:0 1rem 1rem}.terminology-model-catalogue>a{display:flex;align-items:start;justify-content:space-between;gap:.8rem;padding:.8rem;border:1px solid var(--border);border-radius:.7rem;text-decoration:none;color:var(--text);background:var(--surface)}.terminology-model-catalogue>a>div{display:flex;flex-direction:column;gap:.25rem;min-width:0}.terminology-model-catalogue>a span:not(.documentation-status){font-size:.75rem;color:var(--muted);line-height:1.4}
@media(max-width:800px){.terminology-layer-grid,.terminology-map-grid,.terminology-difference-grid,.terminology-term-body{grid-template-columns:1fr}.terminology-term-body>div:nth-child(odd){border-right:0}.terminology-term-body>div{border-bottom:1px solid var(--border)}.terminology-term-body>div:last-child{border-bottom:0}.terminology-toolbar{align-items:stretch}.terminology-category-field{flex:1 1 220px}.terminology-back-top{display:none}.documentation-local-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.documentation-local-nav-item{justify-content:center}}

/* Documentation Test Execution V1 */
.documentation-test-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.65rem;padding:0 1rem 1rem}.documentation-test-summary-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--border);border-radius:.7rem;padding:.75rem .85rem;background:var(--surface-soft)}.documentation-test-summary-item span{font-size:.75rem;color:var(--muted)}.documentation-test-summary-item strong{font-size:1.05rem}.documentation-test-summary-item.is-passed{border-color:color-mix(in srgb,var(--success) 35%,var(--border))}.documentation-test-summary-item.is-failed,.documentation-test-summary-item.is-issue_found{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.documentation-test-summary-item.is-pending,.documentation-test-summary-item.is-blocked,.documentation-test-summary-item.is-retest_required{border-color:color-mix(in srgb,var(--warning) 40%,var(--border))}.documentation-test-header-statuses{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.documentation-status.test-execution-status{text-transform:none;letter-spacing:0}.documentation-status.is-not_tested{background:var(--surface-soft);color:var(--muted)}.documentation-status.is-pending{background:var(--warning-soft);color:var(--warning)}.documentation-status.is-passed{background:var(--success-soft);color:var(--success)}.documentation-status.is-failed,.documentation-status.is-issue_found{background:var(--danger-soft);color:var(--danger)}.documentation-status.is-blocked,.documentation-status.is-retest_required{background:var(--warning-soft);color:var(--warning)}.documentation-section-heading{margin:1rem 1rem .55rem}.documentation-test-procedure{padding:0 1rem}.manual-test-result-sheet.digital{margin:1rem;border-style:solid;padding:0;overflow:hidden}.manual-test-execution-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);background:var(--surface)}.manual-test-execution-heading.compact{align-items:center;border:0;padding:0 0 .75rem;background:transparent}.manual-test-execution-heading h3{margin:.15rem 0 .25rem;font-size:1rem}.manual-test-execution-heading p{margin:0;color:var(--muted);font-size:.8rem}.manual-test-execution-heading.compact>span{display:inline-flex;min-width:1.8rem;height:1.8rem;border-radius:999px;align-items:center;justify-content:center;background:var(--surface-soft);font-weight:700}.documentation-test-current-empty{display:flex;align-items:center;gap:.8rem;padding:1rem;background:var(--surface-soft);border-bottom:1px solid var(--border)}.documentation-test-current-empty>i{font-size:1.1rem;color:var(--muted)}.documentation-test-current-empty>div{display:flex;flex-direction:column;gap:.15rem}.documentation-test-current-empty span{font-size:.78rem;color:var(--muted)}.documentation-test-current-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:1rem;border-bottom:1px solid var(--border);background:var(--surface-soft)}.documentation-test-current-grid>div{display:flex;flex-direction:column;gap:.25rem;min-width:0}.documentation-test-current-grid>div>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.documentation-test-current-grid>div>strong{font-size:.88rem;font-weight:650}.documentation-test-note{white-space:pre-wrap;line-height:1.5;font-size:.85rem}.documentation-test-signoff-form{padding:1rem;border-bottom:1px solid var(--border);background:var(--surface)}.documentation-test-signer{display:flex;align-items:center;gap:.65rem;margin-bottom:1rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.65rem;background:var(--surface-soft)}.documentation-test-signer>i{color:var(--success)}.documentation-test-signer>div{display:flex;flex-direction:column}.documentation-test-signer span{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.documentation-test-signer strong{font-size:.85rem}.documentation-test-signoff-form .form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.8rem}.documentation-test-immutable-note{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.75rem}.documentation-test-readonly{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--border);color:var(--muted);background:var(--surface-soft)}.documentation-test-history{padding:1rem;background:var(--surface)}.documentation-test-history .app-table{min-width:980px}.documentation-test-history-notes{max-width:320px;white-space:pre-wrap}.documentation-test-loading{display:flex;align-items:center;gap:.5rem;padding:1rem;color:var(--muted)}.technical-text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.documentation-test-signoff-form small{display:block;margin-top:.25rem;color:var(--muted)}@media(max-width:760px){.documentation-test-current-grid{grid-template-columns:1fr}.documentation-test-header-statuses{justify-content:flex-start}.manual-test-execution-heading{flex-direction:column}.documentation-test-signoff-form .form-actions{align-items:stretch}.documentation-test-signoff-form .form-actions .btn{width:100%}}


/* ======================================================================
   0.25.1 r2 — reusable searchable structural/entity selects
   Opt-in via data-searchable-select; preserves the normal Core select.
   ====================================================================== */
.app-select-search-wrap{
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  align-items:center;
  gap:8px;
  margin:-5px -5px 5px;
  padding:7px;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.app-select-search-wrap>i{
  position:absolute;
  inset-inline-start:18px;
  color:var(--muted);
  pointer-events:none;
}
.app-select-search{
  width:100%;
  min-height:36px;
  padding:7px 10px;
  padding-inline-start:34px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface);
  color:var(--text);
  outline:none;
}
.app-select-search:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent);
}
.app-select-search-empty{
  padding:14px 10px;
  color:var(--muted);
  text-align:center;
  font-size:.8rem;
}
.app-select-search-empty[hidden],
.app-select-option[hidden]{display:none!important;}


/* ======================================================================
   0.25.1 r2 — Manual Security acceptance fixture presentation
   ====================================================================== */
.documentation-test-fixture{
  margin:18px 0 22px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:14px;
  background:color-mix(in srgb,var(--surface) 92%,var(--accent-soft));
}
.documentation-test-fixture-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
.documentation-test-fixture-grid>div,
.documentation-test-fixture-users,
.documentation-test-fixture-roles{
  min-width:0;
  padding:14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
}
.documentation-test-fixture h4{
  margin:0 0 9px;
  font-size:.9rem;
}
.documentation-test-fixture ul{
  margin:0;
  padding-inline-start:19px;
}
.documentation-test-fixture li+li{margin-top:5px;}
.documentation-test-fixture-users,
.documentation-test-fixture-roles{margin-top:14px;}
.documentation-test-fixture-password{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-top:12px;
  padding:11px 12px;
  border-radius:10px;
  background:var(--surface-soft,var(--background));
}
.documentation-test-fixture-password>span{font-weight:700;}
.documentation-test-fixture-password>code{font-size:.86rem;}
.documentation-test-fixture-password>small{flex-basis:100%;color:var(--muted);}
.documentation-test-fixture-reset-note{
  display:flex;
  gap:9px;
  align-items:flex-start;
  margin-top:14px;
  color:var(--muted);
  font-size:.8rem;
}
.documentation-test-fixture .form-actions{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--border);
}
@media (max-width:900px){
  .documentation-test-fixture-grid{grid-template-columns:1fr;}
}

/* 0.25.1 r2 — named manual Security fixture quick links */
.documentation-test-fixture-user-actions{margin-top:.25rem;font-size:.82rem}
.documentation-test-fixture-user-actions a{font-weight:600;text-decoration:none}
.documentation-test-fixture-grid a{text-decoration:none}
.documentation-test-fixture-grid a:hover,.documentation-test-fixture-user-actions a:hover{text-decoration:underline}

/* =====================================================================
   0.25.1 r6 — Wizard clarity + detail-grid incomplete-row polish
   ===================================================================== */
/* app.css historically used the detail-grid background as a 1px gap color.
   The current contract uses explicit borders and gap:0, so leaving that
   background in place paints phantom theme-colored blocks into unoccupied
   cells of incomplete rows. Keep the empty grid area on the normal surface. */
.detail-grid{background:var(--surface)!important}

.core-wizard-stepper button{
  opacity:1!important;
  color:var(--text)!important;
  background:var(--surface)!important;
  border-color:var(--border)!important;
  font-weight:650!important;
}
.core-wizard-stepper button span{
  color:var(--text)!important;
  background:var(--surface-2)!important;
  border:1px solid color-mix(in srgb,var(--border) 82%,transparent)!important;
}
.core-wizard-stepper button:disabled{
  opacity:1!important;
  color:var(--muted)!important;
  background:color-mix(in srgb,var(--surface) 92%,var(--surface-2))!important;
  border-color:color-mix(in srgb,var(--border) 88%,transparent)!important;
  cursor:not-allowed!important;
}
.core-wizard-stepper button:disabled span{
  color:color-mix(in srgb,var(--text) 80%,var(--muted))!important;
  background:color-mix(in srgb,var(--surface-2) 88%,var(--surface))!important;
}
.core-wizard-stepper button.active{
  color:var(--text)!important;
  background:color-mix(in srgb,var(--accent) 10%,var(--surface))!important;
  border-color:var(--accent)!important;
  box-shadow:0 0 0 1px var(--accent)!important;
}
.core-wizard-stepper button.active span{
  color:var(--text)!important;
  background:color-mix(in srgb,var(--accent) 24%,var(--surface))!important;
  border-color:var(--accent)!important;
}
.core-wizard-stepper button.is-complete:not(.active){
  color:var(--text)!important;
  background:color-mix(in srgb,var(--success,#2f8f64) 8%,var(--surface))!important;
}
.core-wizard-stepper button.is-complete:not(.active) span{
  color:var(--success,#2f8f64)!important;
  background:color-mix(in srgb,var(--success,#2f8f64) 14%,var(--surface))!important;
  border-color:color-mix(in srgb,var(--success,#2f8f64) 45%,var(--border))!important;
}
.core-wizard-context-summary,.core-wizard-scope-preview{
  padding:12px 14px!important;
  border:1px solid var(--border)!important;
  border-radius:10px!important;
  background:color-mix(in srgb,var(--accent) 5%,var(--surface))!important;
}
.core-wizard-context-summary>strong,.core-wizard-scope-preview>strong{
  display:block!important;
  color:var(--text)!important;
  font-size:.9rem!important;
  line-height:1.45!important;
  overflow-wrap:anywhere!important;
}
.core-wizard-context-summary>small,.core-wizard-scope-preview>small{
  min-height:0!important;
  line-height:1.45!important;
}

/* 0.25.2 — Test Library Acceptance Audit V1 */
.documentation-acceptance-coverage{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;padding:0 1rem 1rem}.documentation-coverage-card{border:1px solid var(--border);border-radius:.75rem;background:var(--surface);overflow:hidden}.documentation-coverage-card>summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem;cursor:pointer;list-style:none}.documentation-coverage-card>summary::-webkit-details-marker{display:none}.documentation-coverage-card>summary>div:first-child{display:flex;flex-direction:column;gap:.2rem;min-width:0}.documentation-coverage-card>summary strong{font-size:.9rem}.documentation-coverage-card>summary span{font-size:.73rem;color:var(--muted);line-height:1.4}.documentation-coverage-card.is-accepted{border-color:color-mix(in srgb,var(--success) 35%,var(--border))}.documentation-coverage-card.is-attention{border-color:color-mix(in srgb,var(--danger) 32%,var(--border))}.documentation-coverage-card.is-incomplete{border-color:color-mix(in srgb,var(--warning) 32%,var(--border))}.documentation-coverage-score{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto}.documentation-coverage-score b{font-size:1rem}.documentation-coverage-score small{font-size:.68rem;color:var(--muted);white-space:nowrap}.documentation-coverage-card>ul{list-style:none;margin:0;padding:.7rem .85rem;border-top:1px solid var(--border);background:var(--surface-soft);max-height:320px;overflow:auto}.documentation-coverage-card>ul li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.38rem 0;font-size:.76rem}.documentation-coverage-card>ul li+li{border-top:1px dashed var(--border)}.documentation-coverage-card>ul li>span:first-child{min-width:0}.documentation-coverage-card code{font-size:.68rem;margin-inline-end:.3rem}.documentation-risk{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:.15rem .45rem;font-size:.68rem;font-weight:700}.documentation-risk.is-high{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));color:var(--danger)}.documentation-risk.is-medium{border-color:color-mix(in srgb,var(--warning) 40%,var(--border));color:var(--warning)}.documentation-test-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:0 1rem 1rem}.documentation-test-overview>div,.documentation-test-facts>div,.documentation-start-here,.documentation-test-closeout-grid>div{border:1px solid var(--border);border-radius:.7rem;background:var(--surface-soft);padding:.8rem}.documentation-test-overview span,.documentation-test-facts span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:.3rem}.documentation-test-overview p,.documentation-test-closeout-grid p{margin:0;line-height:1.5;font-size:.82rem}.documentation-test-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;padding:0 1rem 1rem}.documentation-test-facts strong{font-size:.82rem}.documentation-start-here{margin:0 1rem 1rem;background:var(--surface)}.documentation-start-here>div:nth-child(2){display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.25rem 0}.documentation-start-here p{margin:.35rem 0 0;color:var(--muted);font-size:.8rem}.documentation-test-prereqs{padding-top:.1rem}.documentation-test-procedure .app-table{min-width:1120px}.documentation-test-procedure td:nth-child(1){width:54px;font-weight:700}.documentation-test-procedure td:nth-child(2){min-width:310px}.documentation-test-procedure td:nth-child(3){min-width:320px;color:var(--muted)}.documentation-test-procedure td:nth-child(4){min-width:310px}.documentation-test-closeout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:1rem}.documentation-test-closeout-grid h3{margin:0 0 .45rem;font-size:.88rem}.documentation-test-closeout-grid ul{margin:0;padding-inline-start:1.1rem;font-size:.8rem;line-height:1.5}.documentation-test-closeout-grid li+li{margin-top:.25rem}.documentation-test-data-none{border-style:solid}.documentation-test-fixture-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.documentation-fixture-role{display:inline-flex;margin-inline-start:.35rem;padding:.08rem .3rem;border-radius:999px;background:var(--surface);color:var(--muted);font-size:.65rem}.documentation-test-fixture-users td small{display:block;color:var(--muted);margin-top:.12rem}.documentation-test-fixture-outline{margin-top:14px;border:1px solid var(--border);border-radius:.65rem;background:var(--surface-soft);padding:.75rem}.documentation-test-fixture-outline h4{margin-top:0}.documentation-test-fixture-outline pre{margin:0;white-space:pre-wrap;font-size:.76rem;line-height:1.45;color:var(--text)}
@media(max-width:900px){.documentation-test-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.documentation-test-overview,.documentation-test-closeout-grid{grid-template-columns:1fr}.documentation-test-closeout-grid .form-field-span-2{grid-column:auto}}
@media(max-width:620px){.documentation-test-facts{grid-template-columns:1fr}.documentation-acceptance-coverage{grid-template-columns:1fr}.documentation-coverage-card>summary{flex-direction:column}.documentation-coverage-score{align-items:flex-start}}
