
.portal-signout {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-s);
  margin: 0;
}

.portal-whoami {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  overflow-wrap: anywhere;
}

button.portal-control {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-s);
  flex-shrink: 0;
  min-height: var(--tap);
  padding: var(--space-xs) var(--space-s);
  border: 1px solid var(--rule-strong);
  border-radius: 0;
  background: transparent;
  color: var(--chalk);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--step--1);
  letter-spacing: normal;
  line-height: var(--leading-body);
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--ease-out);
}

button.portal-control[hidden] {
  display: none;
}

button.portal-control:hover {
  border-color: var(--chalk);
  text-decoration: none;
}

button.portal-control:not([disabled]):hover,
button.portal-control:not([disabled]):active {
  transform: none;
}

button.portal-control[disabled] {
  background: transparent;
  border: 1px solid var(--rule-strong);
  border-style: dashed;
  color: var(--chalk-quiet);
  cursor: not-allowed;
}

button.portal-control[disabled]:hover {
  border-color: var(--rule-strong);
  text-decoration: none;
}

h1 {
  overflow-wrap: anywhere;
}



@media (max-width: 35rem) {
  .portal-hero {
    padding-bottom: var(--space-m);
  }
}

.portal-hero-account {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin-bottom: var(--space-s);
}

.portal-jump ul {
  list-style: none;
  margin: var(--space-m) 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s) var(--space-m);
  justify-content: var(--align);
}

.portal-jump li {
  margin: 0;
}

.portal-jump a {
  font-size: var(--step--1);
  display: inline-block;
  padding-block: max(0px, calc((var(--tap) - 1lh) / 2));
  margin-block: min(0px, calc((1lh - var(--tap)) / 2));
}


.portal-section + .portal-section {
  border-top: 1px solid var(--rule);
}

.portal-subheading {
  font-size: var(--step-0);
  color: var(--chalk-quiet);
  margin-top: var(--space-l);
  margin-bottom: var(--space-s);
}

.portal-empty {
  color: var(--chalk-quiet);
  max-width: 60ch;
  margin-inline: 0;
}

.portal-alt {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  max-width: 60ch;
  margin-inline: 0;
  margin-top: var(--space-m);
}

p.feedback {
  margin-bottom: var(--space-m);
}

p.feedback:empty,
p.feedback:last-child {
  margin-bottom: 0;
}

.portal-report-body dd,
.portal-request-summary,
.portal-request-receipt,
.portal-log-what,
.portal-document-summary,
.portal-plan-summary {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}



.portal-headline--attention {
  color: var(--alert);
}

.portal-status-site a {
  font-size: var(--step--1);
}

.portal-attention {
  list-style: none;
  margin: var(--space-m) 0;
  padding: var(--space-m);
  max-width: 60ch;
  text-align: left;
  border: 1px solid var(--rule-strong);
  background: var(--panel);
  border-radius: 0 var(--r-m) var(--r-m) 0;
  box-shadow: var(--lift-2), var(--catch);
}

.portal-attention li {
  overflow-wrap: anywhere;
}

.portal-attention li + li {
  margin-top: var(--space-s);
}

.portal-last-change,
.portal-monitors {
  max-width: 60ch;
  margin-inline: 0;
  text-align: left;
}

.portal-last-change-when,
.portal-last-change-what {
  display: block;
}

.portal-last-change-when {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-monitors {
  list-style: none;
  padding: 0;
}

.portal-monitors li {
  border-top: 1px solid var(--rule);
  padding: var(--space-s) 0;
}

.portal-monitor-target {
  display: block;
}

.portal-monitor-state,
.portal-monitor-seen {
  display: inline-block;
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin-right: var(--space-s);
}

.portal-monitor-state {
  border-left: 3px solid transparent;
  padding-left: var(--space-xs);
}

.portal-monitor-state--unwatched {
  border-left-color: var(--chalk);
}

.portal-checked {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin-top: var(--space-m);
}

.portal-recheck-row {
  margin-top: var(--space-s);
}


.portal-intake {
  max-width: 60ch;
  margin-inline: 0;
  text-align: left;
  padding: var(--space-m);
  background: var(--panel);
  border: 1px solid var(--rule);
  border-radius: 0 var(--r-m) var(--r-m) 0;
  box-shadow: var(--lift-1), var(--catch);
}

.portal-next {
  max-width: 60ch;
  margin-inline: 0;
  text-align: left;
  padding-left: var(--space-m);
}

.portal-next li + li {
  margin-top: var(--space-s);
}


.portal-requests,
.portal-log,
.portal-reports,
.portal-documents,
.portal-promises {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-m);
  text-align: left;
}

.portal-request,
.portal-log-entry,
.portal-report,
.portal-document,
.portal-promise {
  border: 1px solid var(--rule);
  background: var(--panel);
  padding: var(--space-m);
  border-radius: 0 var(--r-m) var(--r-m) 0;
  box-shadow: var(--lift-1), var(--catch);
}

.portal-request--filed {
  border-color: var(--rule-strong);
  border-left: 3px solid var(--accent);
}

.portal-request-head,
.portal-document-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-s);
  margin: 0 0 var(--space-s);
}

