/* @v1d/web-kit 0.178.0, built from Cutkit 06a2c286e tools/studio_static/kit/web-kit.css. Generated: Cutkit's kit is the only copy, never edit this one. */
.part-panel { display: flex; flex-direction: column; gap: var(--panel-gap); padding: var(--panel-pad); background: var(--panel-fill);
  border-radius: var(--panel-radius); box-shadow: inset 0 0 0 1px var(--panel-edge); }
.part-panel-head { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.part-panel-head h3 { display: flex; align-items: center; gap: var(--space-3); flex: 1; min-width: 0; margin: 0; color: var(--fg);
  font-size: var(--panel-title);
  font-weight: 600; }
.part-panel-head.lead h3 { font-size: var(--panel-lead-title); font-weight: 600; letter-spacing: 0; text-transform: none; }

.part-search { display: flex; align-items: center; gap: var(--space-3); box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px;
  padding: 0 var(--space-4); margin: 0;
  background: var(--input); color: var(--muted); border: 1px solid var(--border); border-radius: var(--radius); font-family: var(--font); cursor: text; }
.part-search:focus-within { border-color: var(--control); }
.part-search:has(.part-search-input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-search-icon { display: inline-flex; flex: none; }
.part-search-icon > svg { width: 18px; height: 18px; }
.part-search-input { flex: 1; min-width: 0; margin: 0; padding: 0; border: 0; outline: none; background: transparent; color: var(--fg); font: inherit; font-family: var(--font);
  font-size: var(--type-heading); line-height: 1.3; appearance: none; }
.part-search-input:focus-visible { outline: none; }
.part-search-input::placeholder { color: var(--muted); opacity: 1; }

.part-search:has(> .part-search-end) { padding-right: 0; }
.part-search-end { display: inline-grid; place-items: center; flex: none; box-sizing: border-box; width: 44px; height: 44px; margin: -1px 0; padding: 0; border: 0; background: transparent; color: var(--muted);
  border-radius: var(--radius); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-search-end > svg { width: 20px; height: 20px; }
.part-search-end:hover, .part-search-end:active { color: var(--fg); }
.part-search-end:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

.part-filter { --chip-h: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.part-filter-chip { display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; min-width: var(--chip-h); height: var(--chip-h); margin: 0; padding: 0 16px;
  background: var(--card); color: var(--fg); border: 1px solid var(--border); border-radius: calc(var(--chip-h) / 2); font: inherit; font-family: var(--font); font-size: var(--type-heading);
  font-weight: 600; line-height: 1; cursor: pointer; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-filter-chip:hover { background: var(--hover); }
.part-filter-chip[aria-pressed="true"] { background: var(--segment-on); border-color: var(--sel); }
.part-filter-chip:active:not(:disabled) { background: var(--control); }
.part-filter-chip:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-filter-icon { display: inline-flex; flex: none; color: var(--k, var(--muted)); }
.part-filter-icon > svg { width: 20px; height: 20px; }
.part-filter-count { font-variant-numeric: tabular-nums; }
.part-filter[data-icon-only="true"] .part-filter-count { display: none; }
.part-filter[data-icon-only="true"] .part-filter-chip:has(.part-filter-icon) { padding: 0; }
@media (max-width: 899.98px) {
  .part-filter-chip:has(.part-filter-icon):not(:has(.part-filter-count)) { padding: 0; }
}

.part-filter[data-words="true"]:not([data-size="small"]) .part-filter-chip:has(.part-filter-icon) { padding: 0 16px; }
.part-filter[data-size="small"] { --chip-h: 28px; gap: 6px; }
.part-filter[data-size="small"] .part-filter-chip { position: relative; padding: 0 12px; color: var(--muted); font-size: var(--type-small); font-weight: 600; }
.part-filter[data-size="small"] .part-filter-chip[aria-pressed="true"] { color: var(--fg); }
.part-filter[data-size="small"] .part-filter-icon > svg { width: 14px; height: 14px; }
@media (max-width: 899.98px) {
  .part-filter[data-words="true"]:not([data-wrap="true"]) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-inline-end: var(--space-6);
    -webkit-mask-image: var(--scroll-fade); mask-image: var(--scroll-fade); }
  .part-filter[data-words="true"]:not([data-wrap="true"]) .part-filter-chip { flex: none; }
}
@media (pointer: coarse) {
  .part-filter[data-size="small"] .part-filter-chip::after { content: ""; position: absolute; top: 50%; left: 50%; width: max(100%, 44px); height: 44px; transform: translate(-50%, -50%); }
}

.part-box-meter { display: inline-flex; align-items: center; gap: var(--meter-gap, calc(var(--meter-size, 10px) / 5)); font-family: var(--font); }
.part-box-meter > i { flex: none; width: var(--meter-size, 10px); height: var(--meter-height, var(--meter-size, 10px));
  border-radius: calc(var(--meter-size, 10px) / 5);
  background: var(--control); }
.part-box-meter > i.on { background: var(--meter-color, var(--fg)); }
.part-box-meter-none { color: var(--muted); font-size: var(--type-small); line-height: 1; white-space: nowrap; }

.part-box-meter-value { margin-left: var(--space-2); color: var(--fg); font-size: var(--type-small); font-weight: 600; line-height: 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap; text-box: trim-both cap alphabetic; }

.part-box-meter[data-sign] { --meter-size: 3px; --meter-height: 10px; --meter-gap: calc(var(--space-1) / 4); --meter-color: currentColor;
  vertical-align: -1px; }
.part-box-meter[data-sign] > .part-box-meter-value { margin-left: var(--space-1); color: inherit; font-size: inherit; font-weight: inherit; }

.part-code { display: flex; flex-direction: column; gap: 10px; min-width: 0; font-family: var(--font); }
.part-code-title { margin: 0; padding-bottom: 8px; border-bottom: 1px solid var(--border); color: var(--muted); font-size: var(--type-small); font-weight: 600; }
.part-code-id { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--muted); font-size: var(--type-heading); font-weight: 600; }
.part-code-icon { display: inline-flex; flex: none; }
.part-code-icon > svg { width: 18px; height: 18px; }
.part-code-name { min-width: 0; overflow-wrap: anywhere; }
.part-code-body { box-sizing: border-box; margin: 0; padding: 12px; max-width: 100%; overflow-x: auto; background: var(--bg); color: var(--fg); border-radius: var(--radius);
  font-family: var(--font-mono); font-size: var(--type-small); line-height: 1.5; tab-size: 2; white-space: pre; }
.part-code-body:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-code-body .tok-key { color: var(--code-key); }
.part-code-body .tok-string { color: var(--code-string); }
.part-code-body .tok-number { color: var(--code-number); }
.part-code-body .tok-keyword { color: var(--code-keyword); }
.part-code-body .tok-flag { color: var(--code-flag); }
.part-code-body .tok-comment { color: var(--code-comment); font-style: italic; }
.part-code-body .tok-punct { color: var(--code-punct); }

.part-code-card { gap: 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); }
.part-code-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 36px; padding: 2px 4px 2px 12px; border-bottom: 1px solid var(--border); }
.part-code-card .part-code-body { background: transparent; border-radius: 0 0 var(--radius) var(--radius); }
.part-code-lang { color: var(--muted); font-family: var(--font-mono); font-size: var(--type-small); }
.part-code-copy[data-copied="true"] { color: var(--accent); }

.part-card { position: relative; display: flex; flex-direction: column; box-sizing: border-box; min-width: 0; overflow: hidden; overflow: clip; background: var(--card); color: var(--fg); border: 1px solid var(--border); border-radius: calc(var(--radius) + 2px); font-family: var(--font); text-decoration: none; -webkit-tap-highlight-color: transparent; }
.part-card-link { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-card-link::after { content: ""; position: absolute; inset: 0; }
.part-card-link:focus-visible { outline: none; }
.part-card:has(.part-card-link:hover) { border-color: var(--control); }
.part-card:has(.part-card-link:active) { background: var(--control); }
.part-card:has(.part-card-link:focus-visible) { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-card-thumb { --part-room: 99px; display: flex; align-items: center; justify-content: center; box-sizing: border-box; height: 128px; padding: 14px; overflow: hidden; background: var(--panel); border-bottom: 1px solid var(--border); }
.part-card-thumb > * { max-width: 100%; }
.part-card-thumb.bleed { height: auto; padding: 0; border-bottom: 0; }
.part-card-body { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--panel-gap); padding: 12px 14px 14px; }
.part-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-width: 0; }
.part-card-title { display: flex; flex: 1 1 auto; align-items: center; gap: 10px; min-width: 0; }
.part-card-tile { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; color: var(--card-tone, var(--muted)); background: color-mix(in oklab, var(--card-tone, var(--muted)) 22%, transparent); }
.part-card-tile > svg { width: 16px; height: 16px; }
.part-card-name { min-width: 0; overflow-wrap: break-word; font-size: var(--type-heading); font-weight: 600; line-height: 1.25; }
.part-card-tag { flex: none; margin-left: auto; color: var(--muted); font-size: var(--type-small); font-weight: 600; }
.part-card-words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.part-card-line, .part-card-note { margin: 0; }
.part-card-line { color: color-mix(in oklab, var(--fg) 82%, var(--muted)); font-size: var(--type-body); line-height: 1.4; }
.part-card-note { display: flex; align-items: center; gap: 6px; min-width: 0; color: var(--muted); font-size: var(--type-small); white-space: nowrap; }
.part-card-note-icons { display: inline-flex; flex: none; gap: 3px; }
.part-card-note-icon { display: inline-flex; color: var(--k, inherit); }
.part-card-note-icon > svg { width: 14px; height: 14px; }
.part-card-note-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.part-card-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.part-card-tags, .part-card .part-filter { position: relative; z-index: 1; }
.part-card-foot { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; margin-top: auto; padding-top: var(--panel-gap); border-top: 1px solid var(--border); }
.part-card-price { position: relative; z-index: 1; display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: .28em; box-sizing: border-box; max-width: 100%; min-height: 28px; padding: 3px 9px; background: var(--card); color: var(--muted); border: 1px solid var(--border); border-radius: 14px; font-size: var(--type-small); line-height: 1.2; cursor: default; }
.part-card-amount, .part-card-unit { min-width: 0; overflow-wrap: anywhere; }
.part-card-model { min-width: 0; color: var(--muted); font-size: var(--type-small); overflow-wrap: break-word; }
.part-card-readings { --meter-size: 7px; max-width: 100%; display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; justify-items: start; gap: 3px 8px; color: var(--muted); font-size: var(--type-small); }
.part-card-readings .part-box-meter { --meter-color: var(--card-tone, var(--fg)); grid-column: 2; }
.part-card-reading-meter { display: contents; }
.part-card-reading-label { grid-column: 1; }
.part-card-reading-text { grid-column: 3; min-width: 0; overflow-wrap: break-word; }
.part-card-label { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border: 1px solid var(--border); border-radius: 999px; color: color-mix(in oklab, var(--fg) 82%, var(--muted)); font-size: var(--type-small); line-height: 1.2; }
.part-card-label, .part-card .part-filter-chip { white-space: nowrap; }
.part-card .part-filter[data-size="small"] .part-filter-chip { padding: 0 9px; font-weight: 400; }

.part-card-box { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-3); border-bottom: 1px solid var(--border); }

.part-rows { display: grid; gap: var(--space-2); min-width: 0; margin: 0; padding: 0; list-style: none; }
.part-rows > .part-card { padding: var(--space-2); gap: var(--space-2); }

.proposal-card:not(.stale) { border: thin dashed var(--proposal-outline); border-radius: var(--radius); }
.part-card .card-title { margin: 0; font-size: var(--type-heading); font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis;
  text-transform: none; letter-spacing: normal; color: var(--fg); }
.part-card .card-lengths { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.part-card .card-lengths .part-chip { min-height: 44px; }
.part-card .card-row.unused :is(.card-name, .card-num) { font-weight: 400; color: var(--muted); }
.part-card .card-rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.part-card .card-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); min-height: 30px; }
.part-card .card-pic, .part-card .card-row .still { width: 52px; height: 29px; border-radius: var(--radius-small); overflow: hidden; background: var(--card); }
.part-card .card-row:not([data-kind-of]) { --k: var(--fg); --kf: var(--raised); }
.part-card .card-name { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--k, var(--fg)); }
.part-card .card-num { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--fg); }
.part-card .card-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }

.part-card .card-row.refused .card-pic { display: grid; place-items: center; background: transparent; color: var(--problem); }
.part-card .card-row.refused .card-num { font-weight: 400; color: var(--muted); }
.part-card .card-row.refused .refusal-why { grid-column: 2 / -1; margin: 0; color: var(--muted); }
.part-card .card-problems { display: flex; flex-direction: column; gap: var(--space-1); }
.part-card .card-problems .part-problem { display: flex; gap: var(--space-2); align-items: baseline; }

.part-card .card-problems .part-problem .what { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; }
.part-card .card-problems .part-problem .amount { flex: 1 1 auto; min-width: 0; }

.part-card .card-problems .part-problem:has(> .amount) { flex-wrap: wrap; row-gap: var(--space-1); }
.part-card .card-problems .part-problem .what:has(+ .amount) { flex: none; max-width: 100%; }
.part-card .card-problems .part-problem:has(> .what + .amount) .amount { flex: 1 1 8rem; }
.part-card .card-problems .part-problem:not(.blocks) { opacity: 0.85; }

.part-card .card-acts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--button-gap); position: sticky; bottom: 0; z-index: 1;
  margin: 0 calc(-1 * var(--space-3)) calc(-1 * var(--space-3)); padding: var(--space-2) var(--space-3) var(--space-3); background: var(--panel);
  border-top: 1px solid var(--border); }

.part-card .card-acts > button { justify-content: center; min-height: var(--button-h); padding: 0 var(--button-pad); }

.part-card.proposal-card .card-acts { display: flex; flex-wrap: wrap; }
.part-card.proposal-card > .card-title { white-space: normal; }
.part-card.proposal-card .card-acts > button { flex: 1 1 0; min-width: max-content; }
.part-card .card-apply:disabled { opacity: 0.55; cursor: not-allowed; }
.part-card .card-alt { align-self: flex-start; display: inline-flex; align-items: center; gap: var(--space-1); border: 1px solid var(--control);
  border-radius: var(--radius); background: var(--raised);
  color: var(--fg); padding: var(--space-1) var(--space-3); min-height: 32px; -webkit-tap-highlight-color: transparent; }
.part-card .card-alt:hover { background: var(--control); }

@media (max-width: 899px) {
  .part-card-box { gap: var(--space-2); padding: var(--space-2) var(--space-3); }
  .part-card .card-row { grid-template-columns: 44px minmax(0, 1fr) auto; min-height: 26px; }
  .part-card .card-pic, .part-card .card-row .still { width: 44px; height: 25px; }
  .part-card .card-acts { margin: 0 calc(-1 * var(--space-3)) calc(-1 * var(--space-2)); padding: var(--space-2) var(--space-3); }
}

.part-bars { display: flex; flex-direction: column; gap: 10px; width: 100%; min-width: 0; color: var(--fg); font-family: var(--font); }
.part-bars > h3 { margin: 0; font-size: var(--panel-title); font-weight: 600; }
.part-bar-grid { display: grid; grid-template-columns: fit-content(9em) minmax(0, 1fr) 3em; gap: 10px 14px; align-items: center; font-size: var(--type-body); }
.part-bar-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.part-bar { height: 12px; border-radius: 6px; background: var(--input); overflow: hidden; }
.part-bar > span { display: block; height: 100%; border-radius: 6px; background: var(--control); }
.part-bar[data-top="true"] > span { background: var(--bar-top, var(--accent)); }
.part-bar-value { text-align: right; font-variant-numeric: tabular-nums; }
.part-bars[data-kind="value"] .part-bar-grid { grid-template-columns: fit-content(9em) minmax(0, 1fr) max-content; }
.part-bars[data-kind="value"] .part-bar-value { white-space: nowrap; }
.part-bars[data-kind="value"] .part-bar-label { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: break-word; }

.part-pips { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; font-variant-numeric: tabular-nums; }
.part-pips-row { display: inline-flex; gap: var(--space-1); }
.part-pips-row > i { width: 10px; height: 4px; border-radius: 1px; background: var(--border); }
.part-pips-row > i[data-lit="true"] { background: var(--pip, var(--fg)); }
.part-pips-text { white-space: nowrap; }
.part-bars-empty, .part-bars-note, .part-drop-line, .part-mask-note { margin: 0; color: var(--muted); font-size: var(--type-small); }
.part-drop-line:empty, .part-mask-note:empty { display: none; }

html[data-app] { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; cursor: default;
  overscroll-behavior: none; touch-action: manipulation; background: var(--bg); }
