/* Client portal: page layout only. Every component is a design-system class from public/duke/styles.css
   (v0.9.0; specimens cards/portal.html and cards/portal-sign.html). Nothing below sets a colour, font,
   radius or shadow. Missing components go to the design-system session, never into this file. */

.page--artifact { min-height: 100vh; }

/* The page column: the specimens' own page layout (.pf-main / .pf-head), which lines up with .signed-bar__inner. */
.cp-main { max-width: var(--container-md); margin: 0 auto; padding: 3rem var(--gutter) 4rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.cp-main.cp-tight { gap: 2rem; }
.cp-main.cp-narrow { max-width: calc(480px + 2 * var(--gutter)); }
.cp-head { display: grid; gap: 1rem; }
.cp-head h1 { margin: 0; text-wrap: balance; }
.cp-block { display: block; }

/* The Lexi logo file sits where the specimen's wordmark sits. */
.cp-logo { display: block; height: 24px; width: auto; }

/* Sign out is a POST form inside the nav: the form adds no box, the button takes the link's look. */
.cp-inline { display: contents; }
button.signed-bar__link { background: none; border: 0; cursor: pointer; }

/* A picker tile is a link here (the system styles it for a button): no underline. */
a.pick-tile { text-decoration: none; }

/* The next-step box's button: the specimen's placement. */
.callout .btn { justify-self: start; margin-top: .5rem; }

/* Forms: a fieldset that disables its fields for view-only staff, with no frame of its own. */
.cp-gap { gap: 1rem; }
fieldset.cp-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 1rem; }
.cp-fieldset .field-row { margin: 0; }
.cp-form-card { display: grid; gap: 1.25rem; }
/* "Your details": the Terms and Privacy links in one row directly under the consent box. */
.cp-consent-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: .75rem 0 0; }

@media screen and (max-width: 767px) {
  .cp-main { padding-top: 2rem; }
  .form-card.cp-form-card { padding: 24px; }
}
