/* The prototype's menu buttons as links: every hub.css rule for «nav.side button» repeated for «nav.side a»
   (generated from hub.css — the portal and Control menus are links, the prototype's were buttons). */
nav.side a{display:flex;align-items:center;gap:9px;border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:4px;cursor:pointer;color:var(--ink-2);min-height:36px;width:100%}
nav.side a:hover{background:var(--gray-soft)}
nav.side a[aria-current="page"]{background:var(--signal-soft);color:var(--ink);font-weight:600}
nav.side a.locked{color:var(--ink-3)}
@media (max-width:960px){nav.side a{width:auto;white-space:nowrap}}
nav.side a{min-height:38px;padding:0 12px;border-radius:4px;color:var(--ink-2);font-weight:500;gap:12px}
nav.side a:hover{background:var(--wall);color:var(--ink)}
nav.side a[aria-current="page"]{background:var(--signal-soft);color:var(--signal-text);box-shadow:none;font-weight:600}
nav.side a[aria-current="page"] svg{color:var(--signal)}
nav.side a svg{color:var(--ink-3);width:18px;height:18px;stroke-width:1.9}
nav.side a{text-decoration:none}
/* «New order» stays the solid primary button on every page, its own included (the prototype's navList never marks it
   current — ours does, for screen readers, without the pale current-page look) */
nav.side a.new[aria-current="page"]{background:var(--signal);color:var(--signal-ink);font-weight:500}
nav.side a.new[aria-current="page"]:hover{background:var(--signal-hover);color:var(--signal-ink)}
a.bell{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}
/* our header is one line (the prototype's had the role bar under it); menu counts are red, as in the prototype */
.app{min-height:calc(100vh - 56px)}
nav.side .count{background:var(--bad-fill);color:var(--on-bad)}
/* the old app.css sizes the sign-in card (.card 400 px, padding 24 px) and makes .btn.primary full width; inside the
   prototype's shell a card and a button are the prototype's (hub.css) — the sign-in pages have no .app and keep theirs */
.app .card{padding:0;width:auto;max-width:100%}
.app .btn.primary{width:auto}
/* the sign-in screens (renderAuth): the old app.css .auth / .card rules must not reshape the prototype's auth card */
main.auth{min-height:0;flex-direction:row;align-items:flex-start}
main.auth .card{padding:0;width:auto;max-width:100%}
a.authbrand{color:inherit;text-decoration:none}
.authfoot{margin:0;text-align:center}
/* .seg whose items are links (a tab that is its own page here): the prototype's .seg button rules, for a */
.seg a{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:4px;cursor:pointer;min-height:28px;padding:0 12px;color:var(--ink-2);font-weight:500;font-size:13px;text-decoration:none}
.seg a:hover{background:var(--wall)}
.seg a[aria-pressed="true"],.seg a[aria-current="page"],.seg a[aria-current="true"]{background:var(--signal);color:var(--signal-ink);box-shadow:none}
/* the Launch · Beta group's items (the prototype's .subnav buttons) wrap on two lines in the side menu, as there */
@media (min-width:961px){nav.side a.subnav{white-space:normal;line-height:1.3}}
/* every server-drawn dialog box (.pmodal / .flagmodal / .fmodal / .pmconfirm → .pdlg with .dh, .mb, .mf; the box is
   at most 88vh): the title and the buttons stay in view and only the body scrolls, so a long dialog (Weekly report,
   Connect <platform> …) never hides «Close» / «Send» under the fold. A <form> between the box and its body takes part. */
.pdlg:has(>.mf,>form>.mf){display:flex;flex-direction:column}
.pdlg>form:has(>.mb){display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin:0}
.pdlg>.dh,.pdlg>.mf,.pdlg>form>.dh,.pdlg>form>.mf{flex:none}
.pdlg:has(>.mf,>form>.mf)>.mb,.pdlg>form:has(>.mb)>.mb{flex:1 1 auto;min-height:0;overflow:auto}
