@layer pp.tokens, pp.base, pp.layout, pp.components;
@layer pp.tokens {
  :root {
    --pp-ink: var(--color-text-primary);
    --pp-ink-muted: var(--color-text-secondary);
    --pp-bg: var(--color-bg-page);
    --pp-bg-sunken: var(--color-bg-subtle);
    --pp-line: var(--color-border-decor);
    --pp-line-strong: var(--color-border-control);
    --pp-fill: var(--color-text-primary);
    --pp-fill-hover: var(--color-text-primary);
    --pp-on-fill: var(--color-bg-page);
    --pp-focus: var(--color-border-focus);
    --pp-t-page: var(--type-6);
    --pp-l-page: var(--leading-6);
    --pp-t-section: var(--type-5);
    --pp-l-section: var(--leading-5);
    --pp-t-card: var(--type-4);
    --pp-l-card: var(--leading-4);
    --pp-t-body: var(--type-3);
    --pp-l-body: var(--leading-3);
    --pp-t-meta: var(--type-2);
    --pp-l-meta: var(--leading-2);
    --pp-t-label: var(--type-1);
    --pp-l-label: var(--leading-1);
    --pp-s-section: var(--space-7);
    --pp-s-block: var(--space-5);
    --pp-s-item: var(--space-3);
    --pp-s-tight: var(--space-1);
    --pp-radius: var(--radius-md);
    --pp-radius-pill: var(--radius-full);
    --pp-control: var(--target-min);
    --pp-wrap: var(--page-max-wide);
    --pp-margin: var(--margin-narrow);
  }
  @media (max-width: 719.98px) {
    :root {
      --pp-s-section: var(--space-6);
    }
  }
  @media (min-width: 720px) {
    :root {
      --pp-margin: var(--margin-wide);
    }
  }
}
@layer pp.base {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  html {
    -webkit-text-size-adjust: 100%;
    scroll-padding-block-start: calc(var(--pp-control) + var(--space-5));
    scrollbar-gutter: stable;
  }
  body {
    margin: 0;
    background: var(--pp-bg);
    color: var(--pp-ink);
    font-family: var(--font-base);
    font-size: var(--pp-t-body);
    line-height: var(--pp-l-body);
    word-break: auto-phrase;
    line-break: strict;
    -webkit-font-smoothing: antialiased;
  }
  h1,
  h2,
  h3,
  p,
  ul,
  ol,
  dl,
  dd,
  figure {
    margin: 0;
  }
  ul,
  ol {
    padding: 0;
    list-style: none;
  }
  img {
    display: block;
    max-inline-size: 100%;
    block-size: auto;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
  }
  code {
    font-family:
      ui-monospace,
      "SF Mono",
      Menlo,
      monospace;
  }
  a {
    color: inherit;
    text-decoration-line: underline;
    text-decoration-thickness: var(--border-thin);
    text-underline-offset: 0.2em;
  }
  a:hover {
    text-decoration-thickness: var(--border-thick);
  }
  :focus-visible {
    outline: var(--border-thick) solid var(--pp-focus);
    outline-offset: var(--border-thick);
  }
  [hidden] {
    display: none !important;
  }
  .pp-sr {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .pp-nw {
    white-space: nowrap;
  }
  :root[data-mode=dark] img.pp-photo {
    filter: brightness(0.94);
  }
}
@layer pp.layout {
  .pp-wrap {
    inline-size: 100%;
    max-inline-size: calc(var(--pp-wrap) + 2 * var(--pp-margin));
    margin-inline: auto;
    padding-inline: var(--pp-margin);
  }
  .pp-main {
    padding-block: var(--space-5) var(--pp-s-section);
  }
  .pp-title {
    margin-block-end: var(--pp-s-block);
  }
  .pp-title h1 {
    font-size: var(--pp-t-page);
    line-height: var(--pp-l-page);
    font-weight: 700;
    letter-spacing: -0.01em;
  }
  .pp-section + .pp-section {
    margin-block-start: var(--pp-s-section);
  }
  .pp-section__title {
    margin-block-end: var(--pp-s-item);
    font-size: var(--pp-t-section);
    line-height: var(--pp-l-section);
    font-weight: 700;
  }
  .pp-section__lead {
    max-inline-size: var(--measure);
    margin-block-end: var(--pp-s-item);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-cols {
    display: grid;
    gap: var(--pp-s-section) var(--grid-gutter);
  }
  @media (min-width: 1040px) {
    .pp-cols--3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .pp-cols--2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pp-cols--5-7 {
      grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    }
    .pp-cols > .pp-section + .pp-section {
      margin-block-start: 0;
    }
  }
}
@layer pp.components {
  .pp-skip {
    position: absolute;
    inset-inline-start: var(--space-2);
    inset-block-start: calc(-1 * var(--space-8));
    z-index: var(--z-overlay);
    padding: var(--space-2) var(--space-3);
    background: var(--pp-bg);
  }
  .pp-skip:focus {
    inset-block-start: var(--space-2);
  }
  .pp-header {
    position: sticky;
    inset-block-start: 0;
    z-index: var(--z-sticky);
    background: var(--pp-bg);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-header__bar {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-block-size: calc(var(--pp-control) + var(--space-2));
  }
  .pp-theme {
    margin-inline-start: auto;
  }
  .pp-nav ul {
    display: flex;
    gap: var(--space-4);
  }
  .pp-nav a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--pp-control);
    border-block: var(--border-thick) solid transparent;
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    text-decoration-line: none;
  }
  .pp-nav a:hover {
    color: var(--pp-ink);
  }
  .pp-nav a[aria-current=page] {
    border-block-end-color: var(--pp-ink);
    color: var(--pp-ink);
    font-weight: 700;
  }
  .pp-nav a,
  .pp-tabs [role=tab] {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
  }
  .pp-nav a::after,
  .pp-tabs [role=tab]::after {
    content: attr(data-label);
    block-size: 0;
    overflow: hidden;
    visibility: hidden;
    font-weight: 700;
    pointer-events: none;
    user-select: none;
  }
  .pp-menu {
    display: none;
  }
  .pp-menu > summary {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--pp-control);
    padding-inline: var(--space-3);
    border: var(--border-thin) solid var(--pp-line-strong);
    border-radius: var(--pp-radius);
    list-style: none;
    cursor: pointer;
  }
  .pp-menu > summary::-webkit-details-marker {
    display: none;
  }
  .pp-menu__panel {
    position: absolute;
    inset-inline: 0;
    inset-block-start: 100%;
    padding: var(--space-2) var(--pp-margin) var(--space-4);
    background: var(--pp-bg);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-menu__panel a {
    display: flex;
    align-items: center;
    min-block-size: var(--pp-control);
    border-block-end: var(--border-thin) solid var(--pp-line);
    text-decoration-line: none;
  }
  .pp-menu__panel a[aria-current=page] {
    font-weight: 700;
  }
  @media (max-width: 899.98px) {
    .pp-nav {
      display: none;
    }
    .pp-menu {
      display: block;
    }
  }
  .pp-iconbtn {
    display: inline-grid;
    place-items: center;
    inline-size: var(--pp-control);
    block-size: var(--pp-control);
    padding: 0;
    border: 0;
    border-radius: var(--pp-radius-pill);
    background: none;
    color: var(--pp-ink-muted);
    cursor: pointer;
  }
  .pp-iconbtn:hover {
    background: var(--pp-bg-sunken);
    color: var(--pp-ink);
  }
  .pp-iconbtn svg {
    inline-size: var(--icon-md);
    block-size: var(--icon-md);
  }
  .pp-theme .pp-theme__dark {
    display: none;
  }
  :root[data-mode=dark] .pp-theme .pp-theme__light {
    display: none;
  }
  :root[data-mode=dark] .pp-theme .pp-theme__dark {
    display: block;
  }
  .pp-footer {
    padding-block: var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));
    border-block-start: var(--border-thin) solid var(--pp-line);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    min-block-size: var(--pp-control);
    padding-inline: var(--space-4);
    border: var(--border-thin) solid var(--pp-ink);
    border-radius: var(--pp-radius);
    background: transparent;
    color: var(--pp-ink);
    font-size: var(--pp-t-body);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration-line: none;
    cursor: pointer;
    transition: background-color var(--duration-fast) var(--easing-standard);
  }
  .pp-button:hover {
    background: var(--pp-bg-sunken);
  }
  .pp-button--primary {
    border-color: var(--pp-fill);
    background: var(--pp-fill);
    color: var(--pp-on-fill);
  }
  .pp-button--primary:hover {
    border-color: var(--pp-fill-hover);
    background: var(--pp-fill-hover);
  }
  .pp-button--small {
    padding-inline: var(--space-3);
    font-size: var(--pp-t-meta);
  }
  .pp-button:disabled {
    border-color: var(--pp-line);
    background: var(--pp-bg-sunken);
    color: var(--pp-ink-muted);
    cursor: not-allowed;
  }
  .pp-button svg,
  .pp-ext svg {
    inline-size: var(--icon-sm);
    block-size: var(--icon-sm);
    flex: none;
  }
  .pp-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
  }
  .pp-ext {
    display: inline-flex;
    align-items: center;
    gap: 0.15em;
    margin-inline-start: 0.4em;
    color: var(--pp-ink-muted);
    font-size: 0.85em;
    white-space: nowrap;
  }
  .pp-profile {
    display: grid;
    gap: var(--pp-s-block);
    align-items: center;
    margin-block-end: var(--pp-s-section);
  }
  @media (min-width: 720px) {
    .pp-profile {
      grid-template-columns: auto minmax(0, 1fr);
      gap: var(--space-6);
    }
  }
  .pp-avatar {
    inline-size: calc(var(--space-8) + var(--space-5));
    block-size: calc(var(--space-8) + var(--space-5));
    border-radius: var(--pp-radius-pill);
    object-fit: cover;
  }
  .pp-profile__lead {
    font-size: var(--pp-t-section);
    line-height: var(--pp-l-section);
    font-weight: 700;
  }
  .pp-profile__text > * + * {
    margin-block-start: var(--pp-s-item);
  }
  .pp-profile__text .pp-actions {
    margin-block-start: var(--pp-s-block);
  }
  .pp-profile__ask {
    max-inline-size: var(--measure);
    color: var(--pp-ink-muted);
  }
  .pp-contacts {
    border-block-start: var(--border-thin) solid var(--pp-line);
  }
  .pp-contact {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-1) var(--space-3);
    padding-block: var(--space-2);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-contact__logo {
    inline-size: var(--icon-md);
    block-size: var(--icon-md);
  }
  .pp-contact__service {
    display: block;
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
  }
  .pp-contact__id {
    display: block;
    font-weight: 700;
    overflow-wrap: anywhere;
  }
  .pp-summary {
    border-block-start: var(--border-thin) solid var(--pp-line);
  }
  .pp-summary > div {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: var(--space-1) var(--space-3);
    align-items: center;
    padding-block: var(--space-2);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-summary dt {
    color: var(--pp-ink-muted);
  }
  .pp-summary dd {
    font-weight: 700;
  }
  .pp-summary__note {
    display: block;
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
    font-weight: 400;
  }
  .pp-summary--compact > div {
    padding-block: var(--space-1);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-sym {
    display: inline-block;
    inline-size: 1.15em;
    block-size: 1.15em;
    vertical-align: -0.2em;
  }
  .pp-list {
    border-block-start: var(--border-thin) solid var(--pp-line);
  }
  .pp-list > li {
    padding-block: var(--space-2);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-group__title {
    margin-block-end: var(--space-2);
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
  }
  .pp-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--space-4);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-tabs [role=tab] {
    min-block-size: var(--pp-control);
    margin-block-end: calc(-1 * var(--border-thin));
    padding: 0;
    border: 0;
    border-block-end: var(--border-thick) solid transparent;
    background: none;
    color: var(--pp-ink-muted);
    cursor: pointer;
  }
  .pp-tabs [role=tab]:hover {
    color: var(--pp-ink);
  }
  .pp-tabs [role=tab][aria-selected=true] {
    border-block-end-color: var(--pp-ink);
    color: var(--pp-ink);
    font-weight: 700;
  }
  .pp-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    margin-block: var(--pp-s-item) var(--pp-s-block);
  }
  .pp-input,
  .pp-select,
  .pp-textarea {
    display: block;
    inline-size: 100%;
    min-block-size: var(--pp-control);
    padding: var(--space-1) var(--space-3);
    border: var(--border-thin) solid var(--pp-line-strong);
    border-radius: var(--pp-radius);
    background: var(--pp-bg);
  }
  .pp-textarea {
    min-block-size: calc(var(--space-8) + var(--space-4));
    resize: vertical;
  }
  .pp-toolbar .pp-select {
    inline-size: auto;
  }
  .pp-toolbar .pp-input {
    inline-size: min(100%, 18rem);
  }
  @media (max-width: 719.98px) {
    .pp-toolbar .pp-select,
    .pp-toolbar .pp-input,
    .pp-toolbar label {
      inline-size: 100%;
    }
  }
  .pp-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
    gap: var(--pp-s-block) var(--grid-gutter);
  }
  @media (max-width: 519.98px) {
    .pp-cards {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--pp-s-block) var(--space-3);
    }
  }
  .pp-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
  }
  .pp-card__media {
    position: relative;
    overflow: hidden;
    border-radius: var(--pp-radius);
    background: var(--pp-bg-sunken);
    aspect-ratio: 1;
  }
  .pp-card__media .pp-photo {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
  }
  .pp-card__noimg {
    display: grid;
    place-items: center;
    block-size: 100%;
    color: var(--pp-ink-muted);
  }
  .pp-card__noimg svg {
    inline-size: var(--icon-lg);
    block-size: var(--icon-lg);
  }
  .pp-card__labels {
    position: absolute;
    inset: var(--space-2) var(--space-2) auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-1);
  }
  .pp-card__title {
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
    overflow-wrap: anywhere;
  }
  .pp-card__meta {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-card__when {
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-card__when li + li {
    margin-block-start: var(--space-1);
  }
  .pp-card__actions {
    display: grid;
    gap: var(--space-2);
    margin-block-start: auto;
    padding-block-start: var(--space-1);
  }
  .pp-card__actions .pp-button {
    inline-size: 100%;
  }
  .pp-year {
    margin-block: var(--pp-s-block) var(--pp-s-item);
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
  }
  .pp-year:first-child {
    margin-block-start: 0;
  }
  .pp-status,
  .pp-tag {
    display: inline-flex;
    align-items: center;
    min-block-size: calc(var(--pp-t-label) * var(--pp-l-label) + var(--space-1));
    padding-inline: var(--space-2);
    border-radius: var(--pp-radius-pill);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    font-weight: 700;
    white-space: nowrap;
  }
  .pp-status {
    border: var(--border-thin) solid var(--pp-ink);
    background: var(--pp-bg);
    color: var(--pp-ink);
  }
  .pp-status--fixed {
    border-color: var(--pp-fill);
    background: var(--pp-fill);
    color: var(--pp-on-fill);
  }
  .pp-status--adjusting {
    border-style: dashed;
  }
  .pp-status--plain {
    border-color: var(--pp-bg);
  }
  .pp-tag {
    background: var(--pp-bg);
    color: var(--pp-ink);
    font-weight: 400;
  }
  .pp-details > summary {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-block-size: var(--pp-control);
    color: var(--pp-ink);
    font-size: var(--pp-t-meta);
    text-decoration-line: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
  }
  .pp-details__body {
    padding: var(--space-2) var(--space-3);
    border-inline-start: var(--border-thick) solid var(--pp-line);
  }
  .pp-details__body > * + * {
    margin-block-start: var(--space-2);
  }
  .pp-empty {
    padding: var(--space-6) var(--space-4);
    border: var(--border-thin) dashed var(--pp-line-strong);
    border-radius: var(--pp-radius);
    color: var(--pp-ink-muted);
    text-align: center;
  }
  .pp-cal__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    margin-block-end: var(--space-2);
  }
  .pp-cal__nav {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
  }
  .pp-cal__title {
    min-inline-size: 7.5em;
    font-size: var(--pp-t-section);
    line-height: var(--pp-l-section);
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
  }
  .pp-cal__grid {
    inline-size: 100%;
    border-collapse: collapse;
    table-layout: fixed;
  }
  .pp-cal__grid th {
    padding: var(--space-1);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    font-weight: 400;
    text-align: start;
  }
  .pp-cal__grid td {
    padding: 0;
    border-block-start: var(--border-thin) solid var(--pp-line);
    vertical-align: top;
  }
  .pp-cal__day {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--border-thick);
    inline-size: 100%;
    min-block-size: calc(var(--space-8) + var(--space-4));
    padding: var(--space-1);
    border: 0;
    border-radius: var(--radius-sm);
    background: none;
    text-align: start;
    cursor: pointer;
  }
  .pp-cal__day:hover {
    background: var(--pp-bg-sunken);
  }
  .pp-cal__day[aria-pressed=true] {
    box-shadow: inset 0 0 0 var(--border-thick) var(--pp-ink);
  }
  .pp-cal__num {
    display: inline-grid;
    place-items: center;
    align-self: flex-start;
    min-inline-size: var(--space-5);
    block-size: var(--space-5);
    border-radius: var(--pp-radius-pill);
    font-size: var(--pp-t-meta);
    font-variant-numeric: tabular-nums;
  }
  .pp-cal__grid .is-out .pp-cal__num,
  .pp-cal__grid .is-past .pp-cal__num {
    color: var(--pp-ink-muted);
  }
  .pp-cal__grid .is-today .pp-cal__num {
    background: var(--pp-fill);
    color: var(--pp-on-fill);
    font-weight: 700;
  }
  .pp-cal__ev {
    padding: 0 var(--space-1);
    border-radius: var(--radius-sm);
    background: var(--pp-bg-sunken);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
  }
  .pp-cal__ev b {
    font-variant-numeric: tabular-nums;
  }
  .is-past .pp-cal__ev {
    color: var(--pp-ink-muted);
  }
  .pp-cal__dot {
    display: none;
  }
  .pp-cal__detail {
    margin-block-start: var(--pp-s-block);
  }
  .pp-cal__detail h2 {
    margin-block-end: var(--space-2);
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
  }
  .pp-cal__detail .pp-actions {
    margin-block-start: var(--pp-s-item);
  }
  @media (max-width: 719.98px) {
    .pp-cal__ev {
      display: none;
    }
    .pp-cal__dot {
      display: block;
      inline-size: var(--space-1);
      block-size: var(--space-1);
      margin-inline: auto;
      border-radius: var(--pp-radius-pill);
      background: var(--pp-ink);
    }
    .is-past .pp-cal__dot {
      background: var(--pp-line-strong);
    }
    .pp-cal__day {
      align-items: center;
      min-block-size: var(--space-7);
    }
    .pp-cal__num {
      align-self: center;
    }
    .pp-cal__grid th {
      text-align: center;
    }
  }
  .pp-cal--pick .pp-cal__day {
    align-items: center;
    justify-content: center;
    min-block-size: var(--space-7);
  }
  .pp-cal--pick .pp-cal__num {
    align-self: center;
  }
  .pp-cal--pick .pp-cal__grid th {
    text-align: center;
  }
  .pp-cal--pick .pp-cal__day[aria-pressed=true] {
    box-shadow: none;
    background: var(--pp-fill);
    color: var(--pp-on-fill);
  }
  .pp-cal--pick .pp-cal__day[aria-pressed=true] .pp-cal__num {
    color: var(--pp-on-fill);
  }
  .pp-cal--pick .is-today .pp-cal__num {
    background: none;
    color: inherit;
    box-shadow: inset 0 calc(-1 * var(--border-thick)) 0 currentColor;
    border-radius: 0;
  }
  .pp-cal--pick .pp-cal__day:disabled {
    cursor: not-allowed;
    background: none;
    color: var(--pp-ink-muted);
  }
  .pp-cal__busy {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: 1;
  }
  [aria-pressed=true] .pp-cal__busy {
    color: var(--pp-on-fill);
  }
  .pp-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
  }
  .pp-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-block-size: var(--pp-control);
    padding-inline: var(--space-3);
    border: var(--border-thin) solid var(--pp-line-strong);
    border-radius: var(--pp-radius-pill);
    background: var(--pp-bg);
    font-size: var(--pp-t-meta);
    cursor: pointer;
  }
  .pp-chip:hover {
    border-color: var(--pp-ink);
  }
  .pp-chip[aria-pressed=true] {
    border-color: var(--pp-fill);
    background: var(--pp-fill);
    color: var(--pp-on-fill);
    font-weight: 700;
  }
  .pp-notice {
    padding: var(--space-3) var(--space-4);
    border-inline-start: var(--space-1) solid var(--pp-line-strong);
    border-radius: var(--radius-sm);
    background: var(--pp-bg-sunken);
  }
  .pp-notice--warn {
    border-inline-start-color: var(--pp-ink);
    font-weight: 700;
  }
  .pp-notice > * + * {
    margin-block-start: var(--space-1);
  }
  .pp-form {
    display: grid;
    gap: var(--pp-s-section) var(--space-7);
    align-items: start;
    margin-block-start: var(--pp-s-block);
  }
  @media (min-width: 1040px) {
    .pp-form {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .pp-form__col {
    display: grid;
    gap: var(--pp-s-block);
    min-inline-size: 0;
  }
  .pp-field {
    display: grid;
    gap: var(--space-1);
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }
  .pp-field > legend {
    padding: 0;
    margin-block-end: var(--space-1);
  }
  .pp-label,
  .pp-field > legend {
    font-weight: 700;
  }
  .pp-req {
    display: inline-flex;
    align-items: center;
    margin-inline-start: var(--space-2);
    padding-inline: var(--space-1);
    border-radius: var(--radius-sm);
    background: var(--pp-fill);
    color: var(--pp-on-fill);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    font-weight: 700;
    vertical-align: 0.1em;
  }
  .pp-hint {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-error {
    font-weight: 700;
  }
  .pp-field--error {
    padding-inline-start: var(--space-3);
    border-inline-start: var(--space-1) solid var(--pp-ink);
  }
  .pp-field--error .pp-input {
    border-width: var(--border-thick);
    border-color: var(--pp-ink);
  }
  .pp-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--space-5);
  }
  .pp-choice {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-block-size: var(--pp-control);
    cursor: pointer;
  }
  .pp-choice input {
    inline-size: 1.25em;
    block-size: 1.25em;
    margin: 0;
    accent-color: var(--pp-fill);
  }
  .pp-sub {
    display: grid;
    gap: var(--space-3);
    margin-block-start: var(--space-2);
  }
  .pp-pcs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
    gap: var(--pp-s-block) var(--grid-gutter);
  }
  @media (max-width: 519.98px) {
    .pp-pcs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--pp-s-block) var(--space-3);
    }
  }
  .pp-pc {
    display: grid;
    gap: var(--space-1);
    text-decoration-line: none;
  }
  .pp-pc__img {
    overflow: hidden;
    margin-block-end: var(--space-1);
    border-radius: var(--pp-radius);
    background: var(--pp-bg-sunken);
  }
  .pp-pc__img img {
    inline-size: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    transition: transform var(--duration-moderate) var(--easing-standard);
  }
  .pp-pc:hover .pp-pc__img img {
    transform: scale(1.04);
  }
  .pp-pc:hover .pp-pc__name {
    text-decoration-line: underline;
  }
  .pp-pc__kana {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    min-block-size: calc(var(--pp-t-label) * var(--pp-l-label));
  }
  .pp-pc__name {
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
    text-underline-offset: 0.2em;
  }
  .pp-pc__origin {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-figure {
    display: flex;
    justify-content: center;
    padding: var(--space-4);
    border-radius: var(--pp-radius);
    background: var(--pp-bg-sunken);
  }
  .pp-figure img {
    max-block-size: 80vh;
    inline-size: auto;
  }
  .pp-back {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-block-size: var(--pp-control);
    margin-block-end: var(--space-2);
    color: var(--pp-ink-muted);
    text-decoration-line: none;
  }
  .pp-back:hover {
    color: var(--pp-ink);
  }
  .pp-back svg {
    inline-size: var(--icon-sm);
    block-size: var(--icon-sm);
  }
  .pp-protect {
    -webkit-touch-callout: none;
    user-select: none;
  }
  .pp-protect img {
    pointer-events: none;
  }
  .pp-prose {
    max-inline-size: var(--measure);
  }
  .pp-prose > * + * {
    margin-block-start: var(--pp-s-item);
  }
  .pp-prose__lead {
    font-size: var(--pp-t-section);
    line-height: var(--pp-l-section);
    font-weight: 700;
  }
  .pp-sheet {
    display: block;
    overflow: hidden;
    border: var(--border-thin) solid var(--pp-line);
    border-radius: var(--pp-radius);
    background: var(--color-bg-raised);
  }
  .pp-sheet:hover {
    border-color: var(--pp-ink);
  }
  .pp-sheet__cap {
    display: flex;
    justify-content: space-between;
    padding: var(--space-2) var(--space-3);
    border-block-start: var(--border-thin) solid var(--pp-line);
    font-size: var(--pp-t-meta);
  }
  @media (prefers-reduced-motion: reduce) {
    .pp-pc__img img,
    .pp-button {
      transition: none;
    }
  }
}
@layer pp.layout {
  .pp-stack > * + * {
    margin-block-start: var(--pp-s-block);
  }
  .pp-stack > .pp-section {
    margin-block-start: var(--pp-s-section);
  }
}
@layer pp.layout {
  .pp-section--after-cols {
    margin-block-start: var(--pp-s-section);
  }
}
@layer pp.layout {
  .pp-cols > .pp-section + .pp-section {
    margin-block-start: 0;
  }
}
@layer pp.components {
  .pp-sym {
    inline-size: 1.5em;
    block-size: 1.5em;
    vertical-align: -0.4em;
  }
  .pp-contact {
    display: flex;
    flex-wrap: wrap;
  }
  .pp-contact > span {
    flex: 1 1 auto;
    min-inline-size: 0;
  }
  .pp-contact__id {
    white-space: nowrap;
    overflow-wrap: normal;
  }
  .pp-sheet__cap svg {
    inline-size: var(--icon-sm);
    block-size: var(--icon-sm);
  }
  .pp-sheet__cap > span {
    display: inline-flex;
    align-items: center;
    gap: 0.15em;
  }
}
@layer pp.components {
  .pp-contacts {
    container-type: inline-size;
  }
  .pp-contact {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  @container (max-width: 26rem) {
    .pp-contact {
      grid-template-columns: auto minmax(0, 1fr);
    }
    .pp-contact > .pp-button {
      grid-column: 2;
      justify-self: start;
    }
  }
}
@layer pp.components {
  .pp-list > li:has(> a:only-child) {
    padding-block: 0;
  }
  .pp-list > li > a:only-child {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    min-block-size: var(--pp-control);
    padding-block: var(--space-1);
  }
}
@layer pp.components {
  .pp-card__labels .pp-tag,
  .pp-card__labels .pp-status--plain {
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
}
@layer pp.components {
  [data-hide-status=true] .pp-card__labels .pp-status,
  [data-hide-sys=true] .pp-card__labels .pp-tag {
    display: none;
  }
  .pp-card__labels .pp-tag {
    margin-inline-start: auto;
  }
  .pp-card__details {
    display: grid;
  }
  .pp-notice--steps .pp-actions {
    margin-block-start: var(--space-2);
  }
}
@layer pp.components {
  .pp-card {
    container-type: inline-size;
  }
  .pp-card__media > .pp-status,
  .pp-card__media > .pp-tag {
    position: absolute;
    inset-block-start: var(--space-2);
    max-inline-size: calc(100% - 2 * var(--space-2));
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .pp-card__media > .pp-status {
    inset-inline-start: var(--space-2);
  }
  .pp-card__media > .pp-tag {
    inset-inline-end: var(--space-2);
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
  .pp-card__media > .pp-status--plain {
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
  @container (max-width: 15rem) {
    .pp-card__media > .pp-tag {
      inset-block: auto var(--space-2);
    }
  }
  [data-hide-status=true] .pp-card__media > .pp-status,
  [data-hide-sys=true] .pp-card__media > .pp-tag {
    display: none;
  }
}
@layer pp.components {
  .pp-button--primary {
    transition: transform var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);
  }
  .pp-button--primary:hover {
    transform: translateY(calc(-1 * var(--border-thick)));
    box-shadow: var(--shadow-2);
  }
  .pp-button--primary:active {
    transform: translateY(0);
    box-shadow: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .pp-button--primary:hover {
      transform: none;
    }
  }
}
@layer pp.components {
  .pp-notice--result.is-done {
    flex-wrap: wrap;
  }
  .pp-notice--result.is-done > .pp-hint {
    flex-basis: 100%;
  }
}
@layer pp.components {
  [data-view]:not([data-view=all]) [data-panel] {
    margin-block-start: 0;
  }
  [data-view]:not([data-view=all]) [data-panel] > .pp-section__title {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  [data-view=done] [data-panel=done] [data-yeargroup]:first-of-type .pp-year {
    margin-block-start: 0;
  }
}
@layer pp.components {
  .pp-spoiler > summary {
    gap: var(--space-1);
    font-weight: 700;
    text-decoration-line: none;
  }
  .pp-spoiler > summary svg {
    inline-size: var(--icon-sm);
    block-size: var(--icon-sm);
    flex: none;
  }
  .pp-spoiler > summary:hover {
    text-decoration-line: underline;
  }
  .pp-spoiler__warn {
    font-weight: 700;
  }
  .pp-spoiler__text {
    padding-block-start: var(--space-2);
    border-block-start: var(--border-thin) dashed var(--pp-line-strong);
  }
  .pp-spoiler__text > * + * {
    margin-block-start: var(--space-2);
  }
  .pp-spoiler__text:focus {
    outline: none;
  }
}
@layer pp.components {
  .pp-done {
    max-inline-size: var(--measure);
  }
  .pp-done:focus {
    outline: none;
  }
  .pp-done > * + * {
    margin-block-start: var(--pp-s-item);
  }
  .pp-done .pp-actions {
    margin-block-start: var(--pp-s-block);
  }
  .pp-cal__detail .pp-empty {
    padding: 0;
    border: 0;
    text-align: start;
  }
}
@layer pp.components {
  .pp-field {
    gap: var(--pp-s-tight);
  }
  .pp-field > legend {
    margin-block-end: var(--pp-s-tight);
  }
  .pp-field > legend + * {
    margin-block-start: 0;
  }
  .pp-sub {
    gap: var(--pp-s-tight);
    margin-block-start: var(--pp-s-item);
  }
  .pp-sub + .pp-sub {
    margin-block-start: var(--pp-s-block);
  }
  .pp-sub .pp-field + .pp-field {
    margin-block-start: var(--space-2);
  }
  .pp-sublabel {
    font-weight: 400;
  }
  .pp-note {
    margin-inline-start: var(--space-2);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    font-weight: 400;
  }
  .pp-cal--pick .pp-cal__bar {
    margin-block-start: var(--space-1);
  }
}
@layer pp.components {
  .pp-field > legend ~ .pp-sub:first-of-type,
  .pp-field > .pp-error + .pp-sub {
    margin-block-start: var(--space-1);
  }
}
@layer pp.components {
  .pp-figure {
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
  }
  .pp-figure__credit {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
    user-select: text;
    -webkit-user-select: text;
  }
}
@layer pp.layout {
  .pp-wrap {
    padding-inline: max(var(--pp-margin), env(safe-area-inset-left)) max(var(--pp-margin), env(safe-area-inset-right));
  }
}
@layer pp.components {
  .pp-card__labels {
    position: absolute;
    inset: var(--space-2) var(--space-2) auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-1);
  }
  .pp-card__labels .pp-tag {
    margin-inline-start: auto;
    max-inline-size: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
  .pp-card__labels .pp-status--plain {
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
  [data-hide-status=true] .pp-card__labels .pp-status,
  [data-hide-sys=true] .pp-card__labels .pp-tag {
    display: none;
  }
  @container (max-width: 15rem) {
    .pp-card__labels {
      inset: var(--space-2);
      flex-direction: column;
      flex-wrap: nowrap;
      justify-content: space-between;
      pointer-events: none;
    }
    .pp-card__labels > * {
      pointer-events: auto;
    }
    .pp-card__labels .pp-tag {
      margin-inline-start: 0;
      align-self: flex-end;
    }
  }
  .pp-year:first-child {
    margin-block-start: var(--pp-s-section);
  }
  [data-panel] > [data-yeargroup]:first-of-type .pp-year {
    margin-block-start: 0;
  }
  @media (max-width: 719.98px) {
    .pp-tabs {
      flex-wrap: nowrap;
      overflow-x: auto;
      scrollbar-width: none;
      margin-inline: calc(-1 * var(--pp-margin));
      padding-inline: var(--pp-margin);
    }
    .pp-tabs::-webkit-scrollbar {
      display: none;
    }
    .pp-tabs [role=tab] {
      flex: none;
      white-space: nowrap;
    }
    .pp-card__actions .pp-button {
      white-space: nowrap;
      font-size: var(--pp-t-label);
      padding-inline: var(--space-2);
    }
    .pp-cal__day {
      min-block-size: var(--space-6);
    }
    .pp-cal__busy {
      display: block;
    }
  }
  .pp-cal__busy {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: 1;
  }
  @media (min-width: 720px) {
    [data-cal] .pp-cal__busy {
      display: none;
    }
  }
  .pp-cal__dot {
    display: none !important;
  }
  .pp-details > summary {
    list-style: none;
    font-weight: 400;
    text-decoration-line: underline;
  }
  .pp-details > summary::-webkit-details-marker {
    display: none;
  }
  .pp-details > summary::before {
    content: "▸";
    display: inline-block;
    inline-size: 1em;
    color: var(--pp-ink-muted);
    transition: transform var(--duration-fast) var(--easing-standard);
  }
  .pp-details[open] > summary::before {
    transform: rotate(90deg);
  }
  .pp-spoiler > summary {
    font-weight: 400;
  }
  .pp-pc__kana:empty::before {
    content: " ";
  }
  .pp-summary--auto > div {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: var(--space-5);
  }
  .pp-select {
    padding-inline: var(--space-2);
  }
  .pp-menu__panel {
    box-shadow: var(--shadow-2);
  }
  @media (prefers-reduced-motion: reduce) {
    .pp-details > summary::before {
      transition: none;
    }
  }
}
@layer pp.components {
  .pp-card__link {
    margin-block-start: calc(-1 * var(--space-1));
    font-size: var(--pp-t-meta);
    line-height: var(--pp-l-meta);
  }
  .pp-card__link a {
    display: inline-flex;
    align-items: center;
    gap: 0.15em;
    min-block-size: var(--pp-control);
    color: var(--pp-ink-muted);
  }
  .pp-card__link a:hover {
    color: var(--pp-ink);
  }
  .pp-card__link svg {
    inline-size: var(--icon-sm);
    block-size: var(--icon-sm);
  }
}
@layer pp.components {
  .pp-cal__grid .is-off .pp-cal__num {
    font-weight: 700;
  }
  .pp-cal__grid th:nth-child(n+6) {
    font-weight: 700;
    color: var(--pp-ink);
  }
  .pp-cal__holiday {
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .pp-cal__holiday-name {
    margin-inline-start: var(--space-2);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-meta);
    font-weight: 400;
  }
  .pp-source {
    margin-block-start: var(--pp-s-item);
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
  }
  @media (max-width: 719.98px) {
    [data-cal] .pp-cal__holiday {
      font-size: 0;
    }
    [data-cal] .pp-cal__holiday::before {
      content: "祝";
      font-size: var(--pp-t-label);
    }
  }
  .pp-cal__busy {
    align-self: center;
    padding-inline: var(--space-1);
    border-radius: var(--pp-radius-pill);
    background: var(--pp-fill);
    color: var(--pp-on-fill);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
  }
  .is-past .pp-cal__busy,
  .is-out .pp-cal__busy {
    background: none;
    box-shadow: inset 0 0 0 var(--border-thin) var(--pp-line-strong);
    color: var(--pp-ink-muted);
  }
  [aria-pressed=true] .pp-cal__busy {
    background: var(--pp-on-fill);
    color: var(--pp-fill);
  }
  .pp-cal__ev {
    box-shadow: inset var(--border-thick) 0 0 var(--pp-ink);
    color: var(--pp-ink);
  }
  .is-past .pp-cal__ev {
    box-shadow: inset var(--border-thick) 0 0 var(--pp-line-strong);
    color: var(--pp-ink-muted);
  }
  .pp-footer .pp-source {
    margin-block-start: var(--space-2);
  }
  .pp-modal {
    inline-size: min(36rem, calc(100vw - 2 * var(--space-4)));
    max-block-size: min(85vh, 48rem);
    padding: 0;
    border: var(--border-thin) solid var(--pp-line-strong);
    border-radius: var(--pp-radius);
    background: var(--pp-bg);
    color: var(--pp-ink);
    box-shadow: var(--shadow-2);
  }
  .pp-modal[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .pp-modal::backdrop {
    background: rgb(0 0 0 / 45%);
  }
  .pp-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-block-end: var(--border-thin) solid var(--pp-line);
  }
  .pp-modal__title {
    min-inline-size: 0;
    font-size: var(--pp-t-card);
    line-height: var(--pp-l-card);
    font-weight: 700;
    overflow-wrap: anywhere;
  }
  .pp-modal__body {
    display: grid;
    align-content: start;
    gap: var(--space-4);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-4) var(--space-4) var(--space-6);
  }
  .pp-modal__labels {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
  }
  .pp-modal__labels .pp-tag {
    box-shadow: 0 0 0 var(--border-thin) var(--pp-line-strong);
  }
  .pp-modal__section {
    display: grid;
    gap: var(--space-2);
    padding-block-start: var(--space-3);
    border-block-start: var(--border-thin) solid var(--pp-line);
    scroll-margin-block-start: var(--space-3);
  }
  .pp-modal__heading {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--pp-t-body);
    line-height: var(--pp-l-body);
    font-weight: 700;
  }
  .pp-modal__heading svg {
    inline-size: 1.1em;
    block-size: 1.1em;
    flex: none;
  }
  @media (max-width: 719.98px) {
    .pp-modal {
      inline-size: 100%;
      max-inline-size: 100%;
      max-block-size: 88vh;
      margin: auto 0 0;
      border-inline: 0;
      border-block-end: 0;
      border-radius: var(--pp-radius) var(--pp-radius) 0 0;
    }
  }
  .pp-card:target {
    outline: var(--border-thick) solid var(--pp-ink);
    outline-offset: var(--space-2);
    scroll-margin-block: calc(var(--pp-control) + var(--space-6));
  }
  .is-unavail .pp-cal__day {
    background-image:
      repeating-linear-gradient(
        135deg,
        var(--pp-line) 0 1px,
        transparent 1px 6px);
  }
  .pp-cal__unavail {
    align-self: center;
    color: var(--pp-ink-muted);
    font-size: var(--pp-t-label);
    line-height: var(--pp-l-label);
    white-space: nowrap;
  }
  @media (min-width: 720px) {
    [data-cal] .pp-cal__unavail {
      align-self: flex-start;
    }
  }
  .pp-cal__holiday:has(~ .pp-cal__unavail) {
    display: none;
  }
  .pp-cal--pick .is-unavail .pp-cal__day:disabled {
    cursor: not-allowed;
  }
  @media (max-width: 719.98px) {
    .pp-cal__day {
      min-block-size: calc(var(--space-5) + var(--border-thick) + var(--pp-t-label) * var(--pp-l-label) + 2 * var(--space-1));
    }
  }
  .pp-cal__holiday:has(+ .pp-cal__busy) {
    display: none;
  }
  .is-out .pp-cal__ev {
    box-shadow: inset var(--border-thick) 0 0 var(--pp-line-strong);
    color: var(--pp-ink-muted);
  }
}
