.portal-page {
  font-family: "Lato", Arial, sans-serif;
  focus-visible-outline: 3px solid #b21e2d;
  focus-visible-outline-offset: 3px; }
  .portal-page .header {
    position: relative; }
  .portal-page .header__menu-toggle, .portal-page .progress-bar {
    display: none; }
  .portal-page .header__nav {
    display: flex;
    position: static;
    transform: none;
    visibility: visible;
    opacity: 1;
    flex-wrap: wrap; }
  .portal-page .portal-shell {
    padding: 72px 24px;
    min-height: 65vh;
    background: var(--color-surface, #f9f9f9); }
  .portal-page .portal-card {
    max-width: 520px;
    margin: 0 auto;
    padding: 36px;
    border: 1px solid var(--border-subtle, #e5e5e5);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow-1);
    overflow-wrap: anywhere; }
    .portal-page .portal-card h1 {
      font-size: 30px;
      line-height: 1.2;
      margin-bottom: 20px; }
    .portal-page .portal-card p, .portal-page .portal-card a {
      margin-bottom: 16px; }
    .portal-page .portal-card a {
      display: inline-block;
      text-decoration: underline;
      text-underline-offset: 3px; }
  .portal-page .portal-form {
    display: grid;
    gap: 18px;
    margin: 24px 0; }
    .portal-page .portal-form button {
      min-height: 48px;
      background: #b21e2d;
      color: white;
      border: 0;
      border-radius: 8px;
      padding: 12px 20px;
      font: inherit;
      font-weight: 700;
      cursor: pointer; }
  .portal-page .portal-field {
    display: grid;
    gap: 6px; }
    .portal-page .portal-field label {
      font-weight: 700; }
    .portal-page .portal-field input {
      width: 100%;
      min-width: 0;
      min-height: 48px;
      padding: 10px 12px;
      border: 1px solid #777;
      border-radius: 6px;
      background: white;
      color: #1a1c1c;
      font: inherit; }
  .portal-page .portal-message:not(:empty) {
    padding: 12px;
    background: #edf6ee;
    border-left: 3px solid #397341; }
    .portal-page .portal-message:not(:empty).is-error {
      background: #fff0f0;
      border-color: #b21e2d; }
  .portal-page .portal-client-name {
    font-weight: 700; }
  .portal-page .portal-workspace {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    min-height: 100vh;
    background: #f6f5f3;
    color: #242629; }
  .portal-page .portal-sidebar, .portal-page .portal-mobile-panel {
    padding: 32px 24px;
    background: #fff;
    overflow-wrap: anywhere; }
    .portal-page .portal-sidebar nav, .portal-page .portal-mobile-panel nav {
      margin-top: 40px; }
    .portal-page .portal-sidebar nav a, .portal-page .portal-mobile-panel nav a {
      display: block;
      padding: 14px 16px;
      border-radius: 8px;
      color: #414449;
      font-weight: 700;
      text-decoration: none;
      border-left: 3px solid transparent; }
      .portal-page .portal-sidebar nav a[aria-current="page"], .portal-page .portal-mobile-panel nav a[aria-current="page"] {
        background: #f9ecee;
        color: #961a28;
        border-left-color: #b21e2d; }
      .portal-page .portal-sidebar nav a:hover, .portal-page .portal-mobile-panel nav a:hover {
        background: #f6f5f3; }
    .portal-page .portal-sidebar hr, .portal-page .portal-mobile-panel hr {
      border: 0;
      border-top: 1px solid #dededb;
      margin: 28px 0; }
  .portal-page .portal-sidebar {
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    align-self: start;
    height: 100vh;
    overflow-y: auto;
    border-right: 1px solid #dededb; }
    .portal-page .portal-sidebar > hr {
      margin-top: auto;
      width: 100%;
      flex-shrink: 0; }
    .portal-page .portal-sidebar > nav {
      margin-bottom: 28px; }
    .portal-page .portal-sidebar > * {
      flex-shrink: 0; }
  .portal-page .portal-home-link {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 0;
    color: #961a28;
    text-decoration: underline;
    text-underline-offset: 3px; }
  .portal-page .portal-brand {
    color: var(--color-primary-bright);
    font-family: Arial, sans-serif;
    font-size: var(--headline-sm-size);
    font-weight: 700;
    letter-spacing: normal;
    margin: 0 0 6px; }
  .portal-page .portal-caption {
    font-size: 13px;
    color: #626469;
    margin: 0 0 6px; }
  .portal-page .portal-account h2 {
    font-size: 16px;
    margin: 0 0 24px; }
  .portal-page .portal-account .portal-account-value {
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 20px; }
  .portal-page .portal-account .portal-form {
    margin-bottom: 0; }
  .portal-page .portal-account button {
    background: #fff;
    color: #961a28;
    border: 1px solid #d3b7bb; }
  .portal-page .portal-mobile-menu {
    display: none; }
  .portal-page .portal-content {
    min-width: 0;
    padding: clamp(32px, 5vw, 80px);
    overflow-wrap: anywhere; }
    .portal-page .portal-content h1 {
      font-size: clamp(32px, 4vw, 52px);
      line-height: 1.15;
      margin: 0 0 36px; }
    .portal-page .portal-content h2 {
      font-size: 20px;
      line-height: 1.35;
      margin: 0 0 16px; }
    .portal-page .portal-content p {
      line-height: 1.7; }
  .portal-page .portal-intro {
    padding: clamp(24px, 3vw, 44px);
    background: #fff;
    border: 1px solid #dededb;
    border-top: 3px solid #b21e2d;
    border-radius: 12px; }
    .portal-page .portal-intro h2 {
      font-size: clamp(23px, 2.5vw, 32px); }
    .portal-page .portal-intro p {
      max-width: 70ch;
      margin: 12px 0 0; }
  .portal-page .portal-guide {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
    gap: 32px;
    margin-top: 40px; }
    .portal-page .portal-guide section {
      border-top: 1px solid #d6d6d3;
      padding-top: 24px; }
    .portal-page .portal-guide p {
      color: #55585d;
      margin: 0; }
  .portal-page .portal-projects, .portal-page .portal-board {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
    gap: 20px;
    margin: 24px 0; }
  .portal-page .portal-board {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start; }
  .portal-page .portal-project-card, .portal-page .portal-task-card, .portal-page .portal-task-detail {
    padding: 24px;
    border: 1px solid #dededb;
    border-radius: 12px;
    background: #fff;
    min-width: 0; }
  .portal-page .portal-project-card a, .portal-page .portal-task-card a, .portal-page .portal-task-detail a, .portal-page .portal-content > a, .portal-page .portal-content > h2 a, .portal-page .portal-table-scroll a {
    color: #961a28;
    text-decoration: underline;
    text-underline-offset: 3px; }
  .portal-page .portal-task-detail {
    margin: 24px 0; }
    .portal-page .portal-task-detail p:last-child {
      margin-bottom: 0; }
    .portal-page .portal-task-detail ul {
      padding-left: 24px; }
    .portal-page .portal-task-detail li + li {
      margin-top: 8px; }
  .portal-page .portal-task-description {
    white-space: pre-wrap;
    overflow-wrap: anywhere; }
  .portal-page .portal-board-column {
    padding: 16px;
    background: #eae9e6;
    border-radius: 12px;
    min-width: 0; }
    .portal-page .portal-board-column > h3 {
      margin: 0 0 20px; }
  .portal-page .portal-task-card {
    padding: 16px;
    margin-bottom: 16px; }
    .portal-page .portal-task-card:last-child {
      margin-bottom: 0; }
    .portal-page .portal-task-card h4 {
      font-size: 18px;
      line-height: 1.4;
      margin: 0 0 16px; }
  .portal-page .portal-facts {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px 16px;
    font-size: 14px;
    line-height: 1.5;
    margin: 20px 0; }
    .portal-page .portal-facts dt {
      color: #55585d; }
    .portal-page .portal-facts dd {
      margin: 0;
      font-weight: 700; }
  .portal-page .portal-statistics {
    padding: 16px;
    background: #eeedeb;
    border-radius: 8px; }
  .portal-page .portal-badge {
    display: inline-block;
    padding: 2px 10px;
    background: #eeedeb;
    border-radius: 6px;
    font-size: 13px; }
  .portal-page .portal-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 24px 0; }
    .portal-page .portal-filter select, .portal-page .portal-filter button {
      min-height: 44px;
      min-width: 0;
      max-width: 100%;
      padding: 8px 12px;
      border: 1px solid #777;
      border-radius: 6px;
      font: inherit;
      background: #fff;
      color: #242629; }
    .portal-page .portal-filter button {
      cursor: pointer; }
  .portal-page .portal-hour-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
    font-weight: 700;
    padding: 16px 0;
    border-top: 2px solid #d6d6d3; }
    .portal-page .portal-hour-totals p {
      margin: 0; }
  .portal-page .portal-table-scroll {
    overflow-x: auto;
    margin: 24px 0;
    border: 1px solid #dededb;
    border-radius: 8px;
    background: #fff; }
    .portal-page .portal-table-scroll table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
      table-layout: fixed;
      min-width: 760px; }
    .portal-page .portal-table-scroll th, .portal-page .portal-table-scroll td {
      text-align: left;
      padding: 16px;
      border-bottom: 1px solid #dededb;
      min-width: 120px; }
    .portal-page .portal-table-scroll thead {
      background: #eeedeb; }

@media (min-width: 701px) and (max-width: 1100px) {
  .portal-page .portal-board {
    grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) {
  .portal-page .portal-workspace {
    display: block; }
  .portal-page .portal-board {
    grid-template-columns: minmax(0, 1fr); }
  .portal-page .portal-sidebar {
    display: none; }
  .portal-page .portal-mobile-menu {
    display: block;
    background: #fff;
    border-bottom: 1px solid #dededb; }
    .portal-page .portal-mobile-menu summary {
      padding: 20px 24px;
      font-weight: 700;
      cursor: pointer; }
  .portal-page .portal-mobile-panel {
    padding-top: 12px; }
    .portal-page .portal-mobile-panel nav {
      margin-top: 24px; }
  .portal-page .portal-content {
    padding: 32px 20px; }
  .portal-page .header {
    flex-wrap: wrap;
    gap: 12px;
    padding: 20px 24px; }
  .portal-page .header__nav {
    width: 100%;
    gap: 12px;
    padding: 0;
    background: transparent;
    flex-direction: row; }
  .portal-page .header__cta {
    display: none; }
  .portal-page .portal-shell {
    padding: 32px 16px; }
  .portal-page .portal-card {
    padding: 24px; } }

/*# sourceMappingURL=portal.css.map */
