/* Additions to the prototype stylesheet (kani.css stays verbatim). */
[x-cloak]{display:none!important}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:70}
.skip:focus{left:16px}
.app a.sbtn,.app a.btn,.app a.fchip{text-decoration:none}
.app a.sbtn{color:inherit}
.app form{margin:0}
.foot{border-top:1px solid #E2DED3;background:#fff;font-size:13px;color:#55615A;margin-top:auto}
/* Footer pinned to the bottom of short pages: the page is a column, the shell takes the free space. */
.app{display:flex;flex-direction:column}
.app>.shell-m{flex:1 0 auto}
/* Constant-width shell. .shell-m has margin:0 auto + max-width, and inside the flex column that
   makes it shrink-wrap to each page's content width — so the sidebar and content column move
   around between pages. An explicit width anchors it: full width, capped at 1480px, always centered. */
.shell-m{width:100%}
/* Destructive actions (e.g. Delete member) — matches the p-bad/error colour in kani.css. */
.btn-bad{background:#9A0025;color:#fff}
.btn-bad:hover{filter:brightness(.9);color:#fff}
/* kani.css hides horizontal overflow with overflow-x:hidden, which silently turns .app into a
   scroll container and disables position:sticky. `clip` keeps the same visual result but allows
   the sticky sidebar below to work. (Safari <16 ignores `clip`; those browsers just lose the
   sticky sidebar, nothing else.) */
.app{overflow-x:clip}
/* Reserve the scrollbar gutter always: without this, short pages (no scrollbar) and long pages
   (scrollbar) shift the whole layout — including the pinned sidebar — sideways by the scrollbar
   width as you move between pages. */
html{scrollbar-gutter:stable}
/* Sidebar pinned while the page scrolls; a long menu scrolls inside its own box. */
.side{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}
@media (max-width:760px){.side{position:static;max-height:none;overflow:visible}}
.foot .wrap{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.ferr{color:#9A2B1F;font-size:13px;margin-top:4px}
.input.is-bad{border-color:#C0392B}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.empty{padding:28px;text-align:center;color:#55615A}
.pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
@media print{.hdr,.side,.foot,.no-print{display:none!important}.app{background:#fff}}
.btn.is-disabled{background:#fff;color:#9BA29D;border-color:#E2DED3;cursor:not-allowed}