html[data-app] body { overscroll-behavior: none; }
html[data-app] :is(input, textarea, [contenteditable], [data-select="text"]) { -webkit-user-select: text; user-select: text; -webkit-touch-callout: default; }
html[data-app] :is(button, summary, [role="button"]) { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
html[data-app] img { -webkit-user-drag: none; }
@media (max-width: 899px) { html[data-app] :is(input, textarea, select) { font-size: max(16px, 1em); } }

.part-drop-box { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-family: var(--font); }
.part-drop { display: flex; flex-direction: column; align-items: center; gap: 8px; box-sizing: border-box; padding: 24px 16px; text-align: center; background: var(--input); color: var(--fg);
  border: 1px dashed var(--border); border-radius: var(--radius); }
.part-drop[data-over="true"] { border-color: var(--accent); background: var(--hover); }
.part-drop-icon { display: inline-flex; color: var(--muted); }
.part-drop-name { max-width: 100%; overflow-wrap: anywhere; font-size: var(--type-heading); font-weight: 600; }
.part-drop[data-picked="false"] .part-drop-name { color: var(--muted); font-weight: 600; }
.part-drop-detail { color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.part-drop-detail:empty { display: none; }
.part-drop-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.part-drop-button { box-sizing: border-box; min-height: 44px; padding: 0 16px; background: var(--card); color: var(--fg); border: 1px solid var(--border); border-radius: 22px; font: inherit;
  font-family: var(--font); font-size: var(--type-body); font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-drop-button:hover:not(:disabled) { background: var(--hover); }
.part-drop-button:active:not(:disabled) { background: var(--control); }
.part-drop-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-drop-button:disabled { opacity: .45; cursor: not-allowed; }

.part-drop[data-compact="true"] { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 4px 12px; padding: 12px 12px 12px 16px; text-align: left; }
.part-drop[data-compact="true"] .part-drop-icon { flex: none; }
.part-drop[data-compact="true"] .part-drop-name { flex: 1 1 8em; min-width: 0; font-size: var(--type-body); }
.part-drop[data-compact="true"][data-picked="false"] .part-drop-name { font-weight: 400; }
.part-drop[data-compact="true"] .part-drop-detail { flex: none; }
.part-drop[data-compact="true"] .part-drop-buttons { flex: none; flex-wrap: nowrap; margin-left: auto; gap: 4px; }
.part-drop[data-compact="true"] .part-drop-button { padding: 0 12px; background: transparent; border-color: transparent; font-weight: 600; }
.part-drop[data-compact="true"] .part-drop-button:hover:not(:disabled) { background: var(--hover); }

.part-mask-box { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-family: var(--font); }
.part-mask { position: relative; margin: 0; padding: 0; line-height: 0; overflow: hidden; background: var(--bg); border-radius: var(--radius); }
.part-mask-media { display: block; width: 100%; height: auto; }
.part-mask-layer { position: absolute; inset: 0; pointer-events: none; }
.part-mask-shape { display: block; width: 100%; height: 100%; object-fit: fill; }
.part-mask-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.part-mask-layer[data-look="tint"] { opacity: var(--mask-opacity, .6); }
.part-mask-layer[data-look="tint"][data-mode="luma"] { isolation: isolate; background: var(--mask-color, var(--accent)); mix-blend-mode: screen; }
.part-mask-layer[data-look="tint"][data-mode="luma"] .part-mask-shape { mix-blend-mode: multiply; }
[data-kind-of="clip"] { --k: var(--track-video); --kf: var(--track-video-fill); }
[data-kind-of="song"] { --k: var(--track-audio); --kf: var(--track-audio-fill); }
[data-kind-of="title"] { --k: var(--track-graphics); --kf: var(--track-graphics-fill); }
[data-kind-of="beat"] { --k: var(--beat); --kf: var(--beat-fill); }
[data-kind-of="marker"] { --k: var(--marker); --kf: var(--marker-fill); }
[data-kind-of="atom"] { --k: var(--level-atom); --kf: var(--level-atom-fill); }
[data-kind-of="molecule"] { --k: var(--level-molecule); --kf: var(--level-molecule-fill); }
[data-kind-of="organism"] { --k: var(--level-organism); --kf: var(--level-organism-fill); }

.kind-tile { display: inline-grid; place-items: center; flex: none; width: var(--kind-tile); height: var(--kind-tile);
  border-radius: var(--kind-tile-radius); color: var(--k, var(--fg));
  background: color-mix(in oklab, var(--kf, var(--raised)) var(--kind-tile-ground), transparent);
  box-shadow: inset 0 0 0 var(--kind-tile-edge-w) color-mix(in oklab, var(--k, var(--muted)) var(--kind-edge), var(--kf, var(--raised))); }
.kind-tile.small { width: var(--kind-tile-small); height: var(--kind-tile-small); border-radius: var(--kind-tile-radius-small); }
.kind-tile.tiny { width: var(--kind-tile-tiny); height: var(--kind-tile-tiny); border-radius: var(--kind-tile-radius-tiny); }
.kind-tile:not([data-kind-of]) { box-shadow: inset 0 0 0 var(--kind-tile-edge-w) var(--border); }
.part-button { -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-button > .word { text-box: trim-both cap alphabetic; }

.part-button { display: inline-flex; align-items: center; gap: var(--button-gap); font-family: inherit; }

.part-button:is(:active, [data-pressed]):not(:disabled) { transform: scale(var(--press-scale)); }
@media (min-width: 900px) {
  .part-button { min-height: var(--control-h); }
}

.part-button:is(.size-normal, .size-small, .size-large) { position: relative; justify-content: center; gap: var(--button-gap); min-height: var(--button-h);
  padding: 0 var(--button-pad); font-size: var(--button-font); line-height: 1.2; white-space: nowrap; text-decoration: none; color: var(--fg); background: transparent;
  border: 0; border-radius: var(--space-2); box-sizing: border-box; cursor: pointer; }
.part-button:is(.size-normal, .size-small, .size-large)::after { content: ""; position: absolute; left: 50%; top: 50%;
  width: max(100%, 44px); height: max(100%, 44px); transform: translate(-50%, -50%); }
.part-button.size-small { min-height: var(--button-h-small); padding: 0 var(--button-pad-small); font-size: var(--button-font-small); }
.part-button.size-large { gap: var(--button-gap-large); min-height: var(--button-h-large); padding: 0 var(--button-pad-large);
  font-size: var(--button-font-large); }

.part-button:is(.secondary, .outline) { background: var(--raised); }
.part-button.scrim { background: var(--scrim); }
@media (hover: hover) { .part-button:is(.size-normal, .size-small, .size-large):hover { background: var(--hover); } }

a.part-button:where(:not(.primary)):focus-visible { background: var(--hover); color: var(--fg); }
@media (hover: hover) { a.part-button:where(:not(.primary)):hover { background: var(--hover); color: var(--fg); } }

.part-button.alone { justify-content: center; min-width: var(--button-h); padding: 0; }
.part-button:is(.alone, [data-face="icon"]) > .word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
  white-space: nowrap; }
.part-button.primary:is(.size-normal, .size-small, .size-large) { min-width: var(--button-primary-min); color: var(--on-accent); background: var(--accent);
  font-weight: 600; }
@media (hover: hover) { .part-button.primary:is(.size-normal, .size-small, .size-large):hover { background: var(--accent-hover); } }
.part-button.primary:is(.size-normal, .size-small, .size-large):disabled { color: var(--muted); background: var(--input); border-color: var(--border); }
.part-button:is(.size-normal, .size-small, .size-large):disabled { color: var(--muted); }
.part-button.reach-phone { width: var(--button-reach); }
.part-button .part-key, .part-key { font: 600 var(--type-small)/16px var(--font-mono); min-width: 16px; padding: 0 var(--space-1);
  border-radius: 4px; background: color-mix(in oklab, var(--fg) 10%, transparent); color: var(--muted); text-align: center; }

@media (max-width: 899px), (any-pointer: coarse) {
  .part-key { display: none; }
}

.part-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.part-actions:not(:has(> :not([hidden]))) { display: none; }

.part-choice { display: grid; gap: var(--space-1); }
.part-choice small { color: var(--muted); font-size: var(--type-small); }

.part-button[data-place="on"] > .icon { color: var(--place-on, var(--marker)); }

.part-place-toggle.is-in { position: relative; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: none;
  min-width: 32px; height: 28px; padding: 0 var(--space-2); border: 0; border-radius: var(--radius-small);
  --trail-fill: color-mix(in oklab, var(--accent) 30%, var(--card)); --trail-press: color-mix(in oklab, var(--accent) 45%, var(--card));
  background: var(--trail-fill); color: var(--fg); font-size: var(--type-small); font-weight: 600;
  font-variant-numeric: tabular-nums; white-space: nowrap; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.part-place-toggle.is-in::before { content: ""; position: absolute; inset: -8px -6px; }

.part-place-toggle.is-in:active { background: var(--trail-press); }
.part-place-toggle.is-in:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.part-round:not([data-reach="phone"]) { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; min-height: 44px; padding: 0;
  border: 0; border-radius: 50%; background: var(--raised); color: var(--fg); }
.part-round:not([data-reach="phone"]) .word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 899px) {
  .part-round[data-reach="phone"] { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; min-height: 44px; padding: 0;
    border: 0; border-radius: 50%; background: var(--raised); color: var(--fg); }
  .part-round[data-reach="phone"] .word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

@media (min-width: 900px) {
  .part-round:not([data-reach="phone"], [data-size="small"]) { width: var(--control-h); height: var(--control-h); min-height: var(--control-h); }
}
.part-round { -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-round:active:not(:disabled) { background: var(--control); }

@media (min-width: 900px) and (pointer: fine) {
  .part-round[data-size="small"]:not([data-reach="phone"]) { width: 24px; height: 24px; min-height: 24px; border: 0; background: none; }
  .part-round[data-size="small"]:not([data-reach="phone"]):active:not(:disabled) { background: var(--control); }
  .part-round[data-size="small"] svg { width: 14px; height: 14px; }
}

.part-round[data-reach][data-toggle], .part-round[data-reach][data-toggle]:active:not(:disabled) { background: var(--round-toggle-ground); }
.part-round[data-reach][data-toggle] { --round-toggle-ground: none; position: relative; color: var(--muted); }
.part-round[data-reach][data-toggle="on"] { --round-toggle-ground: radial-gradient(circle, var(--raised) 15.5px, transparent 16px); color: var(--fg); }
.part-round[data-reach][data-toggle="off"]::after { content: ""; position: absolute; left: 50%; top: 50%; width: 22px; height: 2px; border-radius: 999px;
  background: currentColor; transform: translate(-50%, -50%) rotate(-45deg); }

.part-round.part-talk { touch-action: none; }

.part-round.part-talk[data-labelled] { width: auto; gap: var(--space-2); padding: 0 var(--space-4) 0 var(--space-3); border-radius: 22px;
  font: 600 var(--type-body)/1 var(--font); }
.part-round.part-talk[data-labelled] .word { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
.part-round.part-talk:disabled { opacity: .5; }
.part-round.part-talk.held, .part-round.part-talk.held:active:not(:disabled) { background: var(--track-audio); color: var(--on-accent); border-color: transparent; box-shadow: 0 0 0 4px var(--track-audio-fill); }
.part-round.part-talk.held.cancelling, .part-round.part-talk.held.cancelling:active:not(:disabled) { background: var(--fact-red); color: var(--on-accent); border-color: transparent;
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--fact-red) 30%, transparent); }

.part-switch { position: relative; display: inline-flex; flex: none; align-items: center; justify-content: flex-end; width: 44px; min-height: 44px; }
.part-switch-input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; min-height: 0; margin: 0; opacity: 0; cursor: pointer; }
.part-switch-track { display: block; width: 32px; height: 18px; border-radius: 12px; background: var(--control); transition: background var(--dur-quick) var(--ease-out); }
.part-switch-knob { display: block; width: 14px; height: 14px; margin: 2px; border-radius: 50%; background: var(--muted); transition: transform var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out); }
.part-switch-input:checked + .part-switch-track { background: var(--accent); }
.part-switch-input:checked + .part-switch-track .part-switch-knob { background: var(--on-accent); transform: translateX(14px); }
.part-switch-input:focus-visible + .part-switch-track { outline: 2px solid var(--accent); outline-offset: 3px; }
.part-switch-input:disabled { cursor: default; }
.part-switch-input:disabled + .part-switch-track { opacity: .5; }
.part-switch { -webkit-tap-highlight-color: transparent; }

.part-switch-row { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin: 0;
  color: var(--fg); font: var(--type-body)/1.4 var(--font); cursor: pointer; }
.part-switch-row[hidden] { display: none; }
.part-switch-row-name { min-width: 0; overflow-wrap: anywhere; }

.part-switch-row-name:has(> svg) { display: inline-flex; align-items: center; gap: var(--space-3); }
.part-switch-row-name > svg { flex: none; color: var(--muted); }
.part-switch-row:has(.part-switch-input:disabled) { color: var(--muted); cursor: default; }

.part-data-table { width: 100%; border-collapse: collapse; color: var(--fg); font: var(--type-body)/1.4 var(--font); }
.part-data-table th, .part-data-table td {
  padding: var(--space-2) var(--space-3) var(--space-2) 0; text-align: left; vertical-align: top; font-weight: 400; overflow-wrap: break-word;
}
.part-data-table tr > :last-child { padding-right: 0; }
.part-data-table thead th { padding-top: 0; font-size: var(--type-small); color: var(--muted); }
.part-data-table tbody tr { border-top: 1px solid var(--border); }
.part-data-table a { color: inherit; text-decoration: underline; }
.part-data-table .part-data-table-head { font-weight: 600; }
.part-data-table-note { display: block; font-weight: 400; font-size: var(--type-small); color: var(--muted); }
.part-data-table-more { color: var(--muted); }
.part-data-table-word { display: none; }
.part-data-table .part-data-table-title { border-top: 0; }
.part-data-table .part-data-table-title th { padding: var(--space-6) 0 var(--space-2); font-size: var(--type-heading); font-weight: 600; }
.part-data-table tbody:first-of-type .part-data-table-title th { padding-top: var(--space-3); }
.part-data-table-title .part-data-table-note { display: inline; margin-left: var(--space-2); font-size: var(--type-body); }
.part-data-table-empty { margin: 0; color: var(--muted); font: var(--type-body)/1.4 var(--font); }

@media (max-width: 899px) {
  .part-data-table:not(.part-data-table-columns), .part-data-table:not(.part-data-table-columns) :is(thead, tbody, tr, th, td) { display: block; }
  .part-data-table:not(.part-data-table-columns) thead { display: none; }
  .part-data-table:not(.part-data-table-columns) tbody tr { padding: var(--space-2) 0; }
  .part-data-table:not(.part-data-table-columns) td {
    display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: var(--space-2); padding: var(--space-1) 0;
  }
  .part-data-table:not(.part-data-table-columns) .part-data-table-head { padding: var(--space-1) 0; }
  .part-data-table:not(.part-data-table-columns) .part-data-table-word { display: block; font-size: var(--type-small); line-height: 1.6; color: var(--muted); }
  .part-data-table .part-data-table-title th { padding: var(--space-4) 0 var(--space-1); }
  .part-data-table-title .part-data-table-note { display: block; margin-left: 0; }
  .part-data-table-columns th, .part-data-table-columns td { padding: var(--space-2) var(--space-2) var(--space-2) 0; }
}
.part-chip { display: inline-flex; align-items: center; gap: var(--space-1); height: 22px; padding: 0 var(--space-2); border-radius: var(--radius);
  font-size: var(--type-small);
  background: var(--raised); color: var(--fg); white-space: nowrap; max-width: 100%; overflow: hidden; }
.part-chip-x { border: 0; background: transparent; color: var(--muted); padding: 0; min-height: 0; }

@media (pointer: coarse) {
  .part-chip:has(> .part-chip-x) { overflow: visible; min-width: 0; }

  .part-chip:has(> .part-chip-x) > .word { min-width: 0; overflow: hidden; text-overflow: ellipsis; text-box: normal; }

  .part-chip-x { position: relative; display: inline-flex; align-items: center; height: 44px;
    padding-inline: var(--space-2); margin-inline: calc(-1 * var(--space-2)); }
  .part-chip-x::after { content: ""; position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
}
.part-chip > .word { text-box: trim-both cap alphabetic; }

.part-chip.has-icons { box-sizing: border-box; height: 32px; min-width: 0; gap: var(--space-2); padding: 0 var(--space-3); border: 0; }
button.part-chip.has-icons { cursor: pointer; -webkit-tap-highlight-color: transparent; }

span.part-chip.has-icons { height: auto; min-height: 24px; padding: 0; gap: var(--space-1); background: transparent; color: var(--fg); }
span.part-chip.has-icons > svg { color: var(--muted); }
.part-chip.has-icons > svg { flex: none; }
.part-chip.has-icons > .word { min-width: 0; overflow: hidden; text-overflow: ellipsis; text-box: normal; }
button.part-chip.has-icons:active { background: var(--control); }
button.part-chip.has-icons:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }

@media (pointer: coarse) { button.part-chip.has-icons { position: relative; overflow: visible; } button.part-chip.has-icons::after { content: "";
  position: absolute; inset: -6px -4px; } }

.part-chip.is-named { min-width: 0; }
.part-chip.is-named > .word { min-width: 0; overflow: hidden; text-overflow: ellipsis; text-box: normal; }

.part-chip.tone-good { background: color-mix(in oklab, var(--fact-green) 28%, var(--raised)); }
.part-chip.tone-warn { background: color-mix(in oklab, var(--fact-orange) 28%, var(--raised)); }
.part-chip.tone-bad { background: color-mix(in oklab, var(--fact-red) 28%, var(--raised)); }

.part-chip.is-press { box-sizing: border-box; height: 28px; padding: 0 var(--space-3); border: 1px solid var(--border); background: transparent;
  color: var(--muted); font-family: var(--font); cursor: pointer;
  -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
@media (hover: hover) { .part-chip.is-press:hover { border-color: var(--control); color: var(--fg); } }
.part-chip.is-press[aria-pressed="true"] { background: var(--control); border-color: var(--control); color: var(--fg); }

.part-chip.is-press:is(:active, [data-pressed]) { background: var(--control); border-color: var(--control); color: var(--fg); }
.part-chip.is-press:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
@media (pointer: coarse) { .part-chip.is-press { position: relative; overflow: visible; } .part-chip.is-press::after { content: ""; position: absolute; inset: -8px -4px; } }
button.part-chip, .part-chip-x { -webkit-tap-highlight-color: transparent; }

.part-chip.is-mark { box-sizing: border-box; height: 24px; gap: var(--space-1); padding: 0 var(--space-2); color: var(--muted); }
.part-chip.is-mark > svg { flex: none; }
.part-chip.is-mark:is(.tone-good, .tone-warn, .tone-bad) { background: var(--raised); }
.part-chip.is-mark.tone-good > svg { color: var(--fact-green); }
.part-chip.is-mark.tone-warn > svg { color: var(--fact-orange); }
.part-chip.is-mark.tone-bad > svg { color: var(--fact-red); }

.clip-tile { flex: 0 0 auto; display: grid; gap: 4px; width: 92px; padding: 0; border: 0; background: none; color: var(--fg); font: inherit; cursor: pointer; }
.clip-tile:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius); }
.clip-tile-picture { position: relative; display: block; width: 92px; height: 92px; border-radius: var(--radius); overflow: hidden; background: var(--tl-bg); box-shadow: inset 0 0 0 1px var(--border); }
.clip-tile-picture > video, .clip-tile-picture > img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.clip-tile.held .clip-tile-picture { box-shadow: 0 0 0 2px var(--accent); }
.clip-tile.stopped .clip-tile-picture { box-shadow: 0 0 0 2px var(--problem); }
.clip-tile-ring { position: absolute; inset: 0; margin: auto; width: 46px; height: 46px; fill: none; stroke-width: 5; stroke-linecap: round; }
.clip-tile-ring circle { stroke: var(--scrim); }
.clip-tile-ring circle.done { stroke: var(--accent); }
.clip-tile-ring.making circle.done { stroke: var(--fg); }
.clip-tile-badge { position: absolute; inset: 0; margin: auto; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--scrim); }
.clip-tile-badge.sent { background: var(--live); color: var(--bg); }
.clip-tile-badge.failed, .clip-tile-badge.cannot { background: var(--problem); color: var(--bg); }
.clip-tile-sizes { display: grid; font-size: var(--type-small); line-height: 1.3; color: var(--muted); text-align: center; white-space: nowrap; }

.part-word-chip { flex: none; box-sizing: border-box; display: inline-flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; min-height: 44px; padding: 4px 10px; background: var(--raised); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius); font: inherit; font-size: var(--type-body); }
button.part-word-chip > .word { text-box: normal; }
.part-word-chip .time { color: var(--muted); font-family: var(--font-mono); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.part-word-chip.rough { border-style: dashed; }
.part-word-chip.on { border-color: var(--fg); }
.part-word-chip.marked .word { color: var(--marker); }

.part-word-chip.is-row { flex: 1; min-width: 0; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; padding: 0 6px; background: none; border: 0; }
.part-word-chip.is-row::before { content: ""; flex: none; width: 7px; height: 7px; border: 1.5px solid var(--fg); border-radius: 50%; background: var(--fg); }
.part-word-chip.is-row.rough::before { background: none; }
.part-word-chip.is-row .word { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; line-height: 1.5; }
@media (min-width: 900px) and (pointer: fine) { .part-word-chip.is-row { min-height: 30px; } }
.part-seg { display: inline-flex; gap: 2px; padding: 2px; border-radius: calc(var(--radius) + 2px); background: var(--card); }
.part-seg[hidden] { display: none; }
.part-seg button { border: 1px solid transparent; background: transparent; color: var(--muted);
  padding: var(--space-1) var(--space-2); border-radius: var(--radius);
  min-height: var(--control-h); font-size: var(--button-font); }

.part-seg button.with-picture { display: inline-flex; align-items: center; justify-content: center; gap: var(--button-gap); }
.part-seg button.on { background: var(--segment-on); color: var(--fg); font-weight: 600; }

.part-seg button:has(> .note) { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.part-seg button > .note { font-weight: 400; font-size: var(--type-small); }
.part-seg button > .word, .part-seg button > .note { white-space: nowrap; }
.part-seg button:not(.on):active:not(:disabled) { background: color-mix(in oklab, var(--segment-on) 55%, transparent); color: var(--fg); }
@media (max-width: 899px) {
  .part-seg button { min-height: 40px; min-width: 40px; }
}

.part-seg.reach-line { display: flex; }
.part-seg.reach-line > button { flex: 1 1 auto; justify-content: center; gap: var(--button-gap); padding-inline: var(--space-1); white-space: nowrap; }

.part-seg.chips { flex-wrap: wrap; gap: var(--space-2); padding: 0; background: none; }
.part-seg.chips > button { display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--button-h-small); padding: 0 var(--space-3);
  border-radius: 999px; background: var(--raised); color: var(--fg); font-size: var(--type-small); }
.part-seg.chips > button.on { background: var(--fg); color: var(--on-accent); font-weight: 600; }
.part-seg button { -webkit-tap-highlight-color: transparent; }
.part-from { color: var(--muted); font-size: var(--type-small); }
.part-value { display: inline-flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; min-width: 0; }
.part-from.from-own { color: var(--fg); }
.part-reset { border: 0; background: transparent; color: var(--muted); padding: 2px var(--space-2); min-height: 22px;
  display: inline-flex; align-items: center; gap: var(--space-1); font: inherit; font-size: var(--type-small); }
.part-reset:hover { color: var(--fg); background: var(--hover); }
@media (max-width: 899px) {
  .part-reset { min-height: 40px; min-width: 40px; }
}

.ri-label { color: var(--muted); font-size: var(--type-small); line-height: 1.2; padding-top: var(--space-2); display: flex; align-items: center;
  gap: var(--space-1); }
.ri-label > .icon { flex: none; }
.part-reset { -webkit-tap-highlight-color: transparent; }

.part-outcome { display: flex; align-items: center; gap: 8px; min-width: 0; min-height: var(--button-h-small); padding: 0 4px; font-size: var(--type-body);
  color: var(--fg); }
.part-outcome > svg { flex: none; color: var(--muted); }
.part-outcome .words { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.part-outcome > button { flex: none; }
.part-outcome.problem, .part-outcome.problem > svg { color: var(--problem); }

.part-outcome.problem .words { white-space: normal; overflow-wrap: anywhere; padding-block: 4px; }
.part-outcome .pulse { flex: none; width: 8px; height: 8px; margin: 0 3px; border-radius: 50%; background: var(--fg); animation: pulse 1s infinite alternate; }
.part-outcome > button { -webkit-tap-highlight-color: transparent; }

.part-paused { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); border: 1px solid var(--border);
  border-radius: var(--radius); background: var(--card); color: var(--fg); }
.part-paused .paused-head { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-size: var(--type-body); }
.part-paused .paused-mark { display: inline-flex; flex: none; align-items: center; justify-content: center; inline-size: 28px; block-size: 28px;
  border-radius: 50%; background: var(--control); color: var(--muted); }
.part-paused .paused-words { margin: 0; color: var(--muted); font-size: var(--type-body); }
.part-paused .paused-acts { display: flex; flex-wrap: wrap; gap: var(--space-2); }

.part-fault-line { display: flex; align-items: center; gap: var(--space-2); min-width: 0; color: var(--fg); font-size: var(--type-body); }
.part-fault-line .fault-sign { display: inline-flex; flex: none; color: var(--muted); }
.part-fault-line .fault-words { flex: 1; min-width: 0; }
.part-fault-line .part-button { flex: none; }
.part-fault-line.card { padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); }

.part-button.part-receipt { display: inline-flex; align-items: center; gap: var(--space-2); max-inline-size: 100%; padding: 0 var(--space-3);
  border: 1px solid var(--border); border-radius: 999px; background: var(--raised); color: var(--fg); font-size: var(--type-body); white-space: nowrap; }
.part-receipt .receipt-words { overflow: hidden; text-overflow: ellipsis; }
.part-button.part-receipt { block-size: 36px; box-shadow: var(--lift); }
.part-receipt.tone-marker > .icon:first-child { color: var(--marker); }

.part-point-picker { display: grid; gap: 8px; justify-items: start; width: 100%; }
.part-stage { position: relative; width: 100%; }
.part-stage > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.part-point-picker .part-stage { cursor: crosshair; touch-action: manipulation; }
.part-point-picker .part-stage > img { user-select: none; -webkit-user-drag: none; }
.part-point { position: absolute; box-sizing: border-box; width: 44px; height: 44px; margin: -22px 0 0 -22px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.part-point > span { position: absolute; left: 11px; top: 11px; box-sizing: border-box; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: var(--on-accent);
  font: 600 var(--type-heading)/1 var(--font); box-shadow: 0 0 0 2px var(--fg), 0 1px 4px var(--shadow); }
.part-point.keep > span { background: var(--fact-green); }
.part-point.remove > span { background: var(--fact-red); }
.part-point:hover > span { transform: scale(1.12); }
.part-point:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.part-point-hint { margin: 0; color: var(--muted); font: var(--type-small) var(--font); }

.part-tiles { --tile-h: 76px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 10px; min-width: 0; font-family: var(--font); }
.part-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; max-width: 100%; min-width: 0; padding: 0; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--fg);
  font: var(--type-body) var(--font); text-align: left; cursor: pointer; }
.part-tile-frame { position: relative; display: block; box-sizing: border-box; height: var(--tile-h); min-width: 44px; max-width: 100%; overflow: hidden; border-radius: var(--radius-small); background: var(--input); }
.part-tile-picture { display: block; height: 100%; }
.part-tile-picture > * { display: block; height: 100%; width: auto; max-width: 100%; object-fit: cover; }
.part-tile-name { box-sizing: border-box; width: 0; min-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 1.25; }
.part-tile-badge { position: absolute; right: 6px; bottom: 6px; padding: 1px 6px; border-radius: 4px; background: var(--scrim); color: var(--fg); font: 600 var(--type-small)/1.4 var(--font-mono); font-variant-numeric: tabular-nums; }
.part-tile[aria-pressed="true"] .part-tile-frame { outline: 2px solid var(--sel); outline-offset: 1px; }
.part-tile:hover:not([aria-pressed="true"]) .part-tile-frame { outline: 2px solid var(--control); outline-offset: 1px; }
.part-tile:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.part-tile-more { align-items: center; }
.part-tile-more .part-tile-frame { display: grid; place-items: center; width: 56px; background: transparent; }
.part-tile-more:hover .part-tile-frame { background: var(--hover); }
.part-tile-more .part-tile-name { width: auto; text-align: center; white-space: nowrap; }

.part-choices { display: grid; gap: 6px; min-width: 0; font-family: var(--font); }
.part-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 14px; box-sizing: border-box; min-height: 56px; padding: 10px 14px; border-radius: var(--radius-small); background: var(--input); color: var(--fg); cursor: pointer; }
.part-choice[data-on="true"] { background: var(--segment-on); }
.part-choice:hover:not([data-on="true"], [data-off="true"]) { background: var(--hover); }
.part-choice[data-off="true"] { color: var(--muted); cursor: not-allowed; }

.part-choice input { appearance: none; box-sizing: border-box; display: grid; place-content: center; width: 20px; height: 20px; min-height: 0; margin: 0;
  border: 2px solid var(--muted); border-radius: 50%; background: transparent; cursor: inherit; }
.part-choice input::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--fg); transform: scale(0); }
.part-choice input:checked { border-color: var(--fg); }
.part-choice input:checked::before { transform: scale(1); }
.part-choice input:disabled { border-color: var(--control); }
.part-choice input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.part-choice-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 16px; min-width: 0; }
.part-choices[data-notes="under"] .part-choice-main { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; }
.part-choice-body { display: grid; gap: 1px; min-width: 0; }
.part-choice-words { overflow-wrap: break-word; font-size: var(--type-heading); line-height: 1.3; }
.part-choice-sub, .part-choice-note { color: var(--muted); font-size: var(--type-body); line-height: 1.3; }
.part-choice-note { font-variant-numeric: tabular-nums; }
.part-choice { row-gap: 8px; }
.part-choice > .part-bars { grid-column: 2; gap: 4px; max-width: 22rem; }
.part-choice > .part-bars .part-bar-grid { grid-template-columns: max-content minmax(0, 1fr) minmax(4.5em, max-content); gap: 4px 10px; font-size: var(--type-small); }
.part-choice > .part-bars .part-bar-label { color: var(--muted); }
.part-choice > .part-bars .part-bar { height: 8px; }
.part-choice[data-on="true"] > .part-bars .part-bar:not([data-top="true"]) > span { background: var(--muted); }

.part-step-row { box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 10px; border: 1px solid var(--control); border-radius: 10px; color: var(--fg);
  font: var(--type-body)/1.4 var(--font); font-variant-numeric: tabular-nums; }
.part-step-row:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.part-step-row .step-word { color: var(--muted); }
.part-step-row .step-hint { color: var(--muted); font-size: var(--type-small); }

@media (hover: none) and (pointer: coarse) { .part-step-row .step-hint { display: none; } }

.part-run-rows { display: grid; }
.part-run-rows > .part-feed { position: relative; }
.part-run-pick { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
  -webkit-tap-highlight-color: transparent; }