.portal-request-number {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-request-state {
  font-size: var(--step--1);
  border: 1px solid var(--rule-strong);
  padding: var(--space-xs) var(--space-s);
}

.portal-request-state--put_back {
  color: var(--alert);
  border-color: var(--alert);
}

.portal-request-state--done {
  border-left: 3px solid var(--chalk);
}

.portal-request-summary {
  margin: 0 0 var(--space-s);
}

.portal-request:has(> .portal-request-more) > .portal-request-summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  overflow: hidden;
}

.portal-request:has(> .portal-request-more[open]) > .portal-request-summary {
  display: block;
  -webkit-line-clamp: none;
  overflow: visible;
}

.portal-request-more {
  margin-bottom: var(--space-s);
}

.portal-request-more summary {
  font-size: var(--step--1);
  color: var(--chalk-quiet);
  padding-block: max(0px, calc((var(--tap) - 1lh) / 2));
  cursor: pointer;
}

.portal-request-more summary:hover {
  color: var(--chalk);
}

.portal-request-blurb,
.portal-request-filed,
.portal-request-done {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: 0 0 var(--space-xs);
}

.portal-request-live {
  margin: var(--space-s) 0 0;
}

.portal-request-receipt {
  margin: var(--space-s) 0 0;
  padding-top: var(--space-s);
  border-top: 1px solid var(--rule);
}


.portal-log-when {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: 0 0 var(--space-xs);
}

.portal-log-what {
  margin: 0 0 var(--space-xs);
}

.portal-log-who {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: 0;
}


.portal-report-period {
  font-size: var(--step-1);
  margin: 0 0 var(--space-xs);
}

.portal-report-headline {
  margin: 0 0 var(--space-m);
}

.portal-report-body {
  margin: 0;
}

.portal-report-field {
  border-top: 1px solid var(--rule);
  margin-top: var(--space-m);
  padding-top: var(--space-s);
}

.portal-report-body dt {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: 0 0 var(--space-xs);
}

.portal-report-body dd {
  margin: 0;
}

.portal-report-published {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: var(--space-m) 0 0;
}

@media (max-width: 46rem) {
  .portal-request,
  .portal-log-entry,
  .portal-report,
  .portal-document,
  .portal-promise,
  .portal-intake {
    padding: var(--space-m) var(--space-s);
  }
}


.portal-document-kind {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-document-summary {
  margin: 0 0 var(--space-s);
}

.portal-document-meta {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  margin: 0;
}


.portal-plan-title {
  font-size: var(--step-1);
  margin-bottom: var(--space-xs);
}

.portal-plan-approved,
.portal-plan-note {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
  max-width: 60ch;
  margin-inline: 0;
}

.portal-promise-text {
  display: block;
  margin-bottom: var(--space-xs);
}

.portal-promise-state {
  display: block;
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-promise--met {
  border-left: 3px solid var(--rule-strong);
}

.portal-choice {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  color: var(--chalk);
}

.portal-choice label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  color: var(--chalk);
  font-size: var(--step-0);
}

.portal-choice input[type='radio'] {
  width: auto;
  margin: 0;
  accent-color: var(--accent);
}

.portal-list {
  margin: 0 0 var(--space-m);
  padding-left: 1.2em;
}

.portal-list li {
  margin-bottom: var(--space-xs);
}

.portal-file-name {
  color: var(--chalk);
}


.portal-survey-plan {
  display: block;
  cursor: crosshair;
  border: 1px solid var(--rule);
}

.portal-survey,
.portal-survey-meta,
.portal-survey-mail,
.portal-survey-links {
  max-width: 60ch;
  margin-inline: 0;
}

.portal-survey + .portal-survey {
  margin-top: var(--space-l);
  padding-top: var(--space-l);
  border-top: 1px solid var(--rule);
}

.portal-survey-meta,
.portal-survey-mail {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-readonly {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.portal-readonly :disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.portal-feedback {
  position: fixed;
  right: var(--space-s);
  bottom: var(--space-s);
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  width: min(22rem, calc(100vw - var(--space-m)));
  max-height: min(60vh, 32rem);
  overflow-y: auto;
  padding: var(--space-s);
  border: 1px solid var(--rule);
  background: var(--ink);
}

.portal-feedback-heading {
  margin: 0;
  color: var(--chalk);
  font-family: var(--font-body);
  font-size: var(--step--1);
}

.portal-feedback-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  max-height: 14rem;
  overflow-y: auto;
}

.portal-feedback-item + .portal-feedback-item {
  padding-top: var(--space-xs);
  border-top: 1px solid var(--rule);
}

.portal-feedback-status,
.portal-feedback-empty {
  margin: 0;
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-feedback-said {
  margin: var(--space-xs) 0 0;
  color: var(--chalk);
  font-size: var(--step--1);
}

.portal-feedback-who {
  color: var(--chalk-quiet);
}

.portal-feedback-label {
  color: var(--chalk-quiet);
  font-size: var(--step--1);
}

.portal-feedback textarea {
  width: 100%;
}

@media (max-width: 520px) {
  .portal-feedback {
    right: var(--space-s);
    left: var(--space-s);
    width: auto;
  }
}
