/* Ink & Mint: the common visual system, shared by every interactive workspace. */
.app-shell {
  --bs-body-font-family: var(--ui-font-sans);
  --bs-body-color: var(--ui-text);
  --bs-body-color-rgb: 21,43,50;
  --bs-body-bg: var(--ui-canvas);
  --bs-secondary-color: var(--ui-muted);
  --bs-tertiary-color: var(--ui-muted);
  --bs-secondary-bg: var(--ui-surface-raised);
  --bs-tertiary-bg: var(--ui-surface-raised);
  --bs-border-color: var(--ui-border);
  --bs-emphasis-color: var(--ui-text);
  --bs-card-bg: var(--ui-surface);
  font-size: .9rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
[data-bs-theme="dark"] .app-shell { --bs-body-color-rgb: 238,245,250; }
.app-shell :is(h1,h2,h3,.h1,.h2,.h3,.ui-kpi-value,.stats-value) { font-family:var(--ui-font-display); letter-spacing:-.045em; }
.app-shell :is(h2,.h2) { font-weight:650; }
.app-shell :is(.ui-page-title,.ui-object-title,.accounting-header h1) { font-size:clamp(1.75rem,1.45rem + 1vw,2.65rem); font-weight:650; line-height:1.12; letter-spacing:-.055em; }
.app-shell .ui-page-header { margin-bottom:1.75rem; }
.app-shell .ui-page-subtitle { margin-top:.7rem; max-width:68ch; font-size:.9rem; line-height:1.75; color:var(--ui-muted); }
.app-shell .ui-eyebrow { font:700 .67rem/1.5 var(--ui-font-sans); text-transform:uppercase; letter-spacing:.16em; color:var(--ui-accent-link); }
.app-shell .app-content { max-width:1512px; padding:1.8rem clamp(1rem,2.4vw,2.5rem) 3rem; }
.app-shell .app-main { padding-top:0; }
.app-shell .app-main .container-fluid { max-width:1512px; }
.pwt-icon { flex-shrink:0; vertical-align:middle; }
.app-wordmark { gap:.7rem; line-height:1.1; font-family:var(--ui-font-display); }
.app-wordmark-accent { width:36px; height:40px; flex:0 0 36px; border-radius:0; color:var(--ui-accent); background:none; }
.app-wordmark-accent svg { display:block; width:100%; height:100%; overflow:visible; }
.app-brand-type { display:flex; flex-direction:column; font-weight:650; font-size:1rem; letter-spacing:-.045em; }
.app-brand-type .app-wordmark-muted { font-family:var(--ui-font-sans); font-size:.67rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; margin-top:.22rem; color:var(--ui-muted); }
.app-shell-grid { grid-template-columns:264px minmax(0,1fr); }
.app-sidebar { top:12px; margin:12px 0 12px 12px; width:240px; height:calc(100dvh - 24px); border:1px solid var(--ui-border); border-radius:20px; background:var(--ui-surface); box-shadow:0 8px 40px rgba(0,0,0,.025); }
.app-sidebar-header { min-height:92px; border:0; padding:1.15rem 1.15rem .9rem; }
.app-rail-label { display:block; padding:0 .85rem .65rem; font-size:.6rem; font-weight:750; letter-spacing:.16em; text-transform:uppercase; color:var(--ui-muted); }
.app-sidebar-scroll { padding:.6rem .75rem 1rem; scrollbar-width:thin; }
.app-sidebar-list { gap:.3rem; }
.app-sidebar-link { grid-template-columns:24px minmax(0,1fr) 14px; gap:.65rem; min-height:47px; padding:.65rem .8rem; border-radius:12px; font-size:.8rem; font-weight:600; }
.app-sidebar-icon { width:24px; height:24px; border-radius:0; }
.app-sidebar-link.active { color:var(--ui-on-accent); background:var(--ui-accent); font-weight:750; box-shadow:0 4px 12px rgba(var(--ui-accent-rgb),.12); }
.app-sidebar-link.active .app-sidebar-icon { color:inherit; }
.app-sidebar-link.active:hover { color:var(--ui-on-accent); background:var(--ui-accent); }
.app-sidebar-chevron { display:inline-flex; justify-content:center; }
.app-sidebar-subnav { border-left:1px solid color-mix(in srgb,var(--ui-accent) 28%,var(--ui-border)); margin:.35rem 0 .5rem 1.5rem; padding-left:.8rem; }
.app-sidebar-sublink { border-radius:9px; min-height:38px; padding:.45rem .6rem; font-size:.74rem; line-height:1.4; }
.app-sidebar-sublink.active { font-weight:750; background:rgba(var(--ui-accent-rgb),.09); color:var(--ui-accent-link); }
.app-sidebar-footer { gap:.6rem; padding:.9rem .9rem .65rem; border-color:color-mix(in srgb,var(--ui-border) 75%,transparent); }
.app-sidebar-footer-links { gap:.2rem; margin:0; }
.app-sidebar-footer-links a { min-height:38px; gap:.45rem; padding:.35rem .4rem; font-size:.7rem; font-weight:600; }
.app-sidebar-footer-links .pwt-icon { width:16px; height:16px; }
.app-sidebar-utilities { padding:.4rem 0; border-block:1px solid var(--ui-border); }
.app-sidebar-utility { font-size:.7rem; }
.app-sidebar-collapse { min-height:36px; font-size:.66rem; }
.app-account-toggle { padding:.65rem .6rem; border:0; border-radius:12px; background:var(--ui-surface-raised); }
.app-account-initial { color:var(--ui-on-accent); background:var(--ui-accent); border-radius:9px; }
.app-shell--nav-right .app-sidebar { margin:12px 12px 12px 0; border:1px solid var(--ui-border); }
.app-sidebar-collapsed .app-shell-grid { grid-template-columns:96px minmax(0,1fr); }
.app-sidebar-collapsed .app-sidebar { width:72px; }
.app-sidebar-collapsed .app-shell--nav-right .app-shell-grid { grid-template-columns:minmax(0,1fr) 96px; }
.app-sidebar-collapsed :is(.app-sidebar-header,.app-sidebar-scroll,.app-sidebar-footer) { width:100%; max-width:none; }
.app-sidebar-collapsed .app-sidebar-header .app-wordmark-accent { width:34px; height:38px; flex-basis:34px; }
.app-sidebar-collapsed .app-rail-label { display:none; }
.app-sidebar-collapsed .app-sidebar-header { padding-inline:.6rem; }
.app-sidebar-collapsed .app-sidebar-footer { padding-inline:.55rem; }
.app-sidebar-collapsed .app-sidebar-link { padding-inline:.45rem; }
.app-sidebar-collapsed .app-sidebar-footer-links a { justify-content:center; }
.app-context-bar { min-height:76px; display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.8rem clamp(1rem,2.4vw,2.5rem); border-bottom:1px solid color-mix(in srgb,var(--ui-border) 70%,transparent); }
.app-context-identity { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; font-size:.76rem; font-weight:650; }
.app-context-dot { width:6px; height:6px; background:var(--ui-accent); border-radius:50%; }
.app-context-separator,.app-context-game { color:var(--ui-muted); font-weight:500; }
.app-context-actions { display:flex; align-items:center; gap:.6rem; }
.app-context-search { display:flex; gap:.8rem; align-items:center; min-width:200px; min-height:42px; padding:.55rem .8rem; color:var(--ui-muted); background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:11px; text-decoration:none; font-size:.74rem; }
.app-context-search:hover { border-color:var(--ui-accent); color:var(--ui-text); }
.app-context-directory { display:grid; place-items:center; width:42px; height:42px; color:var(--ui-muted); border:1px solid var(--ui-border); border-radius:11px; text-decoration:none; }
.app-context-directory:hover { color:var(--ui-accent-link); border-color:var(--ui-accent); }
.app-shell .breadcrumb { font-size:.72rem; color:var(--ui-muted); margin-bottom:1.5rem; }
.app-shell .breadcrumb a { color:var(--ui-muted); text-decoration:none; }
.app-shell .breadcrumb .active { color:var(--ui-text); }
.app-shell :is(.card,.ui-surface,.accounting-panel,.kpi-card) { border-color:var(--ui-border); background:var(--ui-surface); border-radius:var(--ui-radius); }
.app-shell :is(.ui-surface,.accounting-panel) :is(.ui-surface,.accounting-panel) { border-color:transparent; background:transparent; border-radius:0; }
.app-shell :is(.ui-surface-body,.accounting-panel) { padding:1.4rem; }
.app-shell .card-header { padding:1.1rem 1.35rem; background:transparent; }
.app-shell .card-body { padding:1.35rem; }
.app-shell :is(.btn,.form-control,.form-select,.input-group-text) { border-radius:11px; }
.app-shell .btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:42px; padding:.6rem .95rem; font-size:.78rem; font-weight:750; letter-spacing:-.015em; }
.app-shell .btn-sm { min-height:36px; padding:.4rem .7rem; font-size:.7rem; }
.app-shell .btn-primary { box-shadow:0 4px 12px rgba(var(--ui-accent-rgb),.1); }
.app-shell .btn-outline-secondary { --bs-btn-color:var(--ui-text); --bs-btn-border-color:var(--ui-border); --bs-btn-hover-bg:var(--ui-surface-raised); --bs-btn-hover-color:var(--ui-text); --bs-btn-hover-border-color:var(--ui-muted); }
.app-shell .btn-link { color:var(--ui-accent-link); }
.app-shell :is(.form-control,.form-select) { min-height:44px; padding:.65rem .8rem; color:var(--ui-text); background-color:var(--ui-canvas); border-color:var(--ui-control-border); font-size:.82rem; }
.app-shell :is(.form-control,.form-select):focus { background-color:var(--ui-surface); border-color:var(--ui-accent); box-shadow:0 0 0 3px rgba(var(--ui-accent-rgb),.14); }
.app-shell :is(.form-control,.form-select)::placeholder { color:var(--ui-muted); opacity:1; }
.app-shell .form-label { color:var(--ui-text); font-size:.74rem; font-weight:750; margin-bottom:.5rem; }
.app-shell .form-text { font-size:.72rem; line-height:1.65; color:var(--ui-muted); }
.app-shell .form-check-input { background-color:var(--ui-surface); border-color:var(--ui-muted); }
.app-shell .form-check-input:checked { background-color:var(--ui-accent); border-color:var(--ui-accent); }
.app-shell .input-group > .form-control { min-width:0; }
.app-shell .ui-filter-bar { box-shadow:none; border-radius:16px; background:var(--ui-surface); padding:1.15rem; }
.app-shell .ui-filter-chip { color:var(--ui-accent-link); border:0; background:rgba(var(--ui-accent-rgb),.1); padding:.35rem .65rem; font-size:.69rem; }
.app-shell .ui-table-wrap { border-radius:16px; border-color:var(--ui-border); background:var(--ui-surface); }
.app-shell .table { margin-bottom:0; --bs-table-color:var(--ui-text); --bs-table-border-color:var(--ui-border); --bs-table-striped-bg:color-mix(in srgb,var(--ui-surface-raised) 35%,transparent); --bs-table-hover-bg:rgba(var(--ui-accent-rgb),.045); font-size:.8rem; }
.app-shell .table thead th { padding:1rem; background:color-mix(in srgb,var(--ui-surface-raised) 50%,var(--ui-surface)); font-size:.65rem; font-weight:750; letter-spacing:.065em; text-transform:uppercase; color:var(--ui-muted); border-bottom:1px solid var(--ui-border); }
.app-shell .table td { padding:.9rem 1rem; line-height:1.6; border-color:color-mix(in srgb,var(--ui-border) 70%,transparent); }
.app-shell .table tr:last-child td { border-bottom:0; }
.app-shell .table .btn-sm { min-height:34px; }
.app-shell .badge { font-size:.65rem; font-weight:750; padding:.4em .7em; letter-spacing:.01em; }
.app-shell .ui-view-nav { gap:.3rem; padding:.3rem; border:0; border-radius:13px; background:var(--ui-surface-raised); width:fit-content; max-width:100%; }
.app-shell .ui-view-nav a { min-height:40px; border-radius:10px; padding:.6rem .9rem; font-size:.75rem; }
.app-shell .ui-view-nav a[aria-current="page"] { color:var(--ui-text); background:var(--ui-surface); box-shadow:0 2px 6px rgba(0,0,0,.04); }
.app-shell .nav-tabs { gap:.5rem; border-color:var(--ui-border); }
.app-shell .nav-tabs .nav-link { color:var(--ui-muted); border:0; border-bottom:2px solid transparent; background:transparent; border-radius:0; font-size:.78rem; padding:.8rem 1rem; }
.app-shell .nav-tabs .nav-link.active { color:var(--ui-accent-link); border-bottom-color:var(--ui-accent); }
.app-shell :is(.modal-content,.dropdown-menu,.offcanvas) { color:var(--ui-text); background:var(--ui-surface); border-color:var(--ui-border); border-radius:16px; }
.app-shell .modal-header { padding:1.3rem 1.5rem; border-color:var(--ui-border); }
.app-shell .modal-body { padding:1.5rem; }
.app-shell .modal-footer { border-color:var(--ui-border); }
.app-shell .dropdown-menu { padding:.5rem; box-shadow:var(--ui-shadow-md); }
.app-shell .dropdown-item { color:var(--ui-text); border-radius:8px; font-size:.78rem; padding:.6rem .75rem; }
.app-shell .dropdown-item:is(:hover,:focus) { color:var(--ui-text); background:var(--ui-surface-raised); }
.app-shell .dropdown-item.active { color:var(--ui-on-accent); background:var(--ui-accent); }
.app-shell .list-group-item { color:var(--ui-text); background:transparent; border-color:var(--ui-border); }
.app-shell .pagination { gap:.3rem; }
.app-shell .page-link { border:1px solid var(--ui-border); border-radius:9px; background:var(--ui-surface); color:var(--ui-muted); padding:.5rem .8rem; }
.app-shell .page-item.active .page-link { background:var(--ui-accent); border-color:var(--ui-accent); color:var(--ui-on-accent); }
.app-shell .ui-pagination { padding:1.2rem 0; font-size:.75rem; }
.app-shell :is(.alert,.ui-state) { border-radius:14px; }
.app-shell .alert { font-size:.8rem; line-height:1.7; }
.app-shell .alert-light { background:var(--ui-surface); color:var(--ui-muted); border-color:var(--ui-border); }
.app-shell .ui-selection-bar { background:color-mix(in srgb,var(--ui-accent) 7%,var(--ui-surface)); border-color:color-mix(in srgb,var(--ui-accent) 30%,var(--ui-border)); }
.app-shell .ui-form-group { border-color:var(--ui-border); padding-bottom:1.5rem; margin-bottom:1.5rem; }
.app-shell .ui-form-actions { border-color:var(--ui-border); }
.app-shell .ui-methodology { font-size:.75rem; }
.app-shell .ui-document { max-width:950px; }
.app-shell .app-footer { padding:1.25rem clamp(1rem,2.4vw,2.5rem); border-color:color-mix(in srgb,var(--ui-border) 65%,transparent); }
.app-shell .app-footer .nav-link,.app-shell .app-footer-copy { font-size:.68rem; }
.app-shell .cookie-banner { border-radius:20px; border-color:var(--ui-border); background:var(--ui-surface); box-shadow:var(--ui-shadow-md); }
.app-shell .cookie-banner__title { font-family:var(--ui-font-display); font-size:1.15rem; letter-spacing:-.04em; }
.app-shell .cookie-banner__actions .btn { min-height:42px; }
.app-shell a:focus-visible,.app-shell button:focus-visible,.app-shell summary:focus-visible { outline:3px solid var(--ui-accent); outline-offset:3px; }
.app-public-bar { position:relative; z-index:1030; margin:18px auto 0; width:calc(100% - 48px); max-width:1456px; min-height:76px; border:1px solid var(--ui-border); border-radius:18px; padding:1rem 1.4rem!important; background:var(--ui-surface); }
.app-shell--public .app-main { padding-top:1.6rem; }
.app-shell--public .app-navbar-actions { gap:.5rem; }
.app-shell--public .app-main>.container-sm { max-width:1456px; }
.app-shell--admin .app-navbar--admin { position:relative; margin:16px clamp(1rem,2.4vw,2.5rem) 0; border:1px solid var(--ui-border); border-radius:18px; background:var(--ui-surface); box-shadow:none; }
.app-shell--admin .app-navbar-inner { padding:1rem 1.25rem; }
.app-shell--admin .app-workspace-label { margin-left:.5rem; background:rgba(var(--ui-accent-rgb),.1); border:0; color:var(--ui-accent-link); font-size:.6rem; letter-spacing:.05em; }
.app-shell--admin .app-content { padding-top:1.5rem; }
.app-shell--admin .app-primary-nav .nav-link { border-radius:10px; padding:.6rem .75rem; font-size:.74rem; }
.app-shell--admin .app-primary-nav .nav-link.active { background:rgba(var(--ui-accent-rgb),.1); color:var(--ui-accent-link); }
.directory-page { padding-top:.5rem; }
.directory-hero { display:flex; gap:2rem; align-items:end; justify-content:space-between; margin-bottom:2rem; }
.directory-hero .ui-page-title { font-size:clamp(2.2rem,3.2vw,3.6rem); max-width:15ch; }
.directory-hero .ui-page-subtitle { max-width:50ch; }
.directory-search { display:flex; gap:1rem; align-items:center; padding:1.1rem 1.3rem; margin-bottom:1.6rem; border:1px solid var(--ui-border); border-radius:16px; background:var(--ui-surface); }
.directory-search .pwt-icon { color:var(--ui-accent-link); }
.directory-search-field { flex:1; min-width:0; }
.directory-search .form-control { border:0; padding:.2rem 0; background:transparent; min-height:30px; box-shadow:none; font-size:.94rem; }
.directory-search label { font-size:.67rem; color:var(--ui-muted); margin:0; }
.directory-search-status { color:var(--ui-muted); font-size:.72rem; white-space:nowrap; margin:0; }
.directory-section { display:grid; grid-template-columns:180px minmax(0,1fr); gap:1.75rem; padding:1.7rem 0; border-top:1px solid var(--ui-border); }
.directory-section-heading { display:flex; align-items:start; gap:.75rem; }
.directory-section-number { font:500 .65rem var(--ui-font-display); color:var(--ui-accent-link); padding-top:.45rem; }
.directory-section-heading h2 { font-size:1.1rem; line-height:1.4; margin:.1rem 0; }
.directory-section-heading small { color:var(--ui-muted); font-size:.66rem; }
.directory-pages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; align-items:start; }
.directory-page-link { display:flex; align-items:center; justify-content:space-between; gap:.7rem; min-height:62px; padding:.85rem 1rem; border:1px solid transparent; border-radius:12px; background:var(--ui-surface); color:var(--ui-text); text-decoration:none; font-size:.78rem; }
.directory-page-link:hover { border-color:var(--ui-accent); color:var(--ui-accent-link); background:var(--ui-surface); }
.directory-page-link small { display:block; margin-top:.18rem; color:var(--ui-muted); font-size:.62rem; }
.directory-page-link>.pwt-icon { color:var(--ui-muted); width:16px; }
@media(min-width:1500px) { .directory-pages { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1100px) { .app-context-search { min-width:0; } .directory-section { grid-template-columns:150px minmax(0,1fr); gap:1rem; } }
@media(max-width:767.98px) {
  .app-shell .app-content { padding:1.5rem 1rem 2rem; }
  .app-shell-grid,.app-sidebar-collapsed .app-shell-grid { display:block; }
  .app-mobile-bar { min-height:72px; padding:.75rem 1rem; background:var(--ui-canvas); border-color:var(--ui-border); backdrop-filter:none; }
  .app-mobile-bar .app-wordmark-accent { width:30px; height:34px; flex-basis:30px; }
  .app-mobile-bar .app-brand-type { font-size:.9rem; }
  .app-mobile-bar .app-brand-type .app-wordmark-muted { font-size:.58rem; }
  .app-drawer-toggle { border-radius:10px; gap:.5rem; padding:.55rem .7rem; background:var(--ui-surface); font-size:.73rem; }
  .app-sidebar,.app-sidebar-collapsed .app-sidebar { top:10px; left:10px; margin:0; width:min(calc(100vw - 32px),340px); height:calc(100dvh - 20px); border-radius:18px; }
  .app-shell--nav-right .app-sidebar { right:10px; left:auto; margin:0; }
  .app-sidebar-header,.app-sidebar-collapsed .app-sidebar-header { min-height:90px; padding:1.1rem; }
  .app-sidebar-collapsed .app-rail-label { display:block; }
  .app-sidebar-collapsed :is(.app-sidebar-header,.app-sidebar-scroll,.app-sidebar-footer) { width:100%; max-width:none; }
  .app-sidebar-collapsed .app-sidebar-header .app-wordmark-accent { width:36px; height:40px; flex-basis:36px; }
  .app-sidebar-collapsed .app-sidebar-link { padding-inline:.8rem; }
  .app-sidebar-collapsed .app-sidebar-utilities { grid-template-columns:minmax(0,1fr) minmax(0,.7fr) 38px; }
  .app-sidebar-collapsed .app-sidebar-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .app-sidebar-collapsed .app-sidebar-footer-links a { justify-content:start; }
  .app-context-bar { min-height:57px; padding:.5rem 1rem; }
  .app-context-identity { gap:.45rem; font-size:.67rem; }
  .app-context-search { min-width:0; width:36px; height:36px; min-height:36px; padding:0; justify-content:center; border:0; background:transparent; }
  .app-context-search span { display:none; }
  .app-context-directory { width:36px; height:36px; border:0; }
  .app-context-actions { gap:.1rem; }
  .app-shell :is(.ui-page-title,.ui-object-title,.accounting-header h1) { font-size:1.8rem; }
  .app-shell :is(.ui-surface-body,.accounting-panel,.card-body) { padding:1.1rem; }
  .app-shell .ui-view-nav { width:100%; }
  .app-shell .ui-view-nav a { min-height:44px; font-size:.72rem; }
  .app-shell :is(.btn,.btn-sm,.dropdown-item) { min-height:44px; }
  .app-shell :is(.form-control,.form-select) { font-size:1rem; }
  .app-public-bar { width:calc(100% - 24px); margin-top:12px; padding:.85rem!important; gap:.75rem; border-radius:16px; }
  .app-public-bar .app-wordmark { margin:0; }
  .app-public-bar .app-navbar-actions { flex-wrap:wrap; }
  .app-public-bar .app-brand-type { font-size:.85rem; }
  .app-public-bar .app-brand-type .app-wordmark-muted { font-size:.56rem; }
  .app-public-bar .app-wordmark-accent { width:30px; flex-basis:30px; height:34px; }
  .app-shell--public .app-main { padding-top:1rem; }
  .directory-hero { display:block; margin-bottom:1.5rem; }
  .directory-hero .ui-page-title { font-size:2.5rem; }
  .directory-search { gap:.75rem; padding:1rem; flex-wrap:wrap; }
  .directory-search-status { width:100%; padding-left:2rem; }
  .directory-section { grid-template-columns:minmax(0,1fr); gap:1rem; padding:1.5rem 0; }
  .directory-section-heading { align-items:center; }
  .directory-section-number { padding:0; }
  .directory-section-heading small { margin-left:.4rem; }
  .directory-pages { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-page-link { padding:.8rem; min-height:70px; font-size:.73rem; }
}
@media(max-width:390px) { .directory-pages { grid-template-columns:minmax(0,1fr); } .app-context-game,.app-context-separator { display:none; } }
@media(prefers-reduced-motion:no-preference) {
  .app-shell :is(.btn,.app-sidebar-link,.directory-page-link,.ui-work-card) { transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,box-shadow 160ms ease; }
}
@media print { .app-sidebar,.app-context-bar,.app-mobile-bar,.app-public-bar,.app-footer { display:none!important; } .app-shell-grid { display:block!important; } .app-shell .app-content { padding:0; } }
/* The public header uses one responsive navigation with real destinations. */
.app-public-navigation { order:1; display:flex!important; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:1.4rem; margin-left:auto; }
.app-public-utilities { order:2; margin-left:.5rem; }
.app-public-nav-link { color:var(--ui-muted); text-decoration:none; font-size:.74rem; font-weight:650; }
.app-public-nav-link:hover { color:var(--ui-accent-link); }
.app-public-signin { color:var(--ui-text); padding-left:1rem; border-left:1px solid var(--ui-border); }
.app-public-nav-toggle { display:none; width:42px; height:42px; align-items:center; justify-content:center; color:var(--ui-text); background:var(--ui-canvas); border:1px solid var(--ui-border); border-radius:10px; }
@media(max-width:767.98px) {
  .app-public-bar { justify-content:flex-start; gap:.5rem; }
  .app-public-utilities { order:1; margin-left:auto; }
  .app-public-nav-toggle { display:inline-flex; order:2; }
  .app-public-navigation { order:3; flex:1 0 100%; align-items:stretch; flex-direction:column; gap:.35rem; margin:0; padding-top:.75rem; border-top:1px solid var(--ui-border); }
  .app-public-navigation:not(.show):not(.collapsing) { display:none!important; }
  .app-public-navigation .app-public-nav-link { min-height:44px; display:flex; align-items:center; padding:.45rem .5rem; border:0; }
  .app-public-navigation .btn { width:100%; }
}
.api-document { max-width:1200px!important; }
.api-doc-layout { display:grid; grid-template-columns:170px minmax(0,1fr); gap:2rem; align-items:start; }
.api-doc-index { position:sticky; top:1.5rem; display:grid; gap:.25rem; padding:.5rem 0; }
.api-doc-index a { display:block; border-left:2px solid var(--ui-border); padding:.55rem .9rem; color:var(--ui-muted); text-decoration:none; font-size:.73rem; }
.api-doc-index a:hover { border-color:var(--ui-accent); color:var(--ui-accent-link); }
.api-doc-content { min-width:0; }
.api-doc-section { padding:0 0 2rem; margin:0 0 2rem; border-bottom:1px solid var(--ui-border); scroll-margin-top:1.5rem; }
.api-doc-section .card-body { padding:0!important; }
.api-doc-section h2 { font-size:1.35rem; margin-bottom:1rem; }
.api-doc-section pre { padding:1.25rem!important; border-radius:14px!important; background:var(--ui-surface)!important; color:var(--ui-text)!important; }
.api-doc-section p { font-size:.82rem; line-height:1.8; }
@media(max-width:767.98px) { .api-doc-layout { grid-template-columns:minmax(0,1fr); gap:1.5rem; } .api-doc-index { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); padding:1rem; border-radius:14px; background:var(--ui-surface); } .api-doc-index a { font-size:.68rem; } }
/* Validation state remains stronger than family-specific control styling. */
html .app-shell :is(.form-control,.form-select).is-invalid { border-color:var(--ui-danger); }
html .app-shell :is(.form-control,.form-select).is-invalid:focus { border-color:var(--ui-danger); box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-danger) 18%,transparent); }
html .app-shell :is(.form-control,.form-select).is-valid { border-color:var(--ui-success); }
html .app-shell :is(.form-control,.form-select).is-valid:focus { border-color:var(--ui-success); box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-success) 18%,transparent); }
html .app-shell :is(.form-control,.form-select):disabled { background-color:var(--ui-surface-raised); color:var(--ui-muted); opacity:.7; cursor:not-allowed; }