.part-run-pick::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.part-run-pick:focus-visible { outline: none; }
.part-run-pick:focus-visible::after { outline: 2px solid var(--accent); outline-offset: -2px; }
@media (hover: hover) { .part-run-rows > .part-feed:has(.part-run-pick:hover) { background: var(--hover); } }
.part-run-rows > .part-feed:has(.part-run-pick:active) { background: var(--raised); }
.part-run-rows .part-feed-trail { position: relative; z-index: 1; }

.part-talk-field { box-sizing: border-box; display: grid; gap: var(--space-2); margin: 0;
  padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3); color: var(--fg); background: var(--raised); border: 1px solid var(--border);
  border-radius: 14px; }
.part-talk-field:focus-within { border-color: color-mix(in oklab, var(--accent) 60%, var(--border)); }
.part-talk-words { display: flex; align-items: center; gap: var(--space-1); min-width: 0; }
.part-talk-input { flex: 1 1 auto; box-sizing: border-box; min-width: 0; width: 100%; max-height: 160px; padding: 0; color: var(--fg); background: transparent; border: none; outline: none;
  font: inherit; line-height: 1.45; resize: none; overflow-y: auto; }
.part-talk-input::placeholder { color: var(--muted); }
.part-talk-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.part-talk-below { display: flex; flex: 1 1 0; flex-wrap: wrap; align-items: center; gap: var(--space-1); min-width: 0; }
.part-talk-acts { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; }

.part-talk-field.has-voice:not(.has-text) .part-talk-send, .part-talk-field.has-voice.has-text .part-talk { display: none; }
.part-talk-send:not(:disabled) { color: var(--on-accent); background: var(--accent); border-color: transparent; }
.part-talk-send:disabled { opacity: .5; }

.part-talk-pictures { display: flex; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-2) 0 2px; }
.part-talk-pictures[hidden] { display: none; }
.part-talk-field[data-dropping] { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 35%, transparent); }

@media (min-width: 900px) {

  .part-talk-field { grid-template-areas: "pictures" "words" "line" "row"; row-gap: 0; }
  .part-talk-pictures { grid-area: pictures; } .part-talk-words { grid-area: words; min-height: 24px; } .part-talk-field .part-talk-line { grid-area: line;
    margin-top: var(--space-2); } .part-talk-row { grid-area: row; margin-top: var(--space-2); }
  .part-talk-field .part-talk-line:is(.tone-live, .tone-cancel, .tone-hint):not([hidden]) { grid-area: words; z-index: 1; align-self: stretch; margin-top: 0; background: var(--raised); }
  .part-talk-field .part-talk-line:is(.tone-live, .tone-cancel) .part-talk-trash { width: 24px; height: 24px; min-width: 24px; min-height: 24px; }
}

.part-talk-line { display: flex; align-items: center; gap: var(--space-2); min-width: 0; color: var(--muted); font-size: var(--type-small);
  font-variant-numeric: tabular-nums; }
.part-talk-line[hidden] { display: none; }
.part-talk-line.tone-live { color: var(--fg); }
.part-talk-line.tone-warn { color: var(--warn); }

.part-talk-line.tone-hint { color: var(--muted); animation: part-talk-hint 2600ms var(--ease-out) forwards; }
@keyframes part-talk-hint { 0%, 75% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .part-talk-line.tone-hint { animation: none; } }
.part-talk-line.tone-cancel { color: var(--fact-red); }
.part-talk-line .says { min-width: 0; line-height: 1.3; overflow-wrap: anywhere; }
.part-talk-line .pulse { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--track-audio); animation: part-talk-pulse 1s infinite alternate; }
@keyframes part-talk-pulse { to { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .part-talk-line .pulse { animation: none; } }
.part-talk-wave { display: inline-flex; align-items: center; gap: 2px; height: 20px; }
.part-talk-wave i { display: block; width: 2px; height: 3px; border-radius: 2px; background: var(--track-audio); }

.part-talk-line .part-talk-trash { position: relative; flex: none; width: 36px; height: 36px; min-width: 36px; min-height: 36px; padding: 0; }
.part-talk-line .part-talk-trash::before { content: ""; position: absolute; inset: -4px; }
@media (max-width: 899px) {
  .part-talk-field { grid-template-columns: minmax(0, 1fr); grid-template-areas: "pictures" "field" "line" "below"; align-items: end;
    gap: var(--space-2) var(--space-2); padding: 0; background: none; border: none; border-radius: 0; }
  .part-talk-words { grid-area: field; box-sizing: border-box; min-height: 52px;
    padding: var(--space-1) calc(7 * var(--space-2)) var(--space-1) var(--space-4); background: var(--raised); border: 1px solid var(--border);
    border-radius: 26px; }
  .part-talk-field:focus-within .part-talk-words { border-color: color-mix(in oklab, var(--accent) 60%, var(--border)); }
  .part-talk-input { font-size: var(--type-heading); }
  .part-talk-pictures { grid-area: pictures; padding: var(--space-2) var(--space-1) 0; }
  .part-talk-field[data-dropping] { box-shadow: none; }
  .part-talk-field[data-dropping] .part-talk-words { border-color: var(--accent); }

  .part-talk-field.has-picture-button .part-talk-words { padding-left: calc(7 * var(--space-2)); }
  .part-talk-add { grid-area: field; justify-self: start; align-self: center; z-index: 2; margin-left: var(--space-1); }
  .part-talk-field:has(.part-talk-line:is(.tone-live, .tone-cancel, .tone-hint):not([hidden])) .part-talk-add { visibility: hidden; }
  .part-talk-line { grid-area: line; }
  .part-talk-line:is(.tone-live, .tone-cancel, .tone-hint):not([hidden]) { grid-area: field; z-index: 1; align-self: stretch; box-sizing: border-box;
    min-height: 52px; padding: 0 calc(7 * var(--space-2)) 0 var(--space-4);
    background: var(--raised); border: 1px solid var(--border); border-radius: 26px; font-size: var(--type-body); }
  .part-talk-row { display: contents; }
  .part-talk-below { grid-area: below; }
  .part-talk-acts { grid-area: field; justify-self: end; align-self: center; z-index: 2; margin: 0 var(--space-1) 0 0; }
}

.part-short-text { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); min-width: 0; }
.part-short-text[hidden] { display: none; }
.part-short-text-line { display: flex; flex: 1 1 260px; align-items: center; gap: var(--space-2); min-width: 0; }

.part-short-text .part-textfield-input { font-size: var(--type-heading); }
.part-short-text-at { flex: none; color: var(--muted); font: var(--type-small)/1 var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.part-short-text-at[hidden] { display: none; }
.part-short-text-acts { display: flex; flex: none; gap: var(--space-2); }
.part-short-text-acts > .part-button { min-width: 44px; min-height: 44px; }

.part-suggest .part-search-end:disabled { opacity: 0.38; cursor: default; }
.part-suggest .part-search-end:disabled:hover { color: var(--muted); }
.part-suggest[data-asking] .part-search-end { animation: part-suggest-asking 1.2s ease-in-out infinite; }
@keyframes part-suggest-asking { 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .part-suggest[data-asking] .part-search-end { animation: none; } }

.part-select { position: relative; display: block; box-sizing: border-box; width: 100%; min-width: 0; margin: 0; }
.part-select-input { -webkit-appearance: none; appearance: none; display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 0 44px 0 14px;
  background: var(--input); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius); outline: none; font: inherit; font-family: var(--font); font-size: var(--type-heading);
  line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
@media (hover: hover) { .part-select-input:hover:not(:disabled) { border-color: var(--control); } }
.part-select-input:focus-visible { border-color: var(--control); outline: 2px solid var(--accent); outline-offset: 1px; }
.part-select-input:active:not(:disabled) { background: var(--hover); }
.part-select-input:disabled { color: var(--muted); cursor: default; }
.part-select-input option { background: var(--card); color: var(--fg); }
.part-select-chevron { position: absolute; top: 50%; right: 14px; display: inline-flex; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.part-select-chevron > svg { width: 18px; height: 18px; }
.part-select-input:disabled + .part-select-chevron { opacity: .5; }

.part-textarea { display: block; box-sizing: border-box; width: 100%; min-width: 0; margin: 0; }
.part-textarea-input { -webkit-appearance: none; appearance: none; display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 10px 14px;
  background: var(--input); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius); outline: none; font: inherit; font-family: var(--font); font-size: var(--type-heading);
  line-height: 1.45; resize: vertical; overflow-wrap: anywhere; }
@media (hover: hover) { .part-textarea-input:hover:not(:disabled) { border-color: var(--control); } }
.part-textarea-input:focus-visible { border-color: var(--control); outline: 2px solid var(--accent); outline-offset: 1px; }
.part-textarea-input::placeholder { color: var(--muted); opacity: 1; }
.part-textarea-input:disabled { color: var(--muted); resize: none; cursor: default; }

.part-textarea.size-small > .part-textarea-input { min-height: var(--control-h); padding: 6px var(--space-2); font-size: var(--field-font-small); }
@media (max-width: 899px) { .part-textarea.size-small > .part-textarea-input { font-size: var(--type-heading); } }

.part-textfield { display: block; box-sizing: border-box; width: 100%; min-width: 0; margin: 0; }
.part-textfield-input { -webkit-appearance: none; appearance: none; display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px;
  margin: 0; padding: 0 var(--space-4);
  background: var(--input); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius); outline: none; font: inherit; font-family: var(--font); font-size: var(--type-heading);
  line-height: 1.3; text-overflow: ellipsis; }
.part-textfield-input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
@media (hover: hover) { .part-textfield-input:hover:not(:disabled) { border-color: var(--control); } }
.part-textfield-input:focus-visible { border-color: var(--control); outline: 2px solid var(--accent); outline-offset: 1px; }
.part-textfield-input::placeholder { color: var(--muted); opacity: 1; }
.part-textfield-input:disabled { color: var(--muted); cursor: default; }

.part-textfield.size-small { padding-block: calc((44px - var(--control-h)) / 2); margin-block: calc((var(--control-h) - 44px) / 2); }
.part-textfield.size-small > .part-textfield-input { min-height: var(--control-h); padding: 0 var(--space-2); font-size: var(--field-font-small); }
@media (max-width: 899px) { .part-textfield.size-small > .part-textfield-input { font-size: var(--type-heading); } }

.part-qr { display: block; width: 100%; height: auto; aspect-ratio: 1; background: var(--qr-light); border-radius: var(--radius-s, 6px); }
.part-qr path { fill: var(--qr-dark); }

.part-menu-anchor { position: relative; display: inline-flex; }
.part-menu-list { position: absolute; z-index: 5; top: calc(100% + 4px); right: 0; box-sizing: border-box; min-width: 160px; max-width: min(280px, 90vw); padding: var(--menu-pad); margin: 0;
  background: var(--menu-fill); border: 1px solid var(--menu-edge); border-radius: var(--menu-radius); box-shadow: var(--lift); }

.part-menu-anchor.above > .part-menu-list { top: auto; bottom: calc(100% + 4px); }
.part-menu-list[hidden] { display: none; }
.part-menu-item { -webkit-appearance: none; appearance: none; display: flex; align-items: center; gap: 10px; box-sizing: border-box; width: 100%; min-height: max(var(--menu-row-h), 44px); padding: 0 var(--menu-row-pad); margin: 0;
  background: transparent; color: var(--fg); border: 0; border-radius: calc(var(--menu-radius) - var(--menu-pad)); font: inherit; font-family: var(--font); font-size: var(--type-heading); text-align: left; white-space: nowrap;
  cursor: pointer; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
button.part-menu-item > .word { overflow: hidden; text-overflow: ellipsis; text-box: normal; }
@media (hover: hover) { .part-menu-item:hover { background: var(--hover); } }
.part-menu-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; background: var(--hover); }

.part-menu-anchor[data-by="pointer"] .part-menu-item:focus-visible { outline: none; background: transparent; }
@media (hover: hover) { .part-menu-anchor[data-by="pointer"] .part-menu-item:focus-visible:hover { background: var(--hover); } }
.part-menu-item:active { background: var(--control); }
.part-menu-item:disabled { color: var(--muted); cursor: default; background: transparent; }
.part-menu-item.danger { color: var(--problem); }
.part-menu-item[aria-current] { background: var(--hover); font-weight: 600; }
.part-menu-gap { width: 16px; flex: none; }
.part-menu-line { height: 1px; margin: 6px 4px; border: 0; background: var(--menu-edge); }
.part-menu-note { margin: 0; padding: 2px var(--menu-row-pad) 6px; color: var(--muted); font-size: var(--type-small); white-space: normal; }

.part-menu-control { display: flex; align-items: center; justify-content: space-between; gap: 14px; box-sizing: border-box; min-height: var(--menu-row-h); padding: 0 var(--menu-row-pad); color: var(--fg); font-size: var(--type-body); }
.part-menu-control.under { display: grid; justify-content: stretch; gap: 6px; min-height: 0; padding: 6px 4px 4px; }
.part-menu-control.under > .word { padding: 0 calc(var(--menu-row-pad) - 4px); color: var(--muted); font-size: var(--type-small); }

@media (max-width: 899px) {
  .part-menu-anchor > .part-menu-list.sheet { position: fixed; z-index: 60; top: auto; right: 0; bottom: 0; left: 0;
    min-width: 0; max-width: none; max-height: 85vh;
    width: auto; height: auto; margin: 0; color: var(--fg);
    overflow-y: auto; overscroll-behavior: contain; padding-bottom: calc(var(--menu-pad) + env(safe-area-inset-bottom)); border-bottom: 0;
    border-radius: var(--menu-radius) var(--menu-radius) 0 0; }
}

.part-more-menu { display: inline-block; }

.part-more-menu[data-over="picture"] .part-menu-button:not([data-reach="phone"]) { position: relative; width: 32px; height: 32px; min-height: 32px; background: var(--scrim); border-color: transparent; }

.part-more-menu[data-over="bar"] .part-menu-button:not(:active) { background: none; }
.part-more-menu[data-over="picture"] .part-menu-button::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; }

.part-details-line { display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--button-h-small); padding: 0; border: 0;
  background: transparent; color: var(--muted);
  font: inherit; font-size: var(--type-small); cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent; }
@media (hover: hover) { .part-details-line:hover { color: var(--fg); } }
.part-details-line:focus-visible { outline: 2px solid var(--sel); outline-offset: 2px; border-radius: var(--radius-small); }
.part-details-body[hidden] { display: none; }
.part-details-steps { display: flex; gap: var(--space-2); margin: var(--space-1) 0 0; }
.part-details-step { display: grid; gap: var(--space-1); min-width: 74px; }
.part-details-step > i { display: block; height: 6px; border-radius: 3px; background: var(--control); }
.part-details-step > span { display: flex; align-items: center; gap: var(--space-1); white-space: nowrap; font-size: var(--type-small); }
.part-details-step > span svg { color: var(--muted); }
.part-details-step > b { font-weight: 400; color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.part-details-pairs { display: grid; grid-template-columns: auto 1fr; gap: var(--space-1) var(--space-4); margin: var(--space-2) 0 var(--space-1);
  font-size: var(--type-small); }
.part-details-pairs dt { color: var(--muted); }
.part-details-pairs dd { margin: 0; color: var(--fg); font-size: var(--type-body); font-variant-numeric: tabular-nums; }

.part-usage .part-details-line { display: inline-block; white-space: normal; text-align: start; line-height: 1.45; }
.part-usage .part-details-line > span { display: inline; }

.part-steps { display: grid; gap: var(--space-1); }
.part-steps-bar, .part-steps-names { display: flex; gap: var(--space-1); }
.part-steps-part { position: relative; height: 4px; border-radius: 999px; background: var(--border); overflow: hidden; }
.part-steps-part > i { display: block; height: 100%; width: 0; background: var(--fg); transition: width var(--dur-quick, .2s) var(--ease-out, ease-out); }
.part-steps-notch { position: absolute; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); background: var(--card); }
.part-steps-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: var(--type-small); }

.part-steps-name[data-state="now"] { min-width: max-content; color: var(--fg); font-weight: 600; }
.part-steps-part[data-state="fault"] > i { background: var(--problem); }
.part-steps-name[data-state="fault"] { color: var(--problem); font-weight: 600; }
.part-steps-name[data-state="done"] { display: flex; min-width: max-content; }
@media (prefers-reduced-motion: reduce) { .part-steps-part > i { transition: none; } }

.part-md { display: grid; gap: var(--space-3); min-width: 0; color: var(--fg); font-family: var(--font); font-size: var(--type-body); line-height: 1.55;
  overflow-wrap: anywhere; }
.part-md > * { margin: 0; }
.part-md-heading { font-weight: 600; line-height: 1.3; }
.part-md-heading[data-level="1"] { font-size: var(--type-heading); }
.part-md-heading[data-level="2"] { font-size: var(--type-body); }
.part-md-heading:not([data-level="1"]):not([data-level="2"]) { font-size: var(--type-body); }
.part-md-list { margin: 0; padding-left: 1.4em; display: grid; gap: var(--space-1); }
.part-md-list .part-md-list { margin-top: var(--space-1); }
.part-md-quote { margin: 0; padding-left: var(--space-3); border-left: 3px solid var(--border); color: var(--muted); }
.part-md-rule { border: 0; border-top: 1px solid var(--border); width: 100%; }
.part-md-code { padding: 1px var(--space-1); border-radius: var(--radius-small); background: var(--raised); font-family: var(--font-mono);
  font-size: var(--type-small); }
.part-md a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.part-md-table { max-width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.part-md-table:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-md-table table { border-collapse: collapse; min-width: 100%; font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.part-md-table th, .part-md-table td { padding: var(--space-2) var(--space-3); text-align: left; vertical-align: baseline;
  border-bottom: 1px solid var(--border); min-width: 6em; }
.part-md-table tr:last-child td { border-bottom: 0; }
.part-md-table th { color: var(--muted); font-weight: 600; background: var(--panel); }

.part-media-picture { margin: 0; max-width: min(100%, 480px); }
.part-media-picture img, .part-media-video { display: block; width: 100%; max-width: min(100%, 480px); height: auto; border-radius: var(--radius); background: var(--panel); }
.part-media-open { display: block; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--radius); }
.part-media-open:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.part-media-missing { margin: 0 0 6px; color: var(--muted); font-size: var(--type-small); }
.part-media-link { display: flex; align-items: center; gap: 10px; max-width: min(100%, 480px); padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius);
  color: var(--fg); text-decoration: none; font-size: var(--type-small); }
.part-media-link:hover { background: var(--hover); }
.part-media-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-media-link > svg { flex: none; color: var(--muted); }
.part-media-link-words { display: grid; min-width: 0; }
.part-media-link-words > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.part-media-link-words > span { color: var(--muted); }

.part-mermaid { display: grid; gap: 8px; min-width: 0; }
.part-mermaid-frame { position: relative; min-width: 0; }
.part-mermaid-figure { max-width: 100%; overflow-x: auto; padding: 8px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); box-sizing: border-box; }

.part-mermaid-frame::before, .part-mermaid-frame::after { content: ""; position: absolute; top: 1px; bottom: 1px; width: 32px; pointer-events: none; opacity: 0; transition: opacity var(--dur-quick) var(--ease-out); }
.part-mermaid-frame::before { left: 1px; border-radius: var(--radius) 0 0 var(--radius); background: linear-gradient(to right, var(--bg), transparent); }
.part-mermaid-frame::after { right: 1px; border-radius: 0 var(--radius) var(--radius) 0; background: linear-gradient(to left, var(--bg), transparent); }
.part-mermaid-frame[data-more-left="true"]::before, .part-mermaid-frame[data-more-right="true"]::after { opacity: 1; }

.part-mermaid-figure svg { display: block; height: auto; margin: 0 auto; max-width: max(100%, calc(var(--mermaid-width, 100%) * .75)); }
@media (min-width: 900px) { .part-mermaid-figure svg { max-width: max(100%, calc(var(--mermaid-width, 100%) * .7)); } }
.part-mermaid-note { margin: 0; color: var(--muted); font-size: var(--type-small); }
.part-mermaid-code > summary { cursor: pointer; color: var(--muted); font-size: var(--type-small); list-style: none; }
.part-mermaid-code > summary::-webkit-details-marker { display: none; }
@media (hover: hover) { .part-mermaid-code > summary:hover { color: var(--fg); } }
.part-mermaid-code[open] > summary { margin-bottom: 6px; }
.part-mermaid-plain { margin: 0; max-width: 100%; overflow-x: auto; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--panel); font: var(--type-small)/1.5 var(--mono, ui-monospace, monospace); white-space: pre; }

.part-blocks { display: grid; gap: var(--space-3); min-width: 0; }
.part-blocks-unknown { margin: 0; color: var(--muted); font-size: var(--type-small); }

.part-bubble-wrap { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.part-bubble { max-width: 80%; box-sizing: border-box; padding: 9px 12px; background: var(--control); border-radius: var(--radius); line-height: 1.4; overflow-wrap: anywhere; white-space: pre-wrap; }
.part-bubble-spoken { display: inline-flex; margin-right: 6px; color: var(--track-audio); vertical-align: -3px; }
.part-bubble-note { color: var(--muted); font-size: var(--type-small); }
.part-bubble-wrap.problem .part-bubble-note { color: var(--problem); }
.part-bubble-pictures { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 80%; }
.part-bubble-picture { display: block; max-width: 100%; padding: 0; background: var(--control); border: 0; border-radius: var(--radius); overflow: hidden; cursor: zoom-in; }
span.part-bubble-picture { cursor: default; }

.part-bubble-picture img { display: block; max-width: 220px; max-height: 220px; object-fit: cover; }
.part-bubble-pictures[data-many] .part-bubble-picture img { max-width: 140px; max-height: 140px; }
.part-bubble-picture:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.part-bubble-missing { display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; color: var(--muted); font-size: var(--type-small); }

.part-thumb { position: relative; flex: none; display: inline-block; width: 56px; height: 56px; border-radius: 10px; background: var(--control); }
.part-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.part-thumb.is-pending img { opacity: .45; }
.part-thumb-missing { display: grid; place-items: center; width: 100%; height: 100%; color: var(--muted); }
.part-thumb-remove { position: absolute; top: -6px; right: -6px; display: grid; place-items: center; width: 22px; height: 22px; padding: 0; color: var(--fg); background: var(--raised);
  border: 1px solid var(--border); border-radius: 50%; cursor: pointer; }
.part-thumb-remove::before { content: ""; position: absolute; inset: -11px; }
.part-thumb-remove:disabled { opacity: .5; cursor: default; }
.part-thumb-remove:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }

.part-needs-network { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; color: var(--muted); font-size: var(--type-small); }
.part-needs-network > svg { flex: none; }

