@layer components {

  .task-detail__who {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }

  .task-detail__ref { font-size: var(--text-sm); }

  .task-detail__header-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-inline-start: auto;
  }

  .task-detail__today { color: var(--ink-muted); }

  .task-detail__today--on,
  .task-detail__today--on:hover { color: var(--accent); border-color: var(--accent); }

  
  .task-detail__today { position: relative; }

  .task-detail__today-undo {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    white-space: nowrap;
    visibility: hidden;
  }

  .task-detail__today--on:is(:hover, :focus-visible) > :not(.task-detail__today-undo) { visibility: hidden; }
  .task-detail__today--on:is(:hover, :focus-visible) .task-detail__today-undo { visibility: visible; }

  .task-detail__title,
  .task-detail__notes {
    font: inherit;
    margin-inline: calc(var(--space-2) * -1);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--ink);
    transition: background var(--transition), height var(--transition),
                var(--responds);
  }

  .task-detail__title {
    width: 100%;
    padding: var(--space) var(--space-2);
    font-size: var(--text-xl);
    font-weight: var(--weight-heavy);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
  }

  
  .task-detail__notes { display: block; }

  
  .task-detail__title {
    display: block;
    resize: none;
    overflow: hidden;
    white-space: pre-wrap;
    overflow-wrap: break-word;
  }

  .task-detail__title:focus { background: var(--surface); }
  .task-detail__title::placeholder { color: var(--ink-faint); }

  .task-detail__controls { display: flex; flex-direction: column; }

  
  .task-detail__controls > .fold { --fold-lead: var(--space-3); }

  .properties {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3) var(--space-4);
    padding-top: var(--space-3);
    border-top: var(--line-w) solid var(--line);
  }

  @media (width <= 60rem) { .properties { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (width <= 40rem) { .properties { grid-template-columns: minmax(0, 1fr); } }

  .property {
    display: flex;
    flex-direction: column;
    gap: calc(var(--space) / 2);
    min-width: 0;
  }

  
  .property--wide { grid-column: span 2; }
  @media (width <= 60rem) { .property--wide { grid-column: auto; } }

  
  .properties--waiting { padding-top: 0; border-top: 0; }

  .property__control {
    font: inherit;
    font-size: var(--text-base);
    color: var(--ink);
    height: var(--control-h-sm);
    padding: 0 var(--space);
    margin-inline: calc((var(--space) + var(--line-w-control)) * -1);
    border: var(--line-w-control) solid transparent;
    border-radius: var(--radius);
    background: none;
    
    width: calc(100% + (var(--space) + var(--line-w-control)) * 2);
    transition: border-color var(--transition), background var(--transition), var(--responds);
  }

  .property__control:hover { border-color: var(--line-strong); background: var(--surface-hover); }
  .property__control:focus { border-color: var(--accent); background: var(--surface); }

  
  .property__date {
    position: relative;
    display: flex;
    align-items: center;
  }

  .property__date > .menu__icon {
    position: absolute;
    left: calc((var(--rail-status) - 1.25rem) / 2);
    
    z-index: 1;
    pointer-events: none;
  }

  .property__date > .property__control {
    position: relative;
    padding-inline-start: calc(var(--space) + var(--rail-status) + var(--space));
    
    padding-block-end: 2px;
  }

  .property__date > .property__control::-webkit-calendar-picker-indicator {
    position: absolute;
    left: calc(var(--space) + (var(--rail-status) - 1.25rem) / 2);
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
  }

  
  .property__control--field {
    margin-inline: 0;
    width: 100%;
    padding: 0 var(--space-2);
    border-radius: var(--radius);
    border-color: color-mix(in oklab, var(--colour-amber) 25%, var(--surface));
    background: color-mix(in oklab, var(--colour-amber) 12%, var(--surface));
    color: var(--colour-amber);
  }

  .property__control--field::placeholder { color: color-mix(in oklab, var(--colour-amber) 60%, var(--surface)); }

  
  .property__control--field:hover {
    border-color: var(--colour-amber-line);
    background: color-mix(in oklab, var(--colour-amber) 12%, var(--surface));
  }

  
  .property__control--field:focus { border-color: var(--accent); }

  .task-detail__footer {
    padding-top: var(--space-3);
    border-top: var(--line-w) solid var(--line);
  }

  .task-detail__actions {
    display: flex;
    align-items: center;
    gap: var(--space);
  }

  
  .task-detail__glyph {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: var(--control-h-sm);
    height: var(--control-h-sm);
    padding: 0;
    border: var(--line-w-control) solid transparent;
    border-radius: var(--radius);
    background: none;
    color: var(--ink-faint);
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition),
                color var(--transition), var(--responds);
  }

  .task-detail__glyph:hover {
    border-color: var(--line-strong);
    background: var(--surface-hover);
    color: var(--ink);
  }

  .task-detail__glyph:disabled {
    color: var(--ink-faint);
    cursor: default;
    opacity: 0.5;
  }

  .task-detail__glyph:disabled:hover {
    border-color: transparent;
    background: none;
    color: var(--ink-faint);
  }

  
  .task-detail__glyph::after {
    content: attr(data-tip);
    position: absolute;
    top: calc(100% + var(--space) / 2);
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(var(--measure) / 2);
    padding: calc(var(--space) / 2) var(--space);
    border: var(--line-w) solid var(--line-strong);
    border-radius: var(--radius-sm);
    background: var(--surface);
    box-shadow: var(--shadow-card);
    color: var(--ink);
    font-size: var(--text-xs);
    line-height: var(--leading-tight);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition);
  }

  .task-detail__glyph:hover::after,
  .task-detail__glyph:focus-visible::after { opacity: 1; }

  
  @media (hover: none) {
    .task-detail__glyph::after { content: none; }
  }

  .task-detail__glyph--danger:hover { color: var(--danger); }

  
  .task-detail__glyph--on { color: var(--accent); }
  .task-detail__glyph--on:hover { color: var(--accent); }
  .task-detail__glyph--on .menu__icon { fill: currentColor; }

  .task-detail__glyph--favourited { color: var(--colour-amber); }
  .task-detail__glyph--favourited:hover { color: var(--colour-amber); }
  .task-detail__glyph--favourited .menu__icon { fill: currentColor; }

  
  .task-detail__actions[hidden] { display: none; }

  
  .task-detail__more { display: none; }

  @media (width <= 40rem) {
    .task-detail__actions,
    .task-detail__today { display: none; }
    .task-detail__more { display: inline-grid; }
  }
}