.part-thinking { display: inline-flex; align-items: center; gap: 8px; min-height: 24px; color: var(--muted); font-size: var(--type-small); }
.part-thinking-dots { display: inline-flex; gap: 4px; }
.part-thinking-dots > i { width: 6px; height: 6px; border-radius: 50%; background: var(--fg); opacity: .3; animation: part-thinking-beat calc(var(--dur-panel) * 5) var(--ease-out) infinite; }
.part-thinking-dots > i:nth-child(2) { animation-delay: calc(var(--dur-panel) * .6); }
.part-thinking-dots > i:nth-child(3) { animation-delay: calc(var(--dur-panel) * 1.2); }
@keyframes part-thinking-beat { 0%, 60%, 100% { opacity: .3; transform: none; } 30% { opacity: 1; transform: translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .part-thinking-dots > i { animation: none; opacity: .6; } }

.part-agent-meter { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.part-agent-meter-credits { color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; white-space: nowrap; }
.part-agent-meter .part-agent-meter-stop { min-width: 44px; min-height: 44px; }

.part-options { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.part-options-chip { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--button-h); padding: 0 var(--space-3);
  border: 1px solid transparent;
  border-radius: var(--radius); background: var(--card); color: var(--fg);
  font: inherit; font-size: var(--button-font); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-options-chip:focus-visible { outline: 2px solid var(--sel); outline-offset: 2px; }
.part-options-note { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: var(--type-small); }
.part-options .part-menu-list { overflow-y: auto; overscroll-behavior: contain; }
.part-options-heading { margin: 0; padding: var(--space-2) var(--menu-row-pad) 2px; color: var(--muted); font-size: var(--type-small); }
.part-options-choice { -webkit-appearance: none; appearance: none; display: flex; align-items: center; gap: var(--space-3); box-sizing: border-box;
  width: 100%; min-height: max(var(--menu-row-h), 44px); padding: 0 var(--menu-row-pad);
  margin: 0; background: transparent; color: var(--fg); border: 0; border-radius: calc(var(--menu-radius) - var(--menu-pad)); font: inherit; font-family: var(--font); font-size: var(--type-heading); text-align: left;
  cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-options-choice > .word { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

button.part-options-choice > .word { text-box: normal; }

.part-options-choice > .word.part-options-choice-two { display: grid; padding: var(--space-1) 0; white-space: normal; }
.part-options-choice-sub { overflow: hidden; color: var(--muted); font-size: var(--type-body); text-overflow: ellipsis; white-space: nowrap; }
.part-options-choice-note { flex: none; color: var(--muted); font-size: var(--type-small); white-space: nowrap; }
.part-options-choice.on { background: var(--raised); }
.part-options-choice.limited:not(.on) { opacity: .55; }
.part-options-choice:disabled { cursor: default; opacity: .5; }
.part-options-choice:focus-visible { outline: 2px solid var(--sel); outline-offset: -2px; }
@media (hover: hover) { .part-options-choice:not(:disabled):hover { background: var(--hover); } }
.part-options-gap { flex: none; width: 16px; }
.part-options-picker { padding: var(--space-1) 0; }
.part-options-today { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }

.part-options .part-menu-anchor.above > .part-menu-list { right: auto; left: 0; min-width: min(320px, calc(100vw - 32px)); max-width: calc(100vw - 16px); }

@media (max-width: 899px) {
  .part-options .part-menu-anchor.above > .part-menu-list { position: fixed; z-index: 60; top: auto; right: 0; bottom: 0; left: 0;
    min-width: 0; max-width: none; max-height: 85vh; padding-bottom: calc(var(--menu-pad) + env(safe-area-inset-bottom));
    border-bottom: 0; border-radius: var(--menu-radius) var(--menu-radius) 0 0; }
}

.part-feed { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(44px, auto); column-gap: var(--space-3); align-items: center;
  box-sizing: border-box;
  width: calc(100% + 2 * var(--space-2)); min-height: 56px; margin: 0 calc(-1 * var(--space-2)); padding: var(--space-2); border: 0; border-radius: var(--radius);
  background: transparent; color: var(--fg); font: inherit; text-align: left; -webkit-tap-highlight-color: transparent; }
.part-feed > :not(.part-feed-lead, .part-feed-words, .part-feed-trail) { grid-column: 1 / -1; }

.part-feed-lead { position: relative; display: grid; place-items: center; width: 56px; height: 34px; border-radius: var(--radius-small); overflow: hidden;
  background: var(--raised); color: var(--fg); font: 600 var(--type-body)/1 var(--font); }
.part-feed-lead.still { background: var(--picture); }
.part-feed-lead.still > :not(.part-feed-length, .part-feed-badge) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.part-feed-lead.still img { width: 100%; height: 100%; object-fit: cover; }
.part-feed-badge { position: absolute; right: 2px; bottom: 2px; z-index: 1; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%;
  background: var(--menu-fill); color: var(--fg); pointer-events: none; }
.part-feed-length { position: absolute; right: 2px; bottom: 2px; z-index: 1; padding: 0 3px; border-radius: 4px; background: var(--scrim); color: var(--fg);
  font: 600 var(--type-small)/16px var(--font); font-variant-numeric: tabular-nums; pointer-events: none; }

.part-feed-words { display: flex; flex-direction: column; min-width: 0; }
.part-feed-name { min-width: 0; font-size: var(--type-body); font-weight: 600; line-height: 20px; overflow-wrap: anywhere; }
.part-feed-facts { display: flex; flex-wrap: wrap; align-items: center; row-gap: var(--space-4); min-height: 16px; color: var(--muted);
  font-size: var(--type-small); line-height: 16px; font-variant-numeric: tabular-nums; }

.part-feed-fact { display: inline-flex; flex: none; align-items: center; gap: var(--space-1); min-width: 40px; white-space: nowrap; }
.part-feed-level { display: inline-flex; flex: none; align-items: center; min-width: 28px; }

:is(.part-feed-fact, .part-feed-level):has(+ :is(.part-feed-fact, .part-feed-level)) { box-sizing: border-box; padding-right: var(--space-2); }
.part-feed-facts > :not(.part-feed-fact, .part-feed-level, :first-child) { margin-left: var(--space-2); }

.part-feed-facts > :not(.part-feed-fact, .part-feed-level) + :is(.part-feed-fact, .part-feed-level) { margin-left: var(--space-2); }

.part-feed :is(.part-feed-fact, .part-feed-level) :is(button, a) { position: relative; display: inline-flex; align-items: center; gap: var(--space-1); min-width: 0;
  min-height: 0; width: auto; height: 16px; padding: 0; border: 0; background: none; color: inherit; font: inherit; }
.part-feed :is(.part-feed-fact, .part-feed-level) :is(button, a)::after { content: ""; position: absolute; inset: -14px -2px; }

.part-feed-time { color: var(--muted); white-space: nowrap; }
.part-feed-strip { display: block; height: 3px; margin-top: var(--space-1); }
.part-feed-strip > * { display: block; width: 100%; height: 100%; }

.part-feed-strip:has(.part-feed-strip-line:not([hidden])) { height: auto; }

.part-feed-trail { display: flex; align-items: center; justify-content: center; gap: var(--space-1); min-width: 44px;
  min-height: 44px; }

.part-feed > .part-feed-trail button { background: var(--trail-fill, transparent); }
.part-feed > .part-feed-trail button:active:not(:disabled) { background: var(--trail-press, var(--control)); }

.part-feed-foot { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-1); }
.part-feed-details { flex: 1; min-width: 0; }
.part-feed-action { flex: none; }
button.part-feed { cursor: pointer; }
.part-feed.current, button.part-feed:is(:active, [data-pressed]) { background: var(--raised); }
@media (hover: hover) { button.part-feed:hover { background: var(--hover); } }
.part-feed:focus-visible { outline: 2px solid var(--sel); outline-offset: -2px; }

.part-feed.to-edge { grid-template-columns: 56px minmax(0, 1fr); }
.part-feed.to-edge > .part-feed-trail { display: none; }

.part-feed.compact { grid-template-columns: 20px minmax(0, 1fr) 0; min-height: 46px; padding-block: 0; }
.part-feed.compact > .part-feed-lead { width: 20px; height: 20px; background: none; color: inherit; }
.part-feed.compact > .part-feed-trail { min-width: 0; }
.part-feed.compact .part-feed-name { display: flex; align-items: baseline; gap: var(--space-2); white-space: nowrap; overflow: hidden; }
.part-feed.compact .part-feed-name > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.part-feed.compact .part-feed-name > :first-child { flex: none; max-width: 70%; }

.part-feed.dense { grid-template-columns: 34px minmax(0, 1fr) auto; column-gap: var(--space-2); min-height: 40px; padding-block: 0; }
.part-feed.dense > .part-feed-lead { width: 34px; height: 22px; }
.part-feed.dense > .part-feed-lead.still { background: var(--raised); }
.part-feed.dense .part-feed-name { display: flex; align-items: baseline; gap: var(--space-2); white-space: nowrap; overflow: hidden; }
.part-feed.dense .part-feed-name > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.part-feed.dense .part-feed-name > :first-child { flex: none; max-width: 70%; }
.part-feed.dense .part-feed-detail { color: var(--muted); font-size: var(--type-small); font-weight: 400; }
.part-feed.dense .part-feed-facts { display: none; }
.part-feed.dense > .part-feed-trail { min-width: 0; min-height: 0; justify-content: flex-end; }
.part-feed.dense .part-feed-badge { width: 14px; height: 14px; }
.part-feed.lead-wide { grid-template-columns: minmax(0, 1fr) 44px; }
.part-feed.lead-wide > .part-feed-lead { grid-column: 1 / -1; width: 100%; height: auto; aspect-ratio: 16 / 9; }

@media (min-width: 641px) {
  .part-feed.tile-wide { position: relative; grid-template-columns: minmax(0, 1fr) auto; column-gap: 6px; align-items: start; width: auto;
    min-height: 0; margin: 0; padding: 0; border-radius: 0; }
  .part-feed.tile-wide > :is(.part-feed-lead, .part-feed-words) { display: contents; }
  .part-feed.tile-wide > .part-feed-lead { font: inherit; }
  .part-feed.tile-wide .part-feed-lead > :not(.part-feed-length) { grid-area: 1 / 1 / 2 / -1; position: relative; inset: auto; display: grid;
    place-items: center; box-sizing: border-box; width: 100%; height: auto; aspect-ratio: 1; overflow: hidden; background: var(--input);
    color: var(--muted); border: 1px solid var(--border); border-radius: var(--radius); -webkit-tap-highlight-color: transparent; }
  .part-feed.tile-wide .part-feed-lead > a:active { border-color: var(--control); filter: brightness(1.15); }
  .part-feed.tile-wide .part-feed-lead > a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
  .part-feed.tile-wide :is(.part-feed-name, .part-feed-length) { margin-top: var(--space-1); color: var(--muted); font-family: var(--font);
    font-size: var(--type-small); font-weight: 400; line-height: inherit; }
  .part-feed.tile-wide .part-feed-name { grid-area: 2 / 1; overflow-wrap: normal; }
  .part-feed.tile-wide .part-feed-length { grid-area: 2 / 2; position: static; padding: 0; border-radius: 0; background: none; pointer-events: auto; }
  .part-feed.tile-wide :is(.part-feed-fact, .part-feed-level) { display: none; }
  .part-feed.tile-wide .part-feed-facts { grid-area: 3 / 1 / 4 / -1; min-height: 0; margin-top: 6px; }
  .part-feed.tile-wide .part-feed-facts > * { margin-left: 0; }
  .part-feed.tile-wide > .part-feed-trail { position: absolute; top: 6px; right: 6px; min-width: 0; min-height: 0; }
  .part-feed.tile-wide > .part-feed-trail button { position: relative; width: 32px; height: 32px; min-height: 32px; background: var(--scrim);
    border-color: transparent; }
  .part-feed.tile-wide > .part-feed-trail button::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; }
}
@media (min-width: 641px) and (hover: hover) { .part-feed.tile-wide .part-feed-lead > a:hover { border-color: var(--control); } }

.part-tool-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: 44px;
  padding: var(--space-2) var(--space-2) var(--space-1); flex: none; box-sizing: border-box; }
.part-tool-name { margin: 0; min-width: 0; font-size: var(--type-heading); font-weight: 600; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; }
.part-tool-done { flex: none; }

.part-tool-head > .part-tool-name + :not(.part-tool-done) { margin-inline-end: auto; }

.part-sheet { display: flex; flex-direction: column; min-height: 0; height: 100%; box-sizing: border-box; background: var(--card); color: var(--fg); }
.part-sheet-head { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; padding: var(--space-2) var(--space-2) 2px; flex: none; }
.part-sheet-head h2 { margin: 0; min-width: 0; font-size: var(--type-heading); font-weight: 600; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; }
.part-sheet-head .part-round { background: transparent; border-color: transparent; }
.part-sheet-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

@media (max-width: 899px) {
  .part-grow-sheet { overscroll-behavior: contain; transition: max-height .2s ease-out; }
  .part-grow-sheet[data-full] { max-height: 100dvh; }
  .part-grow-sheet :is(.part-sheet-head, [data-sheet-head]) { position: sticky; top: 0; z-index: 1; background: var(--grow-ground, var(--card));
    box-shadow: 0 calc(-1 * var(--space-4)) 0 var(--grow-ground, var(--card)); }
}

dialog.part-dialog { box-sizing: border-box; width: min(560px, 100%); max-height: min(86dvh, 720px); padding: 0; border: 0; background: transparent; color: var(--fg); overflow: visible; }
dialog.part-dialog::backdrop { background: var(--scrim); }
.part-dialog-panel { max-height: min(86dvh, 720px); overflow: auto; }
.part-dialog-panel > :not(.part-panel-head) { margin-top: var(--panel-gap); }
@media (max-width: 899px) {
  dialog.part-dialog { width: 100%; max-width: 100%; margin: auto 0 0; }
  .part-dialog-panel { border-bottom-left-radius: 0; border-bottom-right-radius: 0; padding-bottom: calc(var(--panel-pad) + env(safe-area-inset-bottom)); }
}

.part-talk-dock { position: fixed; z-index: 30; left: 12px; right: 12px; bottom: calc(var(--part-talk-dock-lift, 0px) + var(--part-talk-dock-keys, 0px) + 12px + env(safe-area-inset-bottom, 0px));
  display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: var(--space-2); pointer-events: none; }
.part-talk-dock > * { pointer-events: auto; }
.part-talk-dock[hidden], .part-talk-dock-line[hidden] { display: none; }
.part-talk-dock-say { flex: 1 0 100%; min-width: 0; display: flex; justify-content: flex-end; }
.part-talk-dock-say:empty { display: none; }
.part-talk-dock-say > * { box-sizing: border-box; max-width: 100%; display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-1) var(--space-2) var(--space-1) var(--space-4); background: var(--raised); border: 1px solid var(--border); border-radius: 22px;
  color: var(--fg); box-shadow: var(--lift); }
.part-talk-dock-line { min-width: 0; padding: var(--space-2) var(--space-3); background: var(--raised); border: 1px solid var(--border); border-radius: 20px;
  color: var(--fg); font-size: var(--type-body); }
.part-talk-dock-line:not([hidden]) { display: flex; align-items: center; gap: var(--phone-gutter); }
.part-talk-dock-button { flex: none; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; box-shadow: var(--lift); }
.part-talk-dock-button:not(.held) { background: color-mix(in oklab, var(--raised) 72%, transparent); border: 1px solid color-mix(in oklab, var(--border) 80%, transparent); }

.part-media-tile { position: relative; display: block; box-sizing: border-box; min-width: 0; font-family: var(--font); }
.part-media-pick { -webkit-appearance: none; appearance: none; display: grid; place-items: center; box-sizing: border-box; width: 100%; aspect-ratio: 1; margin: 0; padding: 0; overflow: hidden;
  background: var(--input); color: var(--muted); border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-media-pick > img, .part-media-pick > video, .part-media-pick > canvas { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (hover: hover) { .part-media-pick:hover:not([aria-pressed="true"]) { border-color: var(--control); } }
.part-media-pick:active { border-color: var(--control); filter: brightness(1.15); }
.part-media-pick[aria-pressed="true"] { outline: 2px solid var(--sel); outline-offset: 1px; }
.part-media-pick:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.part-media-meta { display: flex; justify-content: space-between; gap: 6px; min-width: 0; margin-top: 4px; font-size: var(--type-small); color: var(--muted); }
.part-media-name { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.part-media-length { flex: none; font-variant-numeric: tabular-nums; }
.part-media-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.part-media-corner { position: absolute; top: 6px; right: 6px; display: flex; }

.part-player { position: absolute; inset: auto 0 0 0; z-index: 5; display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-2);
  padding: var(--space-2); pointer-events: none; transition: opacity .3s; container-type: inline-size; }
.part-player > * { pointer-events: auto; }
.part-player-left { display: grid; flex: 1; min-width: 0; gap: var(--space-1); justify-items: start; }
.part-player-tools { flex: none; }
.part-player-time, .part-player-reading, .part-player-tools { display: inline-flex; align-items: center; gap: var(--space-1); min-height: 40px;
  padding: 0 var(--space-3); border: 0; border-radius: 999px; background: color-mix(in oklab, var(--bg) 55%, transparent); color: var(--fg);
  font: var(--type-small) / 1 var(--font); font-variant-numeric: tabular-nums; white-space: nowrap; }
.part-player-reading { cursor: pointer; }
.part-player-reading > .icon { flex: none; color: var(--marker); }

.part-player-reading[aria-expanded="true"] { width: max-content; max-width: calc(100cqw - 2 * var(--space-2)); padding-block: var(--space-2);
  border-radius: var(--radius); line-height: 1.3; white-space: normal; text-align: start; }
.part-player-of { margin-left: var(--space-1); color: var(--muted); }

.part-player-time { font-size: var(--type-body); }
.part-player-frame { opacity: .7; font-size: var(--type-small); }
.part-player-tools { gap: 0; padding: 0 var(--space-1); }
.part-player-tools > * { min-width: 40px; min-height: 40px; border: 0; background: none; }
.part-player-play:not([data-playing]) > .icon:nth-child(2), .part-player-play[data-playing] > .icon:first-child { display: none; }

.part-player-tools .disclosure-toggle { min-width: 40px; min-height: 40px; font-size: 0; gap: 0; }

:root { --picture-shade: linear-gradient(color-mix(in oklab, var(--scrim) 70%, transparent), transparent 28%, transparent 62%,
  color-mix(in oklab, var(--scrim) 85%, transparent)); }
.part-player[data-place="on"] { inset: 0; align-items: flex-end; background: var(--player-shade, var(--picture-shade)); }

.part-player[data-place="on"] :is(.part-player-time, .part-player-reading, .part-player-tools) { background: none; padding-inline: var(--space-1);
  text-shadow: 0 1px 2px var(--scrim); }
.part-player[data-place="on"] .part-player-of { color: var(--fg); }
.part-player[data-place="on"] .part-player-reading > .icon { display: none; }
.part-player[data-place="on"] .part-player-reading::before { content: "·"; }
.part-player[data-place="on"] { --player-center-space: 16px; }
.part-player[data-place="on"] > .part-player-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex;
  align-items: center; gap: var(--player-center-space); }
.part-player-center > * { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-width: 44px; padding: 0;
  border: 0; border-radius: 50%; background: color-mix(in oklab, var(--scrim) 60%, transparent); color: var(--fg);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fg) 40%, transparent), inset 0 0 0 999px color-mix(in oklab, var(--fg) 14%, transparent); }

.part-player-center > * > .icon { width: 24px; height: 24px; }
.part-player-center > .part-player-play { width: 64px; height: 64px; min-width: 64px; }
.part-player-center > .part-player-play > .icon { width: 32px; height: 32px; }

.part-player[data-place="on"] .part-player-left { display: flex; flex-wrap: wrap; align-items: center; pointer-events: none; }
.part-player[data-place="on"] .part-player-left > * { pointer-events: auto; }
.part-player[data-place="on"] .part-player-tools { padding: 0; background: none; }
.part-player[data-place="on"] .part-player-tools > * { width: 44px; height: 44px; min-width: 44px; background: none;
  filter: drop-shadow(0 1px 2px var(--scrim)); }
.part-player:not([data-place="on"], [data-place="head"]) > .part-player-center { display: none; }

.part-player-lead { position: absolute; top: var(--space-2); left: var(--space-2); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); }
.part-player-lead:empty { display: none; }

.part-player[hidden], .part-player button[hidden] { display: none; }

.part-player button[aria-disabled] { opacity: .35; cursor: default; }

.part-player[data-place="under"] { position: relative; inset: auto; z-index: auto; padding: 0; gap: 0; flex-wrap: wrap; }

.part-player[data-place="under"] .part-player-left { display: flex; align-items: center; flex: 1 0 max-content; }
.part-player[data-place="under"] .part-player-reading { order: 1; flex: 0 1 auto; min-width: 0; }
.part-player[data-place="under"] .part-player-reading[aria-expanded="true"] { width: auto; max-width: none; max-height: 40px; overflow: hidden;
  padding-block: 0; line-height: 1.2; }
@container (max-width: 559px) { .part-player[data-place="under"] .part-player-reading { display: none; } }

.part-player[data-place="head"] { position: static; inset: auto; z-index: auto; display: inline-flex; align-items: center; gap: var(--space-1); padding: 0; }
.part-player[data-place="head"] > .part-player-center { position: static; display: flex; order: 1; transform: none; }
.part-player[data-place="head"] > .part-player-center > :not(.part-player-play),
.part-player[data-place="head"] :is(.part-player-tools, .part-player-reading) { display: none; }
.part-player[data-place="head"] > .part-player-center > .part-player-play { width: 36px; height: 36px; min-width: 36px; }
.part-player[data-place="head"] > .part-player-center > .part-player-play > .icon { width: 16px; height: 16px; }
.part-player[data-place="head"] .part-player-left { flex: none; display: flex; }
.part-player[data-place="head"] .part-player-time { background: none; padding-inline: 0; }

:has(> .part-player[data-place="on"]) > [data-picture-note] { justify-content: flex-start; padding: var(--space-2) calc(4 * var(--space-6)) 0; }
:has(> .part-player[data-place="on"]) > [data-picture-note] > * { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

[data-grip] { touch-action: pan-y; }

.part-player-line { position: relative; height: 32px; touch-action: none; cursor: pointer; }
.part-player-line > canvas { display: block; width: 100%; height: 100%; }
.part-player-line-tip { position: absolute; bottom: calc(100% + var(--space-1)); transform: translateX(-50%); padding: var(--space-1) var(--space-2);
  border-radius: 999px; background: var(--chapter-tip); color: var(--chapter-tip-text); font-size: var(--type-small); white-space: nowrap;
  pointer-events: none; }

.part-player-line[data-lie="under"] { --player-line-over: 20px; margin-top: calc(-1 * var(--player-line-over)); }

.time-view { position: relative; width: 100%; background: var(--tl-bg); }
.time-view-canvas { display: block; width: 100%; touch-action: none; cursor: grab; -webkit-tap-highlight-color: transparent; }
.time-view-controls { display: flex; justify-content: flex-end; gap: var(--space-1); padding: var(--space-1) 2px 2px; }
.time-view-button { min-width: var(--control-h); height: var(--control-h); padding: 0 var(--space-2);
  border: 1px solid var(--tl-line); border-radius: var(--radius);
  background: var(--tl-panel); color: var(--tl-text); font: var(--button-font) var(--font); cursor: pointer; -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none; user-select: none; }
.time-view-button.bands { display: inline-flex; align-items: center; gap: 5px; }
.time-view-button.bands[hidden] { display: none; }
.time-view-button[aria-pressed="true"] { background: var(--control); border-color: var(--tl-head); color: var(--fg); }
.time-view-button:active:not(:disabled) { background: var(--control); }
.time-view-button:focus-visible { outline: 2px solid var(--tl-head); outline-offset: 1px; }
@media (pointer: coarse) { .time-view-button { min-width: 44px; height: 44px; } }
.time-view.still .time-view-canvas { cursor: default; touch-action: auto; pointer-events: none; }

.part-order-row { position: relative; display: flex; align-items: center; gap: var(--space-2); flex: none; height: 52px; padding: 0 var(--space-2);
  overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.part-order-row::-webkit-scrollbar { display: none; }
.part-order-length { flex: none; min-width: 34px; color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }

button.part-order-length { min-height: 44px; padding: 0; border: 0; background: none; font-family: inherit; cursor: pointer;
  -webkit-tap-highlight-color: transparent; }
button.part-order-length:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.part-order-tile { position: relative; flex: none; display: flex; align-items: center; justify-content: center; width: 60px; height: 34px; padding: 0;
  border: 0; border-radius: var(--radius-small); overflow: hidden; background: var(--picture); color: var(--fg); cursor: pointer; touch-action: manipulation;
  -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
.part-order-tile::before { content: ""; position: absolute; inset: -9px -3px; }
.part-order-tile > :first-child:not(.part-order-face) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.part-order-empty { display: flex; align-items: center; justify-content: center; color: var(--muted); }
.part-order-face { position: absolute; left: 3px; top: 3px; box-sizing: border-box; max-width: calc(100% - 6px); height: 17px; padding: 0 var(--space-1);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: var(--radius-small); background: var(--scrim); color: var(--fg);
  font-size: var(--type-small); font-weight: 600; line-height: 17px; font-variant-numeric: tabular-nums; }
.part-order-tile.is-song { background: var(--track-audio-fill); color: var(--track-audio); }
.part-order-tile[data-lit] { box-shadow: inset 0 0 0 2px var(--fg); }
.part-order-tile:is([data-current], [data-shown]) { box-shadow: inset 0 0 0 2px var(--accent); }
.part-order-tile.is-lifted { opacity: .35; }
.part-order-slot { position: relative; flex: none; box-sizing: border-box; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  padding: 0; border: 2px solid var(--accent); border-radius: var(--radius-small); background: none; color: var(--accent); }
button.part-order-slot { cursor: pointer; }
button.part-order-slot::before { content: ""; position: absolute; inset: -5px; }
.part-order-break { flex: none; width: 1px; height: 34px; background: var(--muted); }
.part-order-drop { position: absolute; top: 4px; bottom: 4px; width: 3px; transform: translateX(-50%); border-radius: var(--radius-small);
  background: var(--accent); pointer-events: none; }
.part-order-drop[hidden], .part-order-bubble[hidden] { display: none; }
.part-order-ghost { position: fixed; z-index: 30; margin: 0; transform: translate(6px, -50%) scale(1.25); transform-origin: left center;
  box-shadow: 0 0 0 2px var(--accent); pointer-events: none; }
.part-order-bubble { position: fixed; z-index: 30; padding: var(--space-1) var(--space-3); border-radius: var(--radius-small);
  background: var(--accent); color: var(--bg);
  font-size: var(--type-small); font-weight: 600; white-space: nowrap; pointer-events: none; }

.part-whole-strip { height: var(--tl-overview-height-compact); min-width: 0; border-radius: var(--tl-overview-radius); overflow: hidden;
  background: var(--tl-panel); touch-action: pan-y; cursor: grab; }
.part-whole-strip.is-wide { height: var(--tl-overview-height-wide); }
.part-whole-strip { position: relative; }
.part-whole-strip > canvas { display: block; width: 100%; height: 100%; }

.part-whole-strip-window { position: absolute; top: 1px; bottom: 1px; left: 0; min-width: 3px; will-change: transform; box-sizing: border-box;
  background: var(--tl-window); border: 1px solid var(--tl-head); pointer-events: none; }
.part-whole-strip-needle { position: absolute; top: 0; bottom: 0; left: 0; width: 1px; background: var(--tl-head); pointer-events: none;
  will-change: transform; }
.part-whole-strip-window[hidden], .part-whole-strip-needle[hidden] { display: none; }
.part-whole-strip.has-play-bar { height: 40px; border-radius: var(--play-bar-radius); }
.part-play-bar-labels, .part-play-bar-needle { position: absolute; inset: 0; pointer-events: none; }
.part-play-bar-labels > span { position: absolute; left: 0; top: 2px; color: var(--muted); font-size: var(--type-small); line-height: 16px; translate: -50% 0; }
.part-play-bar-labels > span[hidden], .part-play-bar-needle[hidden] { display: none; }
.part-play-bar-needle { left: 0; right: auto; width: 2px; background: var(--marker); will-change: transform; }
.part-play-bar-needle > span { position: absolute; top: 2px; left: 0; border-radius: var(--play-bar-chip-radius); padding: 0 var(--space-1);
  background: var(--fg); color: var(--bg); font-size: var(--type-small); font-weight: 600; line-height: 16px; white-space: nowrap; }
.time-needle { width: 100%; min-width: 0; background: var(--tl-bg); color: var(--fg); }
.time-needle-top { display: flex; align-items: center; gap: var(--button-gap); min-width: 0; }
.time-needle-top[hidden] { display: none; }
.time-needle-clock { font-variant-numeric: tabular-nums; white-space: nowrap; }
.time-needle .part-whole-strip { flex: 1 1 auto; min-width: 24px; }
.time-needle .time-view-controls { flex: none; padding: 0; }
.time-needle-steps { display: flex; align-items: center; justify-content: center; gap: var(--button-gap); padding-top: 6px; color: var(--muted); }
.time-needle-steps[hidden] { display: none; }

.time-needle-steps.film { justify-content: space-between; color: var(--fg); }
.time-needle-steps.film .part-button { flex: none; white-space: nowrap; }
.time-needle-steps.film .time-needle-clock { flex: 1 1 0; min-width: 0; white-space: normal; text-align: center; }

.part-range { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; }
.part-range input { flex: 1; min-width: 0; accent-color: var(--accent); }
.part-range-value { color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }

.part-progress[hidden] { display: none; }
.part-progress-track { display: block; height: 3px; border-radius: 2px; background: var(--border); overflow: hidden; }
.part-progress-track[hidden] { display: none; }
.part-progress-track > i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--fg);
  transition: width var(--dur-quick, .2s) var(--ease-out, ease-out); }
.part-progress-track[data-mode="sweep"] > i { width: 30%; animation: part-progress-sweep 1.6s ease-in-out infinite; }
.part-progress-track[data-mode="late"] > i { width: 90%; animation: part-progress-pulse 1.8s ease-in-out infinite; }
@keyframes part-progress-sweep { from { transform: translateX(-100%); } to { transform: translateX(340%); } }
@keyframes part-progress-pulse { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) {
  .part-progress-track > i { animation: none; transition: none; }
  .part-progress-track[data-mode="sweep"] > i { margin-left: 35%; }
}
.part-progress-words { margin: 6px 0 0; color: var(--muted); font-size: var(--type-small); }
.part-progress-words:empty { display: none; }

.part-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.part-stat { min-width: 0; padding: 8px 10px; background: var(--card); border: 1px solid var(--border); border-radius: 10px; }
.part-stat > b { display: block; font-size: var(--type-heading); font-variant-numeric: tabular-nums; white-space: nowrap; }
.part-stat > span { color: var(--muted); font-size: var(--type-small); }
@media (max-width: 480px) { .part-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.part-live { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
.part-live[hidden] { display: none; }
.part-live-video { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--card); border: 2px solid var(--fg); border-radius: 8px; }
.part-live-video.mirror { transform: scaleX(-1); }
.part-live-word { color: var(--muted); font-size: var(--type-small); }
.part-live [hidden] { display: none; }

.part-stored { display: grid; gap: var(--space-2); }
.part-stored-rows { display: grid; }
.part-stored-note { color: var(--muted); font-size: var(--type-small); line-height: 16px; overflow-wrap: anywhere; }
.part-stored-empty, .part-stored-said { margin: 0; color: var(--muted); font-size: var(--type-small); }
.part-stored-said:empty { display: none; }

.part-box-views { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; align-items: start; width: 100%; min-width: 0; }
.part-box-views:has(> :nth-child(2):not([hidden])) { grid-template-columns: minmax(0, 1fr) 28%; }
.part-box-stage { position: relative; overflow: hidden; justify-self: center; width: 100%; max-width: calc(var(--part-room, 100000px) * var(--ratio, 1.7778)); background: var(--card); border-radius: 12px; }
.part-box-stage:not(:has(> canvas, > img)) { min-height: 160px; }
.part-box-stage > canvas, .part-box-stage > img { display: block; width: 100%; height: auto; }
.part-box-stage > img { aspect-ratio: auto 16 / 9; }
.part-box { position: absolute; border: 2px solid var(--box); pointer-events: none; }
.part-box > span { position: absolute; left: -2px; bottom: 100%; padding: 0 5px; background: var(--box); color: var(--bg); font-size: var(--type-small);
  font-weight: 600; line-height: 18px; white-space: nowrap; }
.part-box.inside > span { bottom: auto; top: 0; }
.part-box.right > span { left: auto; right: -2px; }
.part-box-words { position: absolute; left: 8px; bottom: 8px; padding: 2px 8px; background: var(--bg); color: var(--fg); border-radius: 999px; font-size: var(--type-small); opacity: 0.85; }

.part-model-picker { display: grid; gap: 6px; min-width: 0; }
.part-model-picker[data-disabled="true"] { opacity: .5; }
.part-model-note { margin: 0; padding: 0 calc(var(--menu-row-pad, 12px) - 4px); color: var(--muted); font-size: var(--type-small); }
.part-model-level { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: var(--menu-row-h, 44px); padding: 0 calc(var(--menu-row-pad, 12px) - 4px); color: var(--fg); font-size: var(--type-body); }
.part-model-level[hidden] { display: none; }

.part-model-group { display: flex; justify-content: space-between; gap: var(--space-2); margin: 0;
  padding: var(--space-2) calc(var(--menu-row-pad, 12px) - 4px) 0; color: var(--muted); font-size: var(--type-small); }
.part-model-more { -webkit-appearance: none; appearance: none; display: flex; align-items: center; gap: var(--space-2); box-sizing: border-box; width: 100%;
  min-height: max(var(--menu-row-h, 44px), 44px); margin: 0; padding: 0 calc(var(--menu-row-pad, 12px) - 4px); border: 0; border-radius: var(--radius-small);
  background: transparent; color: var(--fg); font: inherit; font-size: var(--type-heading); text-align: left; cursor: pointer;
  -webkit-tap-highlight-color: transparent; }
.part-model-more .count { color: var(--muted); font-size: var(--type-small); }
@media (hover: hover) { .part-model-more:hover { background: var(--hover); } }
.part-model-more:focus-visible { outline: 2px solid var(--sel); outline-offset: -2px; }
.part-model-picker .part-choices[hidden] { display: none; }

.part-model-legend { padding: 0 calc(var(--menu-row-pad, 12px) - 4px); }

.part-hit-grid { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; font-family: var(--font); }
.part-hit-tiles { display: grid; gap: var(--space-3) var(--space-4); }
.part-hit-tiles.checked { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.part-hit-tiles.more { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); }
.part-hit-grid.strip .part-hit-tiles.checked { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); }
.part-hit-tile { min-width: 0; }
.part-hit-frame { position: relative; }
.part-hit-corner { position: absolute; top: var(--space-1); right: var(--space-1); display: flex; }
.part-hit-pick { -webkit-appearance: none; appearance: none; display: block; box-sizing: border-box; width: 100%; aspect-ratio: 16 / 9; margin: 0;
  padding: 0; overflow: hidden;
  background: var(--picture); border: 0; border-radius: var(--radius-small); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-hit-pick > :is(img, video, canvas) { display: block; width: 100%; height: 100%; object-fit: cover; }
.part-hit-pick:active { filter: brightness(1.15); }
.part-hit-pick[aria-pressed="true"] { outline: 2px solid var(--sel); outline-offset: 2px; }
.part-hit-pick:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.part-hit-tiles.more .part-hit-pick:not([aria-pressed="true"]) { opacity: .6; }
.part-hit-meta { display: flex; justify-content: space-between; gap: var(--space-2); min-width: 0; margin-top: var(--space-1); color: var(--muted);
  font-size: var(--type-small); line-height: 16px; }
.part-hit-clip { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.part-hit-time { display: inline-flex; flex: none; align-items: center; gap: var(--space-1); font-variant-numeric: tabular-nums; }
.part-hit-head { display: flex; align-items: baseline; gap: var(--space-2); margin: var(--space-2) 0 0; color: var(--fg); font-size: var(--type-body);
  font-weight: 600; }
.part-hit-note { color: var(--muted); font-size: var(--type-small); font-weight: 400; }
.part-hit-none { margin: 0; color: var(--muted); font-size: var(--type-body); }
@media (max-width: 899.98px) {
  .part-hit-tiles.checked { gap: var(--space-3) var(--space-2); }
  .part-hit-tiles.more { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
  .part-hit-grid.strip .part-hit-tiles.checked { display: flex; overflow-x: auto; gap: var(--space-2); scrollbar-width: none; }
  .part-hit-grid.strip .part-hit-tile { flex: 0 0 110px; }
}

.part-hit-stage { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; font-family: var(--font); }
.part-hit-picture { position: relative; overflow: hidden; background: var(--picture); border-radius: var(--radius-small); line-height: 0; }
.part-hit-picture > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.part-hit-label, .part-hit-marking { position: absolute; top: var(--space-3); left: var(--space-3); padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-small);
  background: var(--scrim); color: var(--fg); font-size: var(--type-small); line-height: 16px; font-variant-numeric: tabular-nums; }
.part-hit-label + .part-hit-marking { top: calc(var(--space-3) + 32px); }
.part-hit-marking { animation: part-hit-wait 1.6s ease-in-out infinite; }
.part-hit-marking[hidden], .part-hit-picked[hidden], .part-hit-failed[hidden], .part-hit-bar > .part-button[hidden] { display: none; }
@keyframes part-hit-wait { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .part-hit-marking { animation: none; } }
.part-hit-failed { margin: 0; color: var(--muted); font-size: var(--type-small); }
.part-hit-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); min-width: 0; }
.part-hit-subjects { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-right: auto; }
.part-hit-span { color: var(--muted); font-size: var(--type-body); font-variant-numeric: tabular-nums; }
.part-hit-picked { display: inline-flex; align-items: center; gap: var(--button-gap); min-height: var(--button-h); color: var(--fg);
  font-size: var(--type-body); font-weight: 600; }
@media (max-width: 899.98px) {
  .part-hit-label, .part-hit-marking { top: var(--space-2); left: var(--space-2); }
  .part-hit-label + .part-hit-marking { top: calc(var(--space-2) + 32px); }
}

.part-clip-timeline { position: relative; box-sizing: border-box; padding: var(--space-3) var(--space-4); border-radius: var(--radius);
  background: var(--card); }
.part-clip-timeline .time-view { background: transparent; }
.part-clip-timeline .time-view-canvas { cursor: pointer; }
.part-clip-ends { position: absolute; left: var(--space-4); right: var(--space-4); margin-top: var(--space-3); pointer-events: none; }
.part-clip-end { position: absolute; top: 0; bottom: 0; width: 12px; margin: 0; padding: 0; translate: -50% 0; border: 2px solid var(--picture);
  border-radius: var(--radius-small);
  background: var(--sel); cursor: ew-resize; pointer-events: auto; touch-action: none; -webkit-tap-highlight-color: transparent; }
.part-clip-end::after { content: ""; position: absolute; inset: -8px -16px; }
.part-clip-end[hidden] { display: none; }
.part-clip-end:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 899.98px) {
  .part-clip-timeline { padding: var(--space-2) var(--space-3); }
  .part-clip-ends { left: var(--space-3); right: var(--space-3); margin-top: var(--space-2); }
}

.part-pick-list { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; font-family: var(--font); color: var(--fg); }
.part-pick-head { display: flex; align-items: baseline; gap: var(--space-2); margin: 0; font-size: var(--type-heading); font-weight: 600; }
.part-pick-count { color: var(--muted); font-size: var(--type-small); font-weight: 400; font-variant-numeric: tabular-nums; }
.part-pick-rows, .part-pick-group, .part-pick-total, .part-pick-press, .part-pick-job {
  display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.part-pick-group { gap: var(--space-2); }
.part-pick-label, .part-pick-note { margin: 0; color: var(--muted); font-size: var(--type-small); line-height: 16px; font-variant-numeric: tabular-nums; }
.part-pick-group .part-seg { align-self: flex-start; }
.part-pick-total { padding-top: var(--space-3); border-top: 1px solid var(--border); }
.part-pick-foot { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.part-pick-foot > .part-pick-total { padding-top: 0; border-top: 0; }

.part-pick-foot .part-pick-price { min-height: 0; }
.part-pick-sum { margin: 0; font-size: var(--type-body); font-weight: 600; line-height: 20px; font-variant-numeric: tabular-nums; }

.part-pick-price { display: inline-flex; align-items: center; gap: var(--space-1); align-self: flex-start; padding: 0; border: 0; background: none;
  color: var(--fg); font-family: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.part-pick-price svg { flex: none; color: var(--muted); }
@media (hover: hover) { .part-pick-price:hover svg { color: var(--fg); } }
.part-pick-price:focus-visible { outline: 2px solid var(--sel); outline-offset: 2px; border-radius: var(--radius-small); }
@media (pointer: coarse) { .part-pick-price { position: relative; } .part-pick-price::after { content: ""; position: absolute; inset: -12px -4px; } }
.part-pick-charge[hidden] { display: none; }
.part-pick-press, .part-pick-job { gap: var(--space-2); }
.part-pick-press .part-button, .part-pick-job .part-button { width: 100%; }
.part-pick-none { margin: var(--space-6) 0; color: var(--muted); font-size: var(--type-body); text-align: center; }
@media (max-width: 899.98px) {
  .part-pick-group .part-seg { align-self: stretch; }
  .part-pick-group .part-seg button { flex: 1; }
}

:root { --site-bar-h: 56px; --site-edge: var(--space-6); --site-mark-size: 20px;
  --site-face-reach: 44px; }
@media (max-width: 899px) { :root { --site-bar-h: 48px; --site-edge: var(--space-4); } }

.part-site-header { box-sizing: border-box; display: flex; min-width: 0; align-items: center; gap: var(--space-6); height: var(--site-bar-h, 56px);
  padding: 0 var(--site-edge, var(--space-6));
  border-bottom: 1px solid var(--border); font-family: var(--font); color: var(--fg); }
.part-site-mark { display: inline-flex; align-items: center; flex: none; color: var(--fg); font-size: var(--site-mark-size); line-height: 0;
  text-decoration: none; }
.part-site-mark:focus-visible, .part-site-nav > a:focus-visible, .part-site-use:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
  border-radius: var(--radius-small); }
.part-site-nav { display: flex; align-items: center; gap: var(--space-4); min-width: 0; font-size: var(--type-body); font-weight: 600; }
.part-site-nav > a { display: inline-flex; align-items: center; min-height: var(--control-h); color: var(--muted); text-decoration: none; white-space: nowrap; }
.part-site-nav > a[aria-current] { color: var(--fg); }
.part-site-nav > a > .word { text-box: trim-both cap alphabetic; }
@media (hover: hover) { .part-site-nav > a:hover { color: var(--fg); } }
.part-site-end { display: flex; align-items: center; gap: var(--space-3); margin-left: auto; flex: none; }
.part-site-facts { display: flex; align-items: center; gap: var(--space-2); }

.part-site-use { box-sizing: border-box; display: inline-flex; align-items: center; height: var(--control-h); padding: 0 var(--space-3);
  border-radius: var(--radius);
  background: var(--raised); color: var(--fg); text-decoration: none; }
.part-site-use .part-box-meter { --meter-size: 4px; --meter-height: 12px; }
a.part-site-use:active { background: var(--control); }

.part-site-end > v1d-account { margin-right: calc((var(--control-h) - var(--site-face-reach)) / 2); }

@media (max-width: 899px) {
  .part-site-header { gap: var(--space-3); padding-right: var(--space-1); }
  .part-site-mark { overflow: hidden; }
  .part-site-mark > .mark-badge { margin-left: calc(-1 * var(--site-chip-at)); }
  .part-site-nav { flex: 1; overflow-x: auto; scrollbar-width: none; mask-image: linear-gradient(90deg, var(--fg) calc(100% - var(--space-6)), transparent); }
  .part-site-nav::-webkit-scrollbar { display: none; }
  .part-site-end { gap: var(--space-1); }
  .part-site-facts { display: none; }
  .part-site-end > v1d-account { margin-right: 0; }
  .part-site-sign-in { margin-right: var(--space-2); }
}

@supports (animation-timeline: scroll()) {
  @media (max-width: 899px) { .part-site-nav { mask-image: none; animation: part-site-nav-fade linear both; animation-timeline: scroll(self inline); } }
}
@keyframes part-site-nav-fade { from, 99% { mask-image: linear-gradient(90deg, var(--fg) calc(100% - var(--space-6)), transparent); } to { mask-image: none; } }

@media (max-width: 399px) {
  .part-site-header { gap: var(--space-2); }
  .part-site-nav { gap: var(--space-3); }
  .part-site-use { padding: 0 var(--space-2); }
}

.part-page-title { box-sizing: border-box; display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); min-height: 60px;
  padding: var(--space-4) var(--site-edge, var(--space-6)) var(--space-3); font-family: var(--font); color: var(--fg); }
.part-page-title > h1 { margin: 0; font-size: var(--type-title); font-weight: 600; line-height: 1.3; text-box: trim-both cap alphabetic; }
.part-page-title-after { color: var(--muted); font-size: var(--type-heading); line-height: 1.3; font-variant-numeric: tabular-nums;
  text-box: trim-both cap alphabetic; }

.part-page-title-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); min-width: 0; margin-left: auto; }
@media (max-width: 899px) { .part-page-title { min-height: 52px; padding: var(--space-3) var(--site-edge, var(--space-4)) var(--space-2); } }

.part-site-footer { box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4);
  padding: var(--space-3) var(--site-edge, var(--space-6)); border-top: 1px solid var(--border); font-family: var(--font); font-size: var(--type-small);
  color: var(--muted); }
.part-site-footer > nav { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.part-site-footer a { display: inline-flex; align-items: center; min-height: 24px; color: inherit; text-decoration: none; }
@media (hover: hover) { .part-site-footer a:hover { color: var(--fg); } }
.part-site-footer a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-small); }
@media (pointer: coarse) { .part-site-footer a { min-height: 44px; } }

.part-plans { display: grid; margin: 0 var(--site-edge, var(--space-6)); font-family: var(--font); font-size: var(--type-body); color: var(--fg);
  font-variant-numeric: tabular-nums; }
.part-plans-row { display: grid; grid-template-columns: minmax(120px, 1.2fr) repeat(5, minmax(80px, 1fr)) minmax(96px, 1.4fr); align-items: center;
  column-gap: var(--space-4);
  min-height: 48px; border-top: 1px solid var(--border); }
@media (min-width: 900px) {
  .part-plans[data-facts="4"] .part-plans-row { grid-template-columns: minmax(120px, 1.2fr) repeat(4, minmax(80px, 1fr)) minmax(96px, 1.4fr); }
  .part-plans[data-facts="3"] .part-plans-row { grid-template-columns: minmax(120px, 1.2fr) repeat(3, minmax(80px, 1fr)) minmax(96px, 1.4fr); }
}
.part-plans-head { min-height: 32px; border-top: 0; color: var(--muted); font-size: var(--type-small); }
.part-plans-row > :is([role="cell"], [role="columnheader"]):not(:first-child, :last-child) { text-align: right; }
.part-plans-video { color: var(--muted); }
.part-plans-name > b { font-weight: 600; }
.part-plans-note { color: var(--muted); }
.part-plans-name > small { display: none; }
.part-plans-end { display: flex; justify-content: flex-end; }
.part-plans-form { margin: 0; }
.part-plans-act > svg { display: none; }
.part-plans-yours { display: inline-flex; align-items: center; gap: var(--space-2); padding-right: var(--space-3); color: var(--fact-green); font-weight: 600; }

@media (max-width: 899px) {
  .part-plans { margin: 0; }
  .part-plans-row { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: var(--space-3); min-height: 60px;
    padding-left: var(--site-edge, var(--space-4)); }
  .part-plans-head { display: none; }
  .part-plans-name > small { display: block; color: var(--muted); font-size: var(--type-small); }
  .part-plans-row > :is(.part-plans-credits, .part-plans-video, .part-plans-storage, .part-plans-saved, .part-plans-copies) { display: none; }
  .part-plans-price { font-weight: 600; }
  .part-plans-act { min-height: 44px; }
  .part-plans-yours { padding-right: 0; }
}

.part-sign-in { box-sizing: border-box; display: grid; gap: var(--space-4); width: 100%; max-width: 360px; margin: 0 auto; padding: var(--space-6);
  border-radius: var(--panel-radius);
  background: var(--card); color: var(--fg); font-family: var(--font); font-size: var(--type-body); line-height: 1.5; }
.part-sign-in-mark { display: block; margin-bottom: var(--space-2); font-size: var(--type-title); line-height: 0; }
.part-sign-in-name { font-weight: 600; line-height: 1; }
.part-sign-in > h1 { margin: 0; font-size: var(--type-title); font-weight: 600; line-height: 1.3; }
.part-sign-in > p { margin: 0; color: var(--muted); }
.part-sign-in > .part-sign-in-alert { display: flex; align-items: flex-start; gap: var(--space-2); color: var(--problem); }
.part-sign-in-alert > svg { flex: none; margin-top: var(--space-1); }
.part-sign-in-form { display: grid; gap: var(--space-3); margin: 0; }
.part-sign-in-or { text-align: center; font-size: var(--type-small); }
.part-sign-in-field { box-sizing: border-box; width: 100%; min-height: 44px; padding: 0 var(--space-3); border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg); color: var(--fg); font: inherit; font-size: var(--type-heading); }
.part-sign-in-field::placeholder { color: var(--muted); }
.part-sign-in-field:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-sign-in-press { box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: var(--space-2); width: 100%; min-height: 44px;
  padding: 0 var(--space-4); border: 0; border-radius: var(--radius); background: var(--raised); color: var(--fg); font: inherit; font-weight: 600;
  text-decoration: none;
  cursor: pointer; }
.part-sign-in-press.primary { background: var(--fg); color: var(--bg); }
.part-sign-in-press > span { text-box: trim-both cap alphabetic; }
.part-sign-in-press:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.part-sign-in-foot { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); font-size: var(--type-small); }
.part-sign-in-foot > a { display: inline-flex; align-items: center; min-height: 24px; color: inherit; }

@media (min-width: 900px) and (any-pointer: fine) {
  .part-sign-in { padding: var(--space-6) calc(var(--space-6) + var(--space-2)); }
  .part-sign-in-press, .part-sign-in-field { min-height: var(--control-h); }
  .part-sign-in-field { font-size: var(--type-body); }
}

.part-account-menu { --v1d-surface: var(--menu-fill); --v1d-text: var(--fg); --v1d-muted: var(--muted); --v1d-line: var(--menu-edge);
  --v1d-accent: var(--accent); --v1d-radius: var(--menu-radius); --v1d-font: var(--font); --v1d-face: var(--raised); }

.part-account-menu:not(:defined) { display: inline-block; width: 44px; height: 44px; overflow: hidden; }
.part-account-menu:not(:defined) > * { display: none; }

.part-account-menu > .part-menu-row { box-sizing: border-box; font-size: var(--type-body); }
.part-account-menu > .part-menu-row > .part-chip { margin-left: auto; }
.part-account-menu > :not(.is-app) + .is-app { position: relative; margin-top: var(--space-3); }
.part-account-menu > :not(.is-app) + .is-app::before { content: ""; position: absolute; inset: auto 0 100%; margin-bottom: var(--space-2);
  border-top: 1px solid var(--menu-edge); }

.part-menu-row, .part-menu > :is(button, a), .part-menu > .slot > button { -webkit-tap-highlight-color: transparent; }
.part-menu { display: grid; gap: var(--menu-gap); padding: var(--menu-pad); background: var(--menu-fill); border: 1px solid var(--menu-edge);
  border-radius: var(--menu-radius); box-shadow: var(--lift); }
.part-menu-form { display: contents; }
.part-menu-row, .part-menu > :is(button, a), .part-menu > .slot > button { display: flex; align-items: center; justify-content: flex-start;
  gap: var(--space-3); width: 100%; min-height: var(--menu-row-h); padding: 0 var(--menu-row-pad); border-radius: var(--radius); text-decoration: none;
  text-align: left; cursor: pointer; }

.part-menu-row, .part-menu > a { border: 0; background: transparent; color: var(--fg); font: inherit; }

:root .part-menu > :is(button, a), :root .part-menu > .slot > button, :root .part-menu .part-menu-row { min-height: var(--menu-row-h); padding-block: 0; }
.part-menu-row > .icon { color: var(--muted); }
.part-menu-row:focus-visible { background: var(--hover); }

.part-menu-soon { cursor: default; color: var(--muted); }
.part-menu-soon > .part-menu-says { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: var(--type-small); }
.part-menu-soon > .part-menu-mark { flex: none; padding: 0 var(--space-2); border: 1px solid var(--control); border-radius: 999px;
  font-size: var(--type-small); }
.part-menu-row:focus-visible > .icon { color: var(--fg); }

@media (hover: hover) {
  .part-menu-row:hover, .part-menu > :is(button, a):hover, .part-menu > .slot > button:hover { background: var(--hover); }
  .part-menu-row:hover > .icon { color: var(--fg); }
}
.part-menu > :is(button, a) kbd, .part-menu > .slot > button kbd { margin-left: auto; }

.chooser-head, .chooser-item { -webkit-tap-highlight-color: transparent; }

.part-chooser.float .chooser-list { padding: var(--menu-pad); background: var(--menu-fill); border-color: var(--menu-edge); border-radius: var(--menu-radius); }
.part-chooser.float .chooser-item { min-height: var(--menu-row-h); padding: 0 var(--menu-row-pad); border-radius: var(--radius); color: var(--fg); }
.part-chooser.float .chooser-item:hover { background: var(--hover); }
.part-chooser { position: relative; min-width: 0; }

.chooser-head { display: flex; align-items: center; gap: var(--button-gap); width: 100%; min-height: var(--button-h); padding: 0 var(--button-pad);
  font-size: var(--button-font);
  color: var(--fg); background: var(--input, var(--card));
  border: 1px solid var(--control); border-radius: var(--radius); cursor: pointer; text-align: left; }
.chooser-head[aria-expanded="true"] { background: var(--raised); }
.chooser-head:disabled { cursor: default; color: var(--muted); }
.chooser-head .chooser-words { flex: 1; min-width: 0; overflow: clip visible; text-overflow: ellipsis; white-space: nowrap; }
.chooser-list { display: flex; flex-direction: column; gap: 0; max-height: 280px; overflow: auto; margin-top: var(--space-1); padding: var(--space-1);
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); }
.part-chooser.float .chooser-list { position: absolute; left: 0; top: 100%; z-index: 50; min-width: 240px; box-shadow: var(--lift); }
.chooser-item { display: flex; align-items: center; gap: var(--space-2); min-height: 30px; padding: var(--space-1) var(--space-2); color: var(--muted);
  background: transparent; border: 0;
  border-radius: var(--radius-small, 4px); cursor: pointer; text-align: left; }
.chooser-item:hover { background: var(--hover); color: var(--fg); }
.chooser-item.on { background: var(--raised); color: var(--fg); box-shadow: inset 0 0 0 1px var(--fg); }

.part-chooser .chooser-list > .chooser-item { border-radius: 0; }
.part-chooser .chooser-list > .chooser-item + .chooser-item { border-top: 1px solid var(--border); }

.chooser-item .chooser-words { flex: 1; min-width: 0; overflow: clip visible; text-overflow: ellipsis; white-space: normal; }
.chooser-note { color: var(--muted); font-size: var(--type-small); white-space: nowrap; }
.chooser-check { display: inline-flex; width: 13px; flex: none; }
.chooser-check.empty { visibility: hidden; }
.part-chooser .still.small { width: 46px; height: 26px; flex: none; }

@media (max-width: 899px) {
  .chooser-head, .chooser-item { min-height: 40px; }
}

.part-time-wrap { display: inline-flex; align-items: center; gap: var(--space-1); }
.part-time { width: 64px; font-variant-numeric: tabular-nums; }
.part-unit { color: var(--muted); font-size: var(--type-small); }
.part-presets { display: inline-flex; flex-wrap: wrap; gap: var(--space-1); }

.part-preset { border: 0; background: var(--card); color: var(--muted); padding: 0 var(--space-2); border-radius: var(--radius-small); min-height: 24px;
  font-size: var(--type-small); font-variant-numeric: tabular-nums; -webkit-tap-highlight-color: transparent; }
.part-preset:hover, .part-preset:focus-visible { color: var(--fg); background: var(--hover); }

.part-step { display: inline-flex; align-items: center; justify-content: center; min-width: var(--control-h); min-height: var(--control-h); padding: 0;
  border-radius: 50%; font-size: var(--button-font); -webkit-tap-highlight-color: transparent; }
@media (max-width: 899px) { .part-step { min-width: 44px; min-height: 44px; } }
.part-stepper { display: inline-flex; align-items: center; gap: var(--space-1); flex: none; }

@media (max-width: 899px) {
  .part-preset { min-height: 40px; min-width: 40px; }
}

.part-problem { --problem-sign: 13px; display: inline-flex; align-items: baseline; gap: var(--space-2); color: var(--warn); font-size: var(--type-small);
  min-width: 0; }
.part-problem > svg { flex: none; align-self: center; }
.part-problem .what { min-width: 0; }
.part-problem.quiet .what { color: var(--fg); }
.part-problem .amount { font-variant-numeric: tabular-nums; }
.part-problem:has(> .detail) { flex-wrap: wrap; }

.part-problem > .detail { box-sizing: border-box; flex: 1 0 100%; padding-left: calc(var(--problem-sign) + var(--space-2)); color: var(--muted); }
.part-fix-group { display: inline-flex; flex-direction: column; align-items: center; gap: var(--space-1); min-width: 0; }
.part-fix-cost { font-size: var(--type-small); color: var(--muted); font-variant-numeric: tabular-nums; text-align: center; }
.part-fix-cost > span { display: inline-flex; align-items: center; gap: var(--space-1); vertical-align: middle; }

.part-fix { border: 0; background: transparent; color: var(--fg); padding: 0 var(--space-2); min-height: 24px; text-decoration: underline;
  text-underline-offset: 3px; white-space: nowrap; -webkit-tap-highlight-color: transparent; }

@media (max-width: 899px) {
  .part-fix { min-height: 40px; min-width: 40px; }
}

.part-note { display: grid; gap: var(--space-1); padding: var(--space-2) var(--space-3); border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--card); }
.part-note .note-line { display: flex; align-items: center; gap: var(--space-2); min-width: 0; font-size: var(--type-small); }
.part-note .note-words { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.part-note small { flex: none; color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.part-note .note-line + .note-line { color: var(--tl-tie); }

.part-note[data-look="line"] { display: flex; align-items: center; gap: var(--space-1); padding: 0; border: 0; background: transparent; }

.part-ring-disc { position: relative; display: inline-grid; place-items: center; flex: none; width: var(--disc-size, 64px); height: var(--disc-size, 64px);
  font-family: var(--font); }
.part-ring-disc > .part-ring-disc-ring { position: absolute; inset: 0; }
.part-ring-disc > :not(.part-ring-disc-ring) { position: relative; color: inherit; }
.part-ring-disc > b { font-size: var(--type-heading); font-weight: 600; line-height: 1; }

.part-year-bars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-1); height: var(--year-height, 72px);
  font-family: var(--font); }
.part-year-bars > span { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; gap: calc(var(--space-1) / 2); min-width: 0; }
.part-year-bars > span > i { align-self: end; width: 100%; border-radius: calc(var(--radius-small) / 2); background: var(--year-color, var(--fg)); }
.part-year-bars > span > i.is-none { background: var(--raised); }
.part-year-bars > span > small { color: var(--muted); font-size: var(--type-small); line-height: 16px; }

.part-wind-bar { position: relative; display: block; height: var(--wind-bar-height, 6px); margin-block: var(--space-1); }
.part-wind-bar > i { position: absolute; top: 0; bottom: 0; }
.part-wind-bar > .part-wind-bar-step { box-shadow: inset -1px 0 0 var(--card); }
.part-wind-bar > .part-wind-bar-step:first-child { border-radius: calc(var(--radius-small) / 2) 0 0 calc(var(--radius-small) / 2); }
.part-wind-bar > .part-wind-bar-value { left: 0; border-radius: calc(var(--radius-small) / 2); }
.part-wind-bar > :is(.part-wind-bar-gust, .part-wind-bar-limit) { top: calc(-1 * var(--space-1)); bottom: calc(-1 * var(--space-1)); width: 2px;
  border-radius: 999px; transform: translateX(-50%); }
.part-wind-bar > .part-wind-bar-limit { top: calc(-1.5 * var(--space-1)); bottom: calc(-1.5 * var(--space-1)); background: var(--fg); }
.part-wind-bar > i[hidden] { display: none; }

.part-jump-picture { display: block; flex: none; }
.part-jump-picture.is-wide { width: 100%; height: auto; }

.part-jump-picture-line { fill: none; stroke: var(--fg); stroke-opacity: 0.7; stroke-dasharray: 1.5 2.5; }
.part-jump-picture-arrow { fill: none; stroke: var(--fg); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.part-jump-picture-word { fill: var(--fg); font: var(--type-small)/1 var(--font); font-variant-numeric: tabular-nums; }

.part-alarm-key { display: flex; flex-wrap: wrap; gap: var(--space-1); width: 100%;
  box-sizing: border-box; margin: 0; padding: var(--space-1); border: 0; border-radius: var(--panel-radius); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--border); color: var(--fg); font-family: var(--font); font-size: var(--type-body); text-align: left; }
button.part-alarm-key { cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background var(--dur-press) var(--ease-out); }
button.part-alarm-key:active { background: var(--raised); }
button.part-alarm-key:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.part-alarm-key-cell { display: grid; flex: 1 1 var(--alarm-key-cell, 72px); align-content: start; padding: var(--space-2); border-radius: var(--radius); }
.part-alarm-key-cell.is-next { background: var(--raised); box-shadow: inset 0 0 0 1px var(--control); }
.part-alarm-key-cell > b { font: 600 var(--type-heading)/1.2 var(--font-figures, var(--font)); font-variant-numeric: tabular-nums; white-space: nowrap; }
.part-alarm-key-cell > small { color: var(--muted); font-size: var(--type-small); }

.part-sky-column { display: grid; color: var(--fg); font-family: var(--font); }
.part-sky-column-level { position: relative; display: grid; grid-template-columns: 52px 20px minmax(0, 1fr) 24px 72px; align-items: center;
  gap: var(--space-2); min-height: var(--sky-column-row, 28px); padding-left: var(--space-3); font-size: var(--type-small);
  font-variant-numeric: tabular-nums; }
.part-sky-column-level + .part-sky-column-level { border-top: 1px solid var(--border); }
.part-sky-column-level.has-temp { grid-template-columns: 52px 20px minmax(0, 1fr) 24px 32px 72px; }
.part-sky-column-temp { text-align: right; white-space: nowrap; }
.part-sky-column-zero { border-top: 1px dashed var(--muted); color: var(--muted); font-size: var(--type-small);
  padding: var(--space-1) 0 var(--space-1) var(--space-3); }
.part-sky-column-height { text-align: right; white-space: nowrap; }
.part-sky-column-arrow { display: grid; place-items: center; }
.part-sky-column-arrow > i { display: grid; }
.part-sky-column-bar { display: block; height: var(--sky-column-bar, 6px); overflow: hidden; border-radius: calc(var(--radius-small) / 2);
  background: var(--raised); }
.part-sky-column-bar > i { display: block; height: 100%; border-radius: calc(var(--radius-small) / 2); }
.part-sky-column-speed { font-weight: 600; text-align: right; }
.part-sky-column-cloud { display: inline-flex; align-items: center; gap: var(--space-1); min-width: 0; overflow: hidden; color: var(--muted);
  white-space: nowrap; }
.part-sky-column-cloud > .icon { flex: none; color: inherit; }
.part-sky-column-cloud > span { overflow: hidden; text-overflow: ellipsis; }

.part-sky-column-level.in-cloud { background: color-mix(in oklab, var(--fg) 6%, transparent); }
.part-sky-column-level.in-cloud::before { content: ""; position: absolute; left: 0; top: -1px; bottom: 0; width: 6px; box-sizing: border-box;
  border: 1.5px solid var(--muted); border-block-width: 0; }
.part-sky-column-level.in-cloud.seen::before { background: var(--muted); }
.part-sky-column-level.cloud-top::before { top: 0; border-top-width: 1.5px; }
.part-sky-column-level.cloud-base::before { border-bottom-width: 1.5px; }

.part-tab-bar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(min-content, 1fr); box-sizing: border-box;
  padding: var(--space-1) env(safe-area-inset-right, 0px) calc(var(--space-1) + env(safe-area-inset-bottom, 0px)) env(safe-area-inset-left, 0px);
  border-top: 1px solid var(--border);
  background: var(--bg); font-family: var(--font); }
.part-tab-bar-tab { display: grid; justify-items: center; align-content: center; gap: calc(var(--space-1) / 2); min-width: 0;
  min-height: var(--tab-bar-target, 48px); border-radius: var(--radius); color: var(--muted); font-size: var(--type-small); font-weight: 600;
  line-height: 16px; text-decoration: none; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent;
  touch-action: manipulation; transition: background var(--dur-press) var(--ease-out), transform var(--dur-press) var(--ease-out); }
.part-tab-bar-tab > span { white-space: nowrap; }
.part-tab-bar-tab[aria-current] { color: var(--fg); background: var(--card); box-shadow: inset 0 0 0 1px var(--border); }

.part-tab-bar-tab:is(:active, [data-pressed]) { transform: scale(var(--press-scale)); background: var(--raised); }
.part-tab-bar-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
@media (hover: hover) and (pointer: fine) { .part-tab-bar-tab:hover { color: var(--fg); } }

.part-altitude-dial { --altitude-dial-unit: calc(100cqi / 192); --altitude-dial-reading: calc(55.5 * var(--altitude-dial-unit));
  --altitude-dial-tenth: calc(13.5 * var(--altitude-dial-unit));
  --altitude-dial-note: min(max(var(--type-small), calc(6.5 * var(--altitude-dial-unit))), calc(7 * var(--altitude-dial-unit)));
  --altitude-dial-word: calc(11.25 * var(--altitude-dial-unit)); --altitude-dial-tight: 0.065em; --altitude-dial-sign: max(10px, 4.2cqi);
  position: relative; width: min(100%, var(--altitude-dial-size, 330px)); aspect-ratio: 1;
  container-type: inline-size; border-radius: 50%; background: var(--picture); color: var(--fg); font-family: var(--font); }
.part-altitude-dial [hidden] { display: none; }
.part-altitude-dial-ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.part-altitude-dial-ring .rest { stroke-width: 7; }
.part-altitude-dial-ring .front { stroke-width: 11; }
.part-altitude-dial-ring .blocks > path { stroke: var(--border); stroke-width: 7; stroke-linecap: butt; }
.part-altitude-dial-ring .blocks > .front { stroke-width: 11; }
.part-altitude-dial-ring .cue { stroke: currentColor; stroke-width: 9; }
.part-altitude-dial-ring .edge { stroke: var(--picture); stroke-width: 12; }
.part-altitude-dial-cue { position: absolute; display: grid; place-items: center; transform: translate(-50%, -50%);
  font: 600 var(--altitude-dial-sign)/1 var(--font); }
.part-altitude-dial-cue > svg { width: var(--altitude-dial-sign); height: var(--altitude-dial-sign); }

.part-altitude-dial-end, .part-altitude-dial-mark { position: absolute; left: 50%; top: 3%; display: grid; place-items: center; width: 4.4cqi;
  aspect-ratio: 1; border-radius: 50%; background: var(--picture); transform: translate(-50%, -50%); }
.part-altitude-dial-end > span { display: grid; }
.part-altitude-dial-end svg, .part-altitude-dial-mark > svg { width: 3.9cqi; height: 3.9cqi; }
.part-altitude-dial-in { position: absolute; inset: 0; }
.part-altitude-dial-in > * { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.part-altitude-dial-top { top: calc(50% - 49 * var(--altitude-dial-unit)); display: flex; justify-content: space-between;
  width: calc(72 * var(--altitude-dial-unit)); color: var(--muted); font: 600 var(--altitude-dial-note)/1 var(--font-figures, var(--font));
  font-variant-numeric: tabular-nums; }
.part-altitude-dial-top > span { display: inline-flex; align-items: center; gap: calc(2 * var(--altitude-dial-unit)); }
.part-altitude-dial-top > span:last-child { margin-left: auto; }
.part-altitude-dial-top svg { width: var(--altitude-dial-note); height: var(--altitude-dial-note); }
.part-altitude-dial-word { top: calc(50% - 36 * var(--altitude-dial-unit)); font: 600 var(--altitude-dial-word)/1 var(--font); }

.part-altitude-dial-height { top: 50%; transform: translate(-50%, calc(-50% - 2.75 * var(--altitude-dial-unit)));
  font: 600 var(--altitude-dial-reading)/1 var(--font-figures, var(--font)); letter-spacing: calc(-1 * var(--altitude-dial-tight));
  font-variant-numeric: tabular-nums; }
.part-altitude-dial-height > b { padding-right: var(--altitude-dial-tight); font-weight: 600; }
.part-altitude-dial-unit { position: absolute; left: 100%; top: 50%; display: grid; justify-items: start; margin-left: var(--altitude-dial-unit);
  transform: translateY(-50%); opacity: 0.72; font-weight: 600; letter-spacing: 0; }
.part-altitude-dial-unit > i { min-height: 1.05em; font-style: normal; font-size: var(--altitude-dial-tenth); line-height: 1.05; }
.part-altitude-dial-unit > small { font-size: var(--altitude-dial-word); line-height: 1.05; }

.part-altitude-dial-under { --dial-rail-unit: var(--altitude-dial-unit); top: calc(50% + 24 * var(--altitude-dial-unit)); display: flex;
  flex-wrap: wrap; justify-content: center; align-items: center; gap: calc(3 * var(--altitude-dial-unit)) calc(2 * var(--altitude-dial-unit));
  width: calc(72 * var(--altitude-dial-unit)); font: 600 var(--altitude-dial-note)/1.2 var(--font); }
.part-altitude-dial-under > svg { width: var(--altitude-dial-note); height: var(--altitude-dial-note); color: var(--muted); }

.part-jump-player { --jump-player-stage: min(300px, 42dvh); display: grid; gap: var(--space-2); min-width: 0; font-family: var(--font); color: var(--fg); }
@media (min-width: 900px) { .part-jump-player { --jump-player-stage: 380px; } }
.part-jump-player-stage { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--picture); }
.part-jump-player-picture { position: relative; height: var(--jump-player-stage); }
.part-jump-player-picture > * { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.part-jump-player-top { display: grid; gap: var(--space-2); min-width: 0; }
.part-jump-player.is-needle .part-jump-player-top { position: sticky; top: var(--jump-player-top, 0px); z-index: 2; margin-bottom: calc(-1 * var(--space-2));
  padding-bottom: var(--space-2); background: var(--bg); }
.part-jump-player.is-full { grid-template-rows: minmax(0, 1fr) auto auto; gap: 0; height: 100%; }
.part-jump-player.is-full .part-whole-strip { border-radius: 0; }
.part-jump-player.is-full .part-jump-player-stage { border-radius: 0; }
.part-jump-player.is-full .part-jump-player-picture { height: 100%; }
.part-jump-player-views { position: absolute; top: var(--space-2); left: var(--space-2); }
.part-jump-player.is-needle:not(.is-full) .time-view-canvas { touch-action: pan-y; }

.part-jump-player-stage[data-quiet]:not([data-player-room="closed"]) > .part-player { opacity: 0; pointer-events: none; }
.part-jump-player-stage[data-quiet]:not([data-player-room="closed"]) > .part-player * { pointer-events: none; }
.part-jump-player-rate > b { font: 600 var(--type-small) / 1 var(--font); font-variant-numeric: tabular-nums; }
.part-jump-player-stage[data-player-room="closed"] :is(.part-jump-player-rate, .part-jump-player-full) { display: none; }

.part-one-player-strip { --strip-height: var(--tl-overview-height-compact); display: flex; align-items: center; gap: var(--space-1); min-width: 0; }
.part-one-player-strip:has(> .part-whole-strip.is-wide) { --strip-height: var(--tl-overview-height-wide); }
.part-one-player-strip:has(> .part-whole-strip.has-play-bar) { --strip-height: 40px; }
.part-one-player-strip[hidden], .part-player-grip[hidden] { display: none; }
.part-one-player-strip > .part-whole-strip { flex: 1; min-width: 0; height: var(--strip-height); }
.part-one-player-strip > .part-one-player-play { position: relative; flex: none; width: var(--strip-height); height: var(--strip-height);
  min-width: 0; min-height: 0; padding: 0; border: 0; border-radius: var(--tl-overview-radius); background: var(--tl-panel); }
.part-one-player-play::after { content: ''; position: absolute; inset: calc((var(--strip-height) - 44px) / 2) 0; }
.part-one-player-strip > .part-one-player-play[hidden] { display: none; }
.part-player-grip { display: flex; position: relative; z-index: 9; width: 88px; height: 44px; min-height: 44px;
  margin: calc(-1 * var(--space-3)) auto calc(-1 * var(--space-2)); align-items: center; justify-content: center;
  padding: 0; border: 0; background: none; touch-action: none; cursor: ns-resize; }
.part-player-grip::before { content: ''; width: 36px; height: 4px; border-radius: 999px; background: var(--muted); }
.part-player-room { position: relative; overflow: hidden; }
.part-player-room > .part-player-room-picture { width: 100%; height: 100%; }
.part-player-room[data-player-room='closed'] > .part-player-room-picture { position: absolute; left: 8px; top: 6px;
  width: 78px; height: 44px; overflow: hidden; border-radius: var(--radius-small); }
.part-player-room[data-player-room='closed'] > .part-player-room-picture > * { position: absolute; inset: 0 auto auto 0;
  width: var(--player-room-source-width); height: var(--player-room-source-height); transform: scale(var(--player-room-mini-scale)); transform-origin: 0 0; }
.part-player-room[data-player-room='closed'] > .part-player-room-picture text { display: none; }
.part-player-room[data-player-room='closed'] > .part-player-room-picture button { display: none; }
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] { position: absolute; inset: 0 8px 0 94px;
  align-items: center; background: var(--card); }
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] .part-player-tools { order: 0; }
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] .part-player-left { order: 1; flex: 1; justify-content: end; }
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] .part-player-outer,
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] .part-player-reading,
.part-player-room[data-player-room='closed'] > .part-player[data-place='under'] .part-player-of { display: none; }
.part-player-room > .part-player[data-mini-only] { display: none; }
.part-player-room[data-player-room='closed'] > .part-player[data-mini-only] { display: flex; }
.part-player-room > .part-player[data-mini-only] .part-player-left { display: flex; }
.part-player-room > .part-player[data-mini-only] .part-player-tools:empty { display: none; }

.part-flight-scene { --flight-scene-head: 0px; --flight-scene-foot: 8px; --flight-scene-inset: 10px;
  --flight-scene-line: 2.8px; --flight-scene-shadow: .45; --flight-scene-ground: 1; position: relative;
  width: 100%; height: 100%; min-height: 160px; overflow: hidden; background: var(--picture);
  touch-action: none; user-select: none; -webkit-user-select: none; }
.part-flight-scene.is-eyes { background: linear-gradient(var(--picture), var(--muted)); }
.part-flight-scene.is-eyes.is-limited { background: var(--picture); }
.part-flight-scene-ground, .part-flight-scene-lines { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.part-flight-scene-marks .scene-mark { cursor: pointer; }
.part-flight-scene-marks .scene-mark-point circle:first-child { fill: var(--scene-mark-tone); stroke: var(--bg); stroke-width: 2; }
.part-flight-scene-marks .scene-mark-canopy { fill: var(--scene-mark-tone); stroke: var(--bg); stroke-width: 2; }
.part-flight-scene-marks .scene-mark-line path:first-child { fill: none; stroke: var(--scene-mark-tone); stroke-width: 2; }
.part-flight-scene-marks .scene-mark-frame { fill: none; stroke: var(--fg); stroke-width: 1; }
.part-flight-scene-marks .scene-mark-image-box { position: relative; width: 100%; height: 100%; overflow: visible; }
.part-flight-scene-marks .scene-mark-image { position: absolute; width: 1px; height: 1px; max-width: none; transform-origin: 0 0; }
.part-flight-scene-marks .scene-mark-hit { fill: transparent; stroke: transparent; pointer-events: all; }
.part-flight-scene-marks .scene-mark-line .scene-mark-hit { stroke-width: 32; }
.part-flight-scene-marks .scene-mark[data-interactive="false"],
.part-flight-scene-marks .scene-mark[data-interactive="false"] * { pointer-events: none; }

.part-flight-scene-tools { position: absolute; inset: 0; pointer-events: none; }
.part-flight-scene-row { position: absolute; left: var(--space-2); right: calc(var(--space-2) * 2 + var(--control-h));
  top: calc(var(--space-2) + var(--flight-scene-head)); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.part-flight-scene-row > *, .part-flight-scene-layers, .part-flight-scene-panel { pointer-events: auto; }
.part-flight-scene-row > [hidden], .part-flight-scene-layers[hidden], .part-flight-scene-panel[hidden] { display: none; }
.part-flight-scene.is-frame-match .part-flight-scene-row { display: none; }
.part-flight-scene.is-compact-tools .part-flight-scene-row { flex-wrap: nowrap; }
.part-flight-scene.is-compact-tools .part-flight-scene-row > .part-seg { flex: 1 1 auto; min-width: 0; }
.part-flight-scene-tools > .part-flight-scene-layers { position: absolute; right: var(--space-2); top: calc(var(--space-2) + var(--flight-scene-head)); }

.part-flight-scene-panel { position: absolute; left: var(--space-2); right: var(--space-2); bottom: var(--space-2); max-height: calc(100% - 64px);
  display: flex; flex-direction: column; overflow: hidden; }
.part-flight-scene-panel > .part-panel { min-height: 0; }
.part-flight-scene-panel .part-flight-scene-rows { display: flex; flex-direction: column; gap: 0; min-height: 0; overflow: auto;
  scrollbar-gutter: stable; }
.part-flight-scene-panel [hidden] { display: none; }

.part-flight-scene-tools > .part-flight-scene-foot { position: absolute; right: var(--flight-scene-inset); bottom: var(--flight-scene-foot); margin: 0;
  max-width: calc(100% - 2 * var(--flight-scene-inset)); color: var(--muted); font: 400 var(--type-small)/1 var(--font); white-space: nowrap;
  pointer-events: none; }
.part-flight-scene-foot > * { opacity: .75; }
.part-flight-scene-foot > .part-flight-scene-foot-old { color: var(--marker); opacity: 1; }
.part-flight-scene-foot[hidden], .part-flight-scene-foot-old[hidden] { display: none; }
.part-flight-scene-tools::before { content: ""; position: absolute; inset: auto 0 0; height: 34px;
  background: linear-gradient(transparent, color-mix(in oklab, var(--picture) 72%, transparent)); pointer-events: none; }
.part-flight-scene-tools:has(> .part-flight-scene-foot[hidden])::before,
.part-flight-scene-tools:has(> .part-flight-scene-panel:not([hidden]))::before { display: none; }
.part-flight-scene-row > [aria-pressed="true"] { background: var(--fg); color: var(--picture); }

.part-flight-scene-look { position: absolute; right: var(--space-2); bottom: var(--space-6); pointer-events: auto; background: var(--scrim);
  border-radius: var(--radius); }
.part-flight-scene-body-foot { position: absolute; left: var(--space-2); bottom: var(--space-6); max-width: 55%; min-height: var(--control-h); margin: 0;
  display: flex; align-items: center; padding-inline: var(--space-2); border-radius: var(--radius); background: var(--scrim); color: var(--fg);
  font: 400 var(--type-small) var(--font); }
.part-flight-scene-look[hidden], .part-flight-scene-body-foot[hidden] { display: none; }
.part-flight-scene-row > [aria-pressed] { padding-inline: var(--space-2); }
.part-flight-scene-row > [aria-pressed] > .icon { display: none; }
.part-flight-scene-lines text { font: 400 var(--type-small) var(--font); fill: var(--muted); paint-order: stroke; stroke: var(--picture); stroke-width: 3px;
  stroke-linejoin: round; }
.part-flight-scene-lines text.fg { fill: var(--fg); }
.part-flight-scene-lines .land { fill: color-mix(in oklab, var(--fg) 6%, var(--picture)); }
.part-flight-scene-lines.pictured .land { display: none; }
.part-flight-scene-lines .ring { stroke: var(--control); stroke-width: 1; }
.part-flight-scene-lines.pictured .ring { stroke: color-mix(in oklab, var(--fg) 42%, transparent); }
.part-flight-scene-lines .home { fill: var(--fact-green); stroke: var(--picture); stroke-width: 2; }
.part-flight-scene-lines .sun-mark { fill: var(--fact-yellow); stroke: var(--picture); stroke-width: 1; }
.part-flight-scene-lines .sun-course, .part-flight-scene-lines .celestial-line { fill: none; stroke: var(--muted); stroke-width: 1; }
.part-flight-scene-lines .sun-course { stroke: var(--fact-yellow); stroke-dasharray: 2 5; opacity: .65; }
.part-flight-scene-lines .moon-disc { fill: var(--picture); stroke: var(--muted); stroke-width: 1; }
.part-flight-scene-lines .moon-lit { fill: var(--fg); stroke: none; }
.part-flight-scene-lines .celestial-cloud-back { fill: var(--picture); stroke: none; }
.part-flight-scene-lines .celestial-height { fill: var(--fg); stroke: var(--picture); }
.part-flight-scene-lines .pole { stroke: var(--muted); stroke-width: 1; opacity: .7; }
.part-flight-scene-lines .level { stroke-width: 2; }
.part-flight-scene-lines .level.hair { stroke-width: 1; }
.part-flight-scene-lines .band { fill: color-mix(in oklab, var(--fg) 30%, transparent); stroke: var(--fg); stroke-width: 1; }
.part-flight-scene-lines .band-head { fill: var(--fg); stroke: none; }
.part-flight-scene-lines .shade { fill: var(--mask-opaque); opacity: .32; }
.part-flight-scene-lines .cloud { fill: color-mix(in oklab, var(--fg) 22%, transparent); stroke: color-mix(in oklab, var(--fg) 55%, transparent);
  stroke-width: 1; }
.part-flight-scene-lines .cloud.side { fill: color-mix(in oklab, var(--fg) 7%, transparent); stroke: none; }
.part-flight-scene-lines .cloud.flat { fill: color-mix(in oklab, var(--fg) 14%, transparent); stroke-dasharray: 3 3; }
.part-flight-scene-lines .cells-grid { stroke: color-mix(in oklab, var(--fg) 42%, transparent); stroke-width: 1; }
.part-flight-scene-lines .cells-slab { fill: color-mix(in oklab, var(--fg) 25%, transparent); stroke: none; }
.part-flight-scene-lines .cells-edge { stroke: color-mix(in oklab, var(--fg) 92%, transparent); stroke-width: 1.6; }
.part-flight-scene-lines .cells-shade { stroke: color-mix(in oklab, var(--fg) 11%, transparent); stroke-width: 1.6; }
.part-flight-scene-lines .cells-face { will-change: opacity; }
.part-flight-scene-lines .cells-slide { animation: part-flight-scene-slide var(--slide-s) linear infinite; }
@keyframes part-flight-scene-slide { to { transform: translate(var(--to-x), var(--to-y)); } }
.part-flight-scene-lines .stem { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 2 4; }
.part-flight-scene-lines .friend { stroke: color-mix(in oklab, var(--fact-blue) 55%, var(--picture)); stroke-width: 1.6; }
.part-flight-scene-lines .mine { stroke-width: var(--flight-scene-line); }
.part-flight-scene-lines .gap { stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 3 4; }
.part-flight-scene-lines .landed { stroke: var(--picture); stroke-width: 2; }
.part-flight-scene-lines .landed-line { stroke-width: 1; stroke-dasharray: 4 3; }
.part-flight-scene-lines .moment { fill: var(--fg); stroke: var(--picture); stroke-width: 1.5; }
.part-flight-scene-lines .shadow { stroke: var(--mask-opaque); stroke-width: 2.5; opacity: var(--flight-scene-shadow); }
.part-flight-scene-lines .bar { stroke-width: 1.5; opacity: .55; }
.part-flight-scene-lines .bar.ahead { opacity: .24; }
.part-flight-scene-ground { filter: brightness(var(--flight-scene-ground)); }
.part-flight-scene-lines .fall { stroke: var(--fg); stroke-width: 1; opacity: .5; }
.part-flight-scene-lines .foot { fill: var(--fg); opacity: .6; }
.part-flight-scene-lines .dot { stroke: var(--fg); stroke-width: 2; }
.part-flight-scene-lines .dot.other { fill: var(--fact-blue); stroke: var(--picture); }
.part-flight-scene-lines .wind { stroke: var(--fg); stroke-width: 2.5; }
.part-flight-scene-lines .spot { fill: var(--fact-blue); stroke: var(--picture); stroke-width: 2; }
.part-flight-scene-lines .under { fill: var(--picture); opacity: .6; }
.part-flight-scene-lines svg { color: var(--fg); }

.part-flight-scene.is-frame-match .part-flight-scene-tools { display: none; }

.part-home-disc { display: grid; gap: var(--space-2); width: min(100%, var(--home-disc-size, 420px)); margin-inline: auto; font-family: var(--font); }
.part-home-disc-face { position: relative; aspect-ratio: 1; }
.part-home-disc-face[data-movable="true"] { touch-action: none; cursor: grab; clip-path: circle(50%); }
.part-home-disc-under { border-radius: 50%; background: var(--picture); box-shadow: 0 0 0 1px var(--border); }
.part-home-disc-under, .part-home-disc-rings, .part-home-disc-marks { position: absolute; inset: 0; width: 100%; height: 100%; }
.part-home-disc-rings circle { fill: none; stroke: color-mix(in oklab, var(--fg) 38%, transparent); stroke-width: 1; vector-effect: non-scaling-stroke; }
.part-home-disc-rings circle[data-home] { fill: var(--fg); stroke: var(--picture); }
.part-home-disc-word { position: absolute; transform: translate(-50%, -50%); font-size: var(--type-small); color: var(--fg); white-space: nowrap;
  text-shadow: 0 0 3px var(--shadow), 0 0 3px var(--shadow); }
.part-home-disc-word[data-kind="ring"] { color: color-mix(in oklab, var(--fg) 72%, transparent); transform: translate(-110%, -50%); }
.part-home-disc-word[data-kind="north"] { transform: translate(-50%, 20%); font-weight: 600; }
.part-home-disc-mark { position: absolute; transform: translate(-5px, -5px); display: flex; align-items: center; gap: var(--space-1); padding: 0; border: 0;
  background: none; font: inherit; font-size: var(--type-small); color: var(--fg); white-space: nowrap; }
.part-home-disc-mark b { position: relative; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--mark);
  box-shadow: 0 0 0 1.5px var(--picture); }
.part-home-disc-mark b i { position: absolute; left: 4px; bottom: 5px; width: 2px; height: 14px; background: var(--mark); transform-origin: 50% 100%; }
.part-home-disc-mark span { padding: 0 var(--space-1); border-radius: var(--radius-small); background: var(--scrim); }
.part-home-disc-mark[data-side="left"] { flex-direction: row-reverse; transform: translate(calc(-100% + 5px), -5px); }
button.part-home-disc-mark { cursor: pointer; touch-action: manipulation; }
.part-home-disc-foot { margin: 0; font-size: var(--type-small); color: var(--muted); text-align: center; min-height: 1.4em; }

.part-try-frame, .part-try-stack, .part-try-requests { display: grid; gap: var(--space-3); min-width: 0; font-family: var(--font); }
.part-try-ask { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: end; }
.part-try-ask > * { min-width: 0; }
.part-try-field { flex: 1 1 110px; min-width: 0; }
.part-try-field > * { width: 100%; box-sizing: border-box; }
.part-try-result { display: grid; align-content: start; gap: var(--space-3); min-width: 0; min-height: 120px; }
.part-try-row { display: grid; gap: var(--space-2); }
.part-try-stage { height: 380px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }
.part-try-stage[data-look="square"] { height: auto; border: 0; overflow: visible; }
.part-try-stage[data-look="centred"] { height: auto; border: 0; overflow: visible; display: grid; justify-items: center; }
.part-try-stage[data-look="fit"] { height: auto; border: 0; overflow: visible; }
.part-try-stage[data-look="fit"] svg { display: block; width: 100%; height: auto; }
@media (max-width: 700px) { .part-try-stage[data-look="tall"] { height: 42vh; min-height: 300px; } }
.part-try-under, .part-try-fact, .part-try-declared { margin: 0; color: var(--muted); font-size: var(--type-small); }
.part-try-stop { margin: 0; color: var(--problem); }
.part-try-name { margin: 0; font-size: var(--type-heading); font-weight: 600; }
.part-try-head { margin: var(--space-2) 0 0; font-size: var(--type-body); font-weight: 600; }
.part-try-discs { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--space-4) var(--space-2); }
.part-try-disc { display: grid; justify-items: center; align-content: start; gap: var(--space-1); text-align: center; }
.part-try-disc-name { font-size: var(--type-small); }
.part-try-disc-progress { font-size: var(--type-small); color: var(--muted); }
.part-try-records { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-2); }
.part-try-records li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: var(--space-2); align-items: center; }

.part-fetched-map { margin: 0; display: grid; grid-template-columns: minmax(0, 180px) minmax(0, 1fr); gap: var(--space-3); align-items: start;
  color: var(--muted); font-size: var(--type-small); font-family: var(--font); }
.part-fetched-map-picture svg { display: block; width: 100%; height: auto; }
.part-fetched-map ul { margin: var(--space-2) 0 0; padding: 0; list-style: none; display: grid; gap: var(--space-1); }
.part-fetched-map-key { display: inline-block; width: 10px; height: 10px; border-radius: var(--radius-small); margin-right: var(--space-2); }

.part-transport { display: grid; grid-auto-flow: column; align-items: center; column-gap: var(--transport-gap); min-width: 0; box-sizing: border-box; }
.part-transport[data-fields="1"] { grid-template-columns: minmax(0, 1fr); }
.part-transport[data-fields="2"] { grid-template-columns: minmax(0, 1fr) auto; }
.part-transport[data-fields="3"] { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.part-transport-field { display: flex; flex-wrap: nowrap; align-items: center; gap: var(--transport-gap); min-width: 0; }
.part-transport-field[data-field="centre"] { justify-content: center; }
.part-transport-field[data-field="end"] { justify-content: flex-end; }
.part-transport-field > * { flex: none; }
.part-transport-field > [data-shrink] { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.part-transport[data-fitting] .part-transport-field > [data-shrink] { flex: none; }
.part-transport-away { display: none; }
.part-transport-line { flex: none; align-self: stretch; width: 1px; margin: var(--transport-line-inset) var(--transport-gap); background: var(--border); }

.part-transport [data-face="icon"] > .word { display: none; }
.part-transport [data-face="icon"] { justify-content: center; min-width: var(--transport-press); min-height: var(--transport-press); padding: 0 var(--transport-pad); border-color: transparent; background: transparent; }
.part-transport :is([data-face="round"], [data-face="disc"]) { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  width: var(--transport-round); height: var(--transport-round); min-width: var(--transport-round); min-height: var(--transport-round);
  padding: 0; border-radius: 50%; position: relative; }
.part-transport [data-face="round"] { border: 0; background: var(--fg); color: var(--bg); }

.part-transport [data-face="disc"] { border: 1px solid var(--border); background: var(--raised); color: var(--fg); }
.part-transport [data-face="disc"]:active:not(:disabled) { background: var(--control); }

.part-transport :is([data-face="round"], [data-face="disc"])::before { content: ""; position: absolute;
  inset: min(0px, calc((var(--transport-round) - 44px) / 2)); border-radius: 50%; }
.part-transport :is([data-face="round"], [data-face="disc"]) > .word { display: none; }

.part-transport [data-face="disc"]:not(:has(> svg)) > .word { display: inline; font-variant-numeric: tabular-nums; }
.part-transport [data-face="cells"] { display: flex; flex-wrap: nowrap; align-items: center; gap: var(--transport-gap); }
.part-transport :is([data-face="cell"], [data-face="cells"] > button:not(.primary), [data-face="cells"] > :not(button) > button) { display: inline-grid;
  grid-template-columns: auto auto; justify-content: center; align-content: center; column-gap: var(--space-1); row-gap: var(--space-1); box-sizing: border-box;
  height: var(--transport-cell); min-width: var(--transport-cell); padding: 0 var(--transport-pad); border: 0;
  border-radius: var(--radius); background: transparent; color: var(--fg);
  font-size: var(--type-small); line-height: 1.2; white-space: nowrap; }
.part-transport :is([data-face="cell"], [data-face="cells"] > button:not(.primary), [data-face="cells"] > :not(button) > button) > svg:first-child { grid-column: 1 / -1; justify-self: center; width: var(--transport-cell-icon); height: var(--transport-cell-icon); }
.part-transport [data-face="cell"][aria-pressed="true"], .part-transport [data-face="cell"].on { background: var(--segment-on); }
@media (hover: hover) { .part-transport :is([data-face="cell"], [data-face="icon"]):hover { background: var(--hover); } }

.part-transport [data-badge]:not([data-badge=""]) { position: relative; }
.part-transport [data-badge]:not([data-badge=""])::after { content: attr(data-badge); position: absolute; top: var(--transport-badge-top); right: var(--transport-badge-right); min-width: var(--transport-badge); height: var(--transport-badge);
  padding: 0 5px; box-sizing: border-box; border-radius: calc(var(--transport-badge) / 2); background: var(--problem); color: var(--on-warn); font: 600 var(--type-small)/var(--transport-badge) var(--font);
  text-align: center; pointer-events: none; }

.part-tool-row[data-spread] { width: 100%; }
.part-tool-row[data-spread] .part-transport-field { gap: var(--space-2); justify-content: space-between; }
.part-tool-row[data-spread] .part-transport-field > * { flex: 1; }
.part-tool-row[data-spread] .part-transport-field > :not(.part-button) { display: flex; position: relative; }
:where(.part-tool-row[data-spread] .part-transport-field) > .part-button[type],
:where(.part-tool-row[data-spread] .part-transport-field > *) > .part-button[type]:first-child { flex: 1; flex-direction: column; gap: var(--space-1);
  min-height: 52px; padding: var(--space-1); border-color: transparent; background: transparent; font-size: var(--type-small); font-weight: inherit;
  white-space: nowrap; }
:where(.part-tool-row[data-spread] .part-transport-field > *) > .part-button[type]:first-child { color: inherit; }
:where(.part-tool-row[data-spread] .part-transport-field) > .part-button[type] .icon,
:where(.part-tool-row[data-spread] .part-transport-field > *) > .part-button[type]:first-child .icon { width: 20px; height: 20px; }
.part-tool-row .part-tool-row-more > button { width: 100%; }
.part-tool-row .part-tool-row-more[hidden] { display: none; }

@media (max-width: 899px), (pointer: coarse) {
  .part-tool-row { min-height: 48px; }
  .part-tool-row[data-spread] .part-transport-field { justify-content: flex-start; gap: var(--transport-tool-gap); }
  .part-tool-row[data-spread] .part-transport-field > * { flex: none; }
  .part-tool-row .part-tool-row-more { order: -1; }
  .part-tool-row :is([data-face="cell"], [data-face="cells"] > button:not(.primary), [data-face="cells"] > :not(button) > button),
  :where(.part-tool-row[data-spread] .part-transport-field) > .part-button[type],
  :where(.part-tool-row[data-spread] .part-transport-field > *) > .part-button[type]:first-child {
    display: inline-flex; flex: none; flex-direction: column; align-items: center; justify-content: center;
    gap: var(--transport-tool-gap); box-sizing: border-box; width: 52px; min-width: 52px; height: 44px; min-height: 44px; padding: 0;
    font-size: var(--transport-tool-text); white-space: nowrap;
  }
  .part-tool-row :is([data-face="cell"], [data-face="cells"] > button:not(.primary), .part-button) > :is(svg,.icon):first-child { width: 18px; height: 18px; }
}
@media (min-width: 376px) and (max-width: 899px) {
  .part-tool-row[data-spread] .part-transport-field:has(> :nth-child(6):last-child) > :nth-child(2) { margin-left: var(--transport-column); }
}

.part-tool-row.part-transport [data-tool]:disabled { color: var(--muted); }

.part-surface { display: flex; flex-direction: column; min-width: 0; }
.part-surface-sheet { display: grid; gap: var(--space-3); padding: var(--space-4); background: var(--card); color: var(--fg);
  border-radius: var(--radius) var(--radius) 0 0; }
.part-surface-sheet[hidden] { display: none; }

.part-surface .part-tool-row [data-tool][aria-pressed="true"] { background: var(--raised); border-radius: var(--radius); }
.part-surface-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.part-surface-head h2 { margin: 0; min-width: 0; font-size: var(--type-heading); font-weight: 600; color: var(--fg); }
.part-surface-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.part-surface-group[data-look="toggles"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.part-surface-group > p, .part-surface-choice > p { grid-column: 1 / -1; margin: 0; font-size: var(--type-small); color: var(--muted); }
.part-surface-choice { grid-column: 1 / -1; display: grid; gap: var(--space-2); }
.part-surface-group .part-button { min-height: 44px; padding: 0 var(--space-2); border: 1px solid transparent; border-radius: var(--radius);
  background: transparent; color: var(--fg); font-size: var(--type-body); }
.part-surface-group[data-look="list"] .part-button { justify-content: flex-start; }
.part-surface-group[data-look="pair"] .part-button { justify-content: center; background: var(--control); }
.part-surface-group[data-look="toggles"] .part-button { justify-content: center; border-color: var(--border); }
.part-surface-group .part-button[aria-pressed="true"] { border-color: var(--accent); color: var(--accent); }
.part-surface-group .part-button:disabled { color: var(--muted); }

.part-version-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; column-gap: var(--space-3); align-items: center; position: relative;
  box-sizing: border-box; width: 100%; min-height: 40px; padding: 0 var(--space-3) 0 var(--space-4); border: 0; border-radius: var(--radius);
  background: transparent; color: var(--fg); font: inherit; font-size: var(--type-body); text-align: left; -webkit-tap-highlight-color: transparent; }
.part-version-row:not(:disabled) { cursor: pointer; }
.part-version-row:not(:disabled):hover, .part-version-row:focus-visible { background: var(--hover); }
.part-version-row.picked { background: var(--raised); }
.version-row-lead { display: grid; place-items: center; color: var(--muted); }
.part-version-row.change.ai .version-row-lead { color: var(--fact-blue); }
.version-row-words { display: flex; align-items: baseline; gap: var(--space-2); min-width: 0; }
.version-row-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.version-row-tag, .version-row-time { flex: none; color: var(--muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; white-space: nowrap; }
.version-row-dot { position: absolute; left: 4px; top: 50%; width: 8px; height: 8px; transform: translateY(-50%); border-radius: 50%;
  background: var(--fact-green); }
.part-version-row.undone .version-row-title, .part-version-row.undone .version-row-lead { color: var(--muted); font-weight: 400; }

.part-version-row.mark, .part-version-row.mark .version-row-lead { color: var(--fact-yellow); }
.part-version-row.mark { min-height: 32px; }
.part-version-row.mark .version-row-title { font-weight: 400; }
.version-row-rule { height: 1px; min-width: 24px; background: var(--border); }
.part-version-row.fold .version-row-title { color: var(--muted); font-weight: 400; }
.version-row-under { padding-left: var(--space-3); }

.part-version-row.day { min-height: 0; height: 28px; color: var(--muted); font-size: var(--type-small); }
.part-version-row.day .version-row-title { font-weight: 400; }
.part-version-group.day > .version-row-under { padding-left: 0; }
.part-version-row:disabled { opacity: 1; cursor: default; }

.version-row-act { display: inline-flex; flex: none; align-items: center; gap: var(--space-1); color: var(--fg); font-weight: 600; }

.part-version-row.mark .version-row-title { flex: none; }
.part-version-row.mark .version-row-tag { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

.part-jump-log { display: flex; flex-direction: column; color: var(--fg); font-family: var(--font); font-size: var(--type-body); }
.part-jump-log-head { display: flex; align-items: center; gap: var(--space-2); box-sizing: border-box; width: 100%; min-height: 36px; padding: 0;
  border: 0; background: none; color: inherit; font: inherit; text-align: left; -webkit-tap-highlight-color: transparent; }
.part-jump-log-head > b { font-weight: 600; white-space: nowrap; }
.part-jump-log-where { min-width: 0; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.part-jump-log-count { margin-left: auto; color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
button.part-jump-log-head { min-height: 44px; cursor: pointer; }
button.part-jump-log-head > .icon { flex: none; color: var(--muted); }
button.part-jump-log-head:focus-visible { outline: 2px solid var(--sel); outline-offset: -2px; border-radius: var(--radius-small); }

.part-jump-log-group .part-jump-log-group > button.part-jump-log-head { padding-left: var(--space-6); }
.part-jump-log-dots, .part-jump-log-group > :is(.part-year-bars, .part-day-grid) { margin-left: var(--space-6); }
.part-jump-log-group .part-jump-log-group > .part-jump-log-dots { margin-left: calc(2 * var(--space-6)); }
.part-jump-log-dots { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); padding-bottom: var(--space-3); color: var(--muted);
  font-size: var(--type-small); }
.part-jump-log-dots > i { width: 6px; height: 6px; border-radius: 50%; background: var(--dot-tone, var(--muted)); }
.part-jump-log-group > .part-year-bars { --year-height: 48px; margin-bottom: var(--space-3); }
.part-jump-log-group > .part-day-grid { width: auto; margin-bottom: var(--space-3); }
.part-jump-log-empty { margin: 0; padding: var(--space-4) 0; color: var(--muted); }

.part-jump-row-first { display: flex; align-items: center; gap: var(--space-2); min-width: 0; font-variant-numeric: tabular-nums; }
.part-jump-row-mark { display: inline-flex; flex: none; align-items: center; gap: calc(var(--space-1) / 2); color: var(--mark-tone, var(--muted)); }
.part-jump-row-mark > span { color: var(--muted); font-weight: 400; }
.part-jump-row-mark > .part-box-meter { --meter-size: 6px; margin-left: calc(var(--space-1) / 2); }
.part-jump-row-number { margin-left: auto; color: var(--muted); font-weight: 400; white-space: nowrap; }
.part-jump-row > .part-feed-lead.still { background: transparent; border-radius: 0; }

.part-day-grid { display: grid; gap: calc(var(--space-1) / 2); width: 100%; max-width: calc(var(--day-weeks) * 16px); font-family: var(--font); }
.part-day-grid > svg { display: block; width: 100%; height: auto; }
.part-day-grid-months { display: grid; grid-template-columns: repeat(var(--day-weeks), minmax(0, 1fr)); height: 16px; color: var(--muted);
  font-size: var(--type-small); line-height: 16px; }
.part-day-grid-months > span { grid-row: 1; white-space: nowrap; }
.part-day-grid rect { fill: var(--raised); }
.part-day-grid rect[data-step="1"] { fill: color-mix(in oklab, var(--day-tone) 32%, var(--raised)); }
.part-day-grid rect[data-step="2"] { fill: color-mix(in oklab, var(--day-tone) 54%, var(--raised)); }
.part-day-grid rect[data-step="3"] { fill: color-mix(in oklab, var(--day-tone) 77%, var(--raised)); }
.part-day-grid rect[data-step="4"] { fill: var(--day-tone); }

.part-dial-rail { --dial-rail-u: var(--dial-rail-unit, 1.85px);
  --dial-rail-note: min(max(var(--type-small), calc(6.5 * var(--dial-rail-u))), calc(7 * var(--dial-rail-u)));
  --dial-rail-tuck: calc(2 * var(--dial-rail-u)); --dial-rail-mark: calc(2 * var(--dial-rail-u)); --dial-rail-low: 0px;
  --dial-rail-wide: 60; --dial-rail-bar: calc(4 * var(--dial-rail-u));
  display: inline-grid; grid-template-columns: calc(9 * var(--dial-rail-u)) calc(var(--dial-rail-wide) * var(--dial-rail-u));
  column-gap: calc(3 * var(--dial-rail-u)); align-items: center; color: var(--fg);
  font: 600 var(--dial-rail-note)/1 var(--font-figures, var(--font)); font-variant-numeric: tabular-nums; }
.part-dial-rail.is-deep { --dial-rail-low: calc(2.5 * var(--dial-rail-u)); }
.part-dial-rail.is-cells { --dial-rail-wide: 72; --dial-rail-bar: calc(4.8 * var(--dial-rail-u)); }
.part-dial-rail[hidden], .part-dial-rail [hidden] { display: none; }
.part-dial-rail-sign { display: grid; }
.part-dial-rail-sign > svg { width: calc(9 * var(--dial-rail-u)); height: calc(9 * var(--dial-rail-u)); }
.part-dial-rail-line { position: relative; height: calc(var(--dial-rail-note) + 2 * var(--dial-rail-u) + var(--dial-rail-bar) + var(--dial-rail-low)); }
.part-dial-rail-seat { position: absolute; top: 0; display: inline-flex; align-items: center; gap: var(--dial-rail-u); white-space: nowrap; }
.part-dial-rail-seat[data-seat="start"] { left: 0; }
.part-dial-rail-seat[data-seat="middle"] { left: 50%; transform: translateX(-50%); }
.part-dial-rail-seat[data-seat="end"] { right: 0; }
.part-dial-rail-seat > b { font-weight: 600; }
.part-dial-rail-seat > small { color: var(--muted); font-size: inherit; font-weight: 400; }
.part-dial-rail-mark { display: grid; }
.part-dial-rail-mark:empty, .part-dial-rail-seat > small:empty { display: none; }
.part-dial-rail-mark > svg { width: var(--dial-rail-note); height: var(--dial-rail-note); }
.part-dial-rail-graph { position: absolute; left: 0; right: 0; bottom: 0; height: calc(var(--dial-rail-bar) + var(--dial-rail-low));
  isolation: isolate; }
.part-dial-rail-graph > i { position: absolute; left: 0; bottom: var(--dial-rail-low); border-radius: 999px; }
.part-dial-rail-bar { height: calc(4 * var(--dial-rail-u)); box-shadow: inset calc(-0.75 * var(--dial-rail-u)) 0 0 var(--fg); }
.part-dial-rail-past { height: calc(1.5 * var(--dial-rail-u)); box-shadow: inset calc(-0.75 * var(--dial-rail-u)) 0 0 var(--fg); }
.part-dial-rail-graph > .part-dial-rail-below { bottom: 0; height: calc(1.5 * var(--dial-rail-u)); }
.part-dial-rail-graph > .is-over { box-shadow: inset calc(-2 * var(--dial-rail-u)) 0 0 var(--fg); }
.part-dial-rail-graph > .part-dial-rail-held { right: 0; height: calc(0.75 * var(--dial-rail-u)); border-radius: 0;
  background: repeating-linear-gradient(90deg, var(--muted) 0 calc(3 * var(--dial-rail-u)), transparent 0 calc(6 * var(--dial-rail-u))); }
.part-dial-rail.is-cells .part-dial-rail-graph { display: grid; align-content: start; row-gap: var(--dial-rail-u); }
.part-dial-rail-cells, .part-dial-rail-under { display: flex; gap: var(--dial-rail-u); }
.part-dial-rail:not(.is-deep) .part-dial-rail-under { display: none; }
.part-dial-rail.is-bare .part-dial-rail-graph { visibility: hidden; }
.part-dial-rail-cells > i, .part-dial-rail-under > i { flex: none; width: var(--dial-rail-bar); height: var(--dial-rail-bar);
  border-radius: calc(0.9 * var(--dial-rail-u)); background: var(--border); }
.part-dial-rail-under > i { height: calc(1.5 * var(--dial-rail-u)); border-radius: calc(0.5 * var(--dial-rail-u)); background: none; }
:is(.part-dial-rail-cells, .part-dial-rail-under) > i:nth-child(5n):not(:last-child) { margin-right: calc(1.5 * var(--dial-rail-u)); }
:is(.part-dial-rail-cells, .part-dial-rail-under) > .is-on { background: currentColor; }
.part-dial-rail-cells > .is-past { --dial-rail-rim: calc(0.9 * var(--dial-rail-u)); background: none;
  box-shadow: inset 0 0 0 var(--dial-rail-rim) currentColor; }
:is(.part-dial-rail-cells, .part-dial-rail-under) > .is-over { border-radius: 0;
  clip-path: polygon(0 0, 50% 0, 100% 50%, 50% 100%, 0 100%); }

.part-dial-rail-cells > .is-past.is-over { --dial-rail-slant: transparent calc(50% - var(--dial-rail-rim)), currentColor 0 50%, transparent 0;
  background: linear-gradient(to top right, var(--dial-rail-slant)) 100% 0 / 50% 50% no-repeat,
    linear-gradient(to bottom right, var(--dial-rail-slant)) 100% 100% / 50% 50% no-repeat; }

.part-trend-line { display: grid; gap: var(--space-1); font-family: var(--font); }
.part-trend-line .trend-plot { position: relative; height: var(--trend-height, 64px); border-bottom: 1px solid var(--border); }
.part-trend-line svg { display: block; width: 100%; height: 100%; overflow: visible; }
.part-trend-line .trend-path { fill: none; stroke: var(--fg); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.part-trend-line .trend-mark { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.part-trend-line .trend-dot { position: absolute; width: 8px; height: 8px; transform: translate(-50%, -50%); border-radius: 50%; background: var(--fg); }
.part-trend-line .trend-words { position: relative; height: 16px; }
.part-trend-line .trend-words > small { position: absolute; transform: translateX(-50%); max-width: 50%; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; color: var(--muted); font-size: var(--type-small); line-height: 16px; }
.part-trend-line :is(.trend-mark, .trend-words > small).tone-good { color: var(--fact-green); stroke: var(--fact-green); }
.part-trend-line :is(.trend-mark, .trend-words > small).tone-warn { color: var(--fact-orange); stroke: var(--fact-orange); }
.part-trend-line :is(.trend-mark, .trend-words > small).tone-bad { color: var(--fact-red); stroke: var(--fact-red); }
.part-trend-line .trend-dot.tone-good { background: var(--fact-green); }
.part-trend-line .trend-dot.tone-warn { background: var(--fact-orange); }
.part-trend-line .trend-dot.tone-bad { background: var(--fact-red); }

.part-time-strip { position: relative; min-height: 44px; min-width: 0; border-radius: var(--tl-overview-radius); overflow: hidden; background: var(--tl-panel);
  touch-action: pan-y; cursor: grab; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
.part-time-strip > .time-view { background: var(--tl-panel); }

.part-work { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.part-work-said { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); min-width: 0; }
.part-work-line { overflow-wrap: anywhere; }
.part-work-left { color: var(--muted); font-variant-numeric: tabular-nums; }
.part-work-head { display: flex; flex-direction: column; gap: var(--space-1); }
.part-work-count { font-weight: 600; }
.part-work[data-state="stopped"] .part-work-line { color: var(--problem); }
.part-work > .button, .part-work > a { align-self: flex-start; }
.part-world-scene { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; background: var(--picture); touch-action: none;
  user-select: none; -webkit-user-select: none; }
.part-world-scene-canvas, .part-world-scene-near, .part-world-scene-dots { position: absolute; inset: 0; width: 100%; height: 100%; }
.part-world-scene-canvas { transition: opacity .2s ease; }
.part-world-scene-near[hidden] { display: none; }
.part-world-scene-near { pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.part-world-scene-near > div { background: transparent; }
.part-world-scene-near button { display: none; }
.part-world-scene-dots { pointer-events: none; }
.part-world-scene-dot { position: absolute; width: 44px; height: 44px; transform: translate(-50%, -50%); border: 0; padding: 0; background: transparent;
  pointer-events: auto; cursor: pointer; }
.part-world-scene-dot::after { content: ""; display: block; margin: auto; width: var(--world-dot); height: var(--world-dot); border-radius: 50%;
  background: var(--fg); border: 1px solid var(--picture); box-shadow: 0 0 12px color-mix(in oklab, var(--fg) 60%, transparent); }
.part-world-scene-pin { position: absolute; left: 50%; top: calc(50% - 27px); width: 2px; height: 27px; background: var(--fg); pointer-events: none; }
.part-world-scene-pin[hidden], .part-world-scene-chip[hidden] { display: none; }
.part-world-scene-pin::before, .part-world-scene-pin::after { content: ""; position: absolute; left: 50%; border-radius: 50%; background: var(--fg);
  transform: translateX(-50%); }
.part-world-scene-pin::before { width: 8px; height: 8px; top: -4px; }
.part-world-scene-pin::after { width: 5px; height: 5px; bottom: -2px; }
.part-world-scene-chip, .part-world-scene-scale, .part-world-scene-notice { position: absolute; color: var(--fg); font: 600 var(--type-small) var(--font);
  background: var(--mask-opaque); border-radius: 999px; padding: var(--space-1) var(--space-3); pointer-events: none; }
.part-world-scene-chip { top: var(--space-2); left: 50%; transform: translateX(-50%); white-space: nowrap; }
.part-world-scene-scale { right: var(--space-2); bottom: var(--space-2); }
.part-world-scene.is-near .part-world-scene-scale { top: var(--space-2); bottom: auto; }
.part-world-scene-notice { left: var(--space-2); bottom: var(--space-2); }
.part-world-scene-notice:empty { display: none; }

.part-update-ready > .icon, .part-update-ready > .part-feed-lead > .icon { color: var(--live); }
.part-update-ready:is(.sign, .badge) { width: max-content; justify-self: start; }
.part-update-ready.badge { background: var(--raised); }
.part-update-ready.sign > .icon { width: var(--space-4); height: var(--space-4); }
.part-update-under { color: var(--muted); font-size: var(--type-body); line-height: 1.5; }
.part-feed.part-update-ready.row { grid-template-columns: 20px minmax(0, 1fr) auto; }
.part-update-ready.row > .part-actions { margin-top: var(--space-2); }

.part-update-ready.bar { display: flex; box-sizing: border-box; align-items: center; gap: var(--space-2);
  min-height: calc(var(--button-h) + var(--space-3));
  padding: var(--space-1) var(--space-4); border-top: 1px solid var(--border); font-size: var(--type-body); }
.part-update-ready.bar > .icon { flex: none; }
.part-update-ready.bar > .part-update-label { flex: 1; min-width: 0; }
.part-update-ready.bar > .part-button { flex: none; }
.part-frame-match { display: grid; gap: var(--space-2); }
.part-frame-match-sliders { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.part-frame-match-stage { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--picture); touch-action: none; }
.part-frame-match-scene, .part-frame-match-picture { position: absolute; inset: 0; }
.part-frame-match-scene { z-index: 0; }
.part-frame-match-picture { z-index: 1; }
.part-frame-match-scene > *, .part-frame-match-picture > * { width: 100%; height: 100%; }
.part-frame-match-sliders label { display: grid; flex: 1; min-width: 8rem; font: var(--type-small) var(--font); color: var(--muted); }
.part-frame-match-sliders input { width: 100%; min-height: 44px; }
.part-frame-match-readout { margin: 0; color: var(--muted); font: var(--type-small) var(--font); }
.part-ground-marks { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; background: var(--picture); touch-action: manipulation; }
.part-ground-marks img, .part-ground-marks svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.part-ground-marks svg { pointer-events: none; }
.part-ground-marks line { fill: none; stroke-width: 5; }
.part-ground-marks .corridor { stroke: var(--fact-yellow); stroke-dasharray: 14 9; }
.part-ground-marks .sight { stroke: var(--fact-blue); }
.part-ground-marks .range { stroke: var(--fact-green); stroke-width: 14; }
.part-ground-marks circle { stroke: var(--bg); stroke-width: 6; fill: var(--fg); }
.part-ground-marks .camera { fill: var(--fact-blue); }
.part-ground-marks .result { fill: var(--fact-green); }
.part-ground-marks .truth { fill: var(--fact-red); }
.part-finder, .part-finder-stack { display: grid; gap: var(--space-3); }
.part-finder-nav, .part-finder-choices { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.part-finder-note { margin: 0; color: var(--muted); font: var(--type-small) var(--font); }
.part-finder-height { display: grid; color: var(--muted); font: var(--type-small) var(--font); }
.part-finder-height input { min-height: 44px; width: 100%; }
.part-finder input[type="password"] { min-width: 0; flex: 1; font-size: var(--type-heading); }
.part-finder button { touch-action: manipulation; }
.part-finder-nav button[aria-pressed="true"], .part-finder-choices button[aria-pressed="true"] { background: var(--fg); color: var(--bg); }
.part-finder h2 { margin: 0; }
.part-finder-map { height: 330px; overflow: hidden; }
.part-finder-map > * { width: 100%; height: 100%; }
.part-finder-thumbs { display: flex; gap: var(--space-2); overflow-x: auto; }
.part-finder-thumbs button { display: grid;
    gap: var(--space-1);
    min-width: 110px;
    padding: var(--space-1);
    background: var(--card);
    color: var(--fg);
    border: 1px solid var(--line);
    }
.part-finder-thumbs button[aria-pressed="true"] { border: 2px solid var(--fact-blue); }
.part-finder-thumbs img { width: 100%; max-width: 130px; aspect-ratio: 16 / 9; object-fit: cover; }

.part-body-bench { display: grid; gap: var(--space-3); }
.part-body-bench-controls { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.part-body-bench-controls > .part-file-drop { flex: 1 1 260px; }
.part-body-bench-stage { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-3); align-items: start; }
.part-body-bench-eye { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--radius); background: var(--picture); }
.part-body-bench-side { display: grid; gap: var(--space-2); justify-items: center; min-width: 96px; }
.part-body-bench-figure { display: grid; gap: var(--space-1); justify-items: center; color: var(--fg); font-size: var(--type-small); text-align: center; }
.part-body-bench-number { color: var(--muted); font-variant-numeric: tabular-nums; }
.part-body-bench-foot { margin: 0; color: var(--muted); font-size: var(--type-small); }

@media (max-width: 520px) {
  .part-body-bench-stage { grid-template-columns: 1fr; }
  .part-body-bench-side { grid-template-columns: auto 1fr auto; justify-items: start; align-items: center; }
}

:root {
  --transport-gap: var(--space-1); --transport-pad: var(--space-2); --transport-press: 32px; --transport-round: var(--control-h);
  --transport-cell: 48px; --transport-cell-icon: 16px; --transport-badge: 18px; --transport-badge-top: -6px; --transport-badge-right: -6px;
  --transport-line-inset: var(--space-2); --transport-tool-gap: var(--menu-gap); --transport-tool-text: 11.5px; --transport-column: 54px;
}
@media (max-width: 899px) {
  :root { --transport-press: 44px; --transport-round: 40px; --transport-cell: 44px; --transport-badge-top: 4px; --transport-badge-right: 0px; }
}
.part-sun-arc { width: 100%; min-width: 0; color: var(--fg); background: var(--card); border-radius: var(--radius); overflow: hidden; }
.part-sun-arc > svg { display: block; width: 100%; height: auto; }
.part-sun-arc text { fill: var(--muted); font: 400 var(--type-small) var(--font); }
.part-sun-arc .sun-arc-title { fill: var(--fg); font-weight: 600; }
.part-sun-arc .sun-arc-line { fill: none; stroke: var(--control); stroke-width: 1; }
.part-sun-arc .sun-arc-course { fill: none; stroke: var(--fact-yellow); stroke-width: 1; stroke-dasharray: 2 5; }
.part-sun-arc .sun-arc-moon { fill: var(--picture); stroke: var(--muted); stroke-width: 1; }
.part-sun-arc .sun-arc-lit { fill: var(--fg); stroke: none; }
.part-sun-arc .sun-arc-cloud-back { fill: var(--card); stroke: none; }

.part-source-list { display: flex; flex-direction: column; color: var(--muted); }
.part-source-list-row { display: flex; gap: var(--space-3); padding-block: var(--space-2); }
.part-source-list-row + .part-source-list-row { border-top: 1px solid var(--border); }
.part-source-list-row > .icon { flex: none; }
.part-source-list-words { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.part-source-list-label, .part-source-list-detail { font: 400 var(--type-small) var(--font); }
.part-source-list-credit { font: 400 var(--type-body) var(--font); color: var(--fg); text-decoration: none; overflow-wrap: anywhere; }
a.part-source-list-credit { text-decoration: underline; }
.part-source-list-detail.is-old { color: var(--marker); }
