/* twin hi-fi components — Figma-aligned (ux.md §2.6–2.10, §5)
   Depends on tokens in hifi-common.css */

/* ── Avatars ────────────────────────────────────────────────────── */
.hifi-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #eee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--pd-0);
}
.hifi-avatar--sm { width: 40px; height: 40px; font-size: 14px; }
.hifi-avatar--lg { width: 64px; height: 64px; font-size: 20px; }
.hifi-avatar--xl {
  width: 96px;
  height: 96px;
  font-size: 28px;
  border: 3px solid var(--pbg-90);
  box-shadow: 0 0 0 2px var(--pb-30);
}
.hifi-avatar--blue {
  background: #eee;
  color: var(--pd-0);
}

/* Discover / list: avatar + single top gamification badge (compact preview) */
.hifi-m5__avatar-wrap {
  position: relative;
  flex-shrink: 0;
}
.hifi-m5__badge-pin {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--pbg-90);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  pointer-events: none;
}
.hifi-m5__badge-pin .hifi-icon {
  width: 11px;
  height: 11px;
  font-size: 11px;
}
.hifi-m5__badge-pin--public {
  background: var(--y-40);
  color: var(--pd-0);
}
.hifi-m5__badge-pin--private {
  background: var(--pd-50);
  color: var(--pbg-90);
}

/* ── Cards (§2.10) ───────────────────────────────────────────────── */
.hifi-card {
  background: var(--pbg-90);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-1);
  padding: 16px 18px;
  margin-bottom: 12px;
  border: 1px solid var(--pbg-40);
}
.hifi-card--accent-blue { border-top: 4px solid var(--blueberry); }
.hifi-card--accent-gold { border-top: 4px solid var(--marigold); }
.hifi-card--alert {
  border: 2px solid var(--marigold);
  box-shadow: 0 4px 20px color-mix(in srgb, var(--y-30) 12%, transparent);
}

.hifi-card__title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 600;
  color: var(--deep-ink);
}

.hifi-card__meta {
  margin: 0;
  font-size: 13px;
  color: var(--police-blue);
  line-height: 1.45;
}

/* ── List rows ──────────────────────────────────────────────────── */
.hifi-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: var(--pbg-90);
  border-radius: var(--radius-list-row);
  box-shadow: var(--shadow-1);
  border: 1px solid var(--pbg-40);
  margin-bottom: 8px;
}

.hifi-row__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-input);
  background: var(--mix-y-30-15);
  color: var(--marigold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
}
.hifi-row__icon--blue {
  background: color-mix(in srgb, var(--pd-30) 12%, transparent);
  color: var(--blueberry);
}

.hifi-row__body { flex: 1; min-width: 0; }
.hifi-row__title { font-size: 15px; font-weight: 600; color: var(--deep-ink); }
.hifi-row__sub { font-size: 13px; color: var(--police-blue); margin-top: 2px; }

button.hifi-row {
  -webkit-appearance: none;
  appearance: none;
}

/* ── Badge / pill ───────────────────────────────────────────────── */
.hifi-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--sb-80);
  color: var(--ink);
  display: inline-block;
}

/* ── Power 5 widget (§5.2 Magic 5) ──────────────────────────────── */
.hifi-m5 {
  background: var(--pbg-90);
  border-radius: var(--radius-card);
  border: 1px solid var(--pbg-40);
  box-shadow: var(--shadow-1);
  overflow: hidden;
}

.hifi-m5__search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1.5px solid var(--input-border);
}
.hifi-m5__search input {
  flex: 1;
  border: none;
  background: none;
  font-size: 15px;
  font-family: var(--font-sans);
  color: var(--deep-ink);
  outline: none;
}
.hifi-m5__search input::placeholder { color: var(--placeholder); }

.hifi-m5__label {
  padding: 8px 16px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--police-blue);
}

.hifi-m5__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid var(--pbg-40);
  transition: background 0.15s;
}
.hifi-m5__item:last-child { border-bottom: none; }
.hifi-m5__item:hover { background: var(--pb-90); }

.hifi-m5__body { flex: 1; min-width: 0; }
.hifi-m5__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 2px;
}

.hifi-m5__name { font-size: 15px; font-weight: 600; color: var(--deep-ink); }
.hifi-m5__match { font-size: 13px; font-weight: 700; color: var(--primary); flex-shrink: 0; }
.hifi-m5__role { font-size: 12px; color: var(--police-blue); margin-bottom: 6px; }

.hifi-m5__tags { display: flex; flex-wrap: wrap; gap: 4px; }
.hifi-m5__tag {
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--tag-bg);
  color: var(--pb-0);
  font-weight: 500;
}

.hifi-m5__chev { color: var(--pd-50); font-size: 18px; line-height: 24px; flex-shrink: 0; }

/* ── Pills / chips (§5.1 Status) ────────────────────────────────── */
.hifi-pills { display: flex; flex-wrap: wrap; gap: 8px; }

.hifi-pill {
  padding: 7px 14px;
  border-radius: var(--radius-chip);
  font-size: 14px;
  font-weight: 500;
  border: none;
  background: var(--mix-pd-40-08);
  color: var(--police-blue);
  font-family: var(--font-sans);
  cursor: default;
}
.hifi-pill--active {
  background: var(--primary-surface);
  color: var(--deep-ink);
}

/* ── Progress ───────────────────────────────────────────────────── */
.hifi-progress {
  height: 8px;
  border-radius: 999px;
  background: var(--mix-pd-40-12);
  overflow: hidden;
  max-width: 100%;
}
.hifi-progress__fill {
  height: 100%;
  border-radius: 999px;
  background: var(--blueberry);
}
.hifi-progress--gold .hifi-progress__fill { background: var(--marigold); }
.hifi-progress--md { height: 10px; }

/* Home mentee · dashboard snapshot + mission rows */
.hifi-home-snap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.hifi-home-snap__tile {
  text-align: center;
  padding: 12px 8px;
  border-radius: var(--radius-card);
  border: 1px solid var(--pbg-40);
  background: var(--pbg-90);
}
.hifi-home-snap__val {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--primary);
  line-height: 1.1;
}
.hifi-home-snap__lbl {
  margin-top: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--police-blue);
}
.hifi-mission-item {
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--pbg-40);
}
.hifi-mission-item:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.hifi-mission-item__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.hifi-mission-item__pct {
  flex-shrink: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--primary);
  font-variant-numeric: tabular-nums;
}
.hifi-home-overall {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1.5px solid var(--input-border);
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.hifi-home-overall__ring {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: conic-gradient(var(--blueberry) 0% 45%, var(--pd-90) 45% 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.hifi-home-overall__ring span {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--pbg-90);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  color: var(--deep-ink);
}
.hifi-home-overall__body {
  flex: 1;
  min-width: 0;
}
.hifi-home-overall__title {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  color: var(--deep-ink);
}

.hifi-ring-wrap { display: flex; align-items: center; gap: 16px; }

.hifi-ring {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: conic-gradient(var(--blueberry) 0% 68%, var(--pd-90) 68% 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.hifi-ring--gold {
  background: conic-gradient(var(--marigold) 0% 55%, var(--pd-90) 55% 100%);
}
.hifi-ring__inner {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--deep-ink);
}

/* ── Stat cards (§5.2) ──────────────────────────────────────────── */
.hifi-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }

.hifi-stat {
  padding: 14px;
  border-radius: 16px;
  background: var(--pbg-90);
  border: 1px solid var(--pbg-40);
  box-shadow: var(--shadow-1);
  text-align: center;
}
.hifi-stat__num { font-size: 22px; font-weight: 700; color: var(--deep-ink); }
.hifi-stat__num--gold { color: var(--marigold); }
.hifi-stat__num--blue { color: var(--blueberry); }
.hifi-stat__label { font-size: 11px; font-weight: 500; color: var(--police-blue); margin-top: 3px; }

/* ── Form inputs (§2.9) ─────────────────────────────────────────── */
.hifi-field { margin-bottom: 16px; }

.hifi-label {
  display: block;
  font-size: 16px;
  font-weight: 500;
  color: var(--deep-ink);
  margin-bottom: 8px;
}

.hifi-input,
.hifi-textarea,
.hifi-select {
  width: 100%;
  height: 56px;
  padding: 12px 16px;
  border-radius: var(--radius-input);
  border: 1.5px solid var(--input-border);
  background: var(--white);
  font-size: 16px;
  font-family: var(--font-sans);
  color: var(--text-primary);
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.hifi-input::placeholder,
.hifi-textarea::placeholder { color: var(--placeholder); }

.hifi-input:hover,
.hifi-textarea:hover,
.hifi-select:hover { border-color: var(--disabled-text); }

.hifi-input:focus,
.hifi-textarea:focus,
.hifi-select:focus {
  outline: none;
  border-color: var(--primary-focus);
  background: var(--primary-surface);
  box-shadow: 0 0 0 2px var(--mix-pb-10-15);
}

.hifi-textarea {
  min-height: 100px;
  height: auto;
  resize: vertical;
}

.hifi-select { cursor: pointer; }

.hifi-hint {
  font-size: 13px;
  color: var(--police-blue);
  margin-top: 4px;
}

/* ── Input field states (success / warning / error) ─────────────── */
.hifi-input.hifi-input--success,
.hifi-textarea.hifi-input--success,
.hifi-select.hifi-input--success {
  border-color: var(--g-30);
  background: var(--success-bg);
  color: var(--g-0);
}
.hifi-input.hifi-input--success:focus,
.hifi-textarea.hifi-input--success:focus,
.hifi-select.hifi-input--success:focus {
  border-color: var(--success);
  background: var(--success-bg);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--g-0) 22%, transparent);
}

.hifi-input.hifi-input--warning,
.hifi-textarea.hifi-input--warning,
.hifi-select.hifi-input--warning {
  border-color: var(--y-30);
  background: var(--warning-bg);
  color: var(--pd-20);
}
.hifi-input.hifi-input--warning:focus,
.hifi-textarea.hifi-input--warning:focus,
.hifi-select.hifi-input--warning:focus {
  border-color: var(--warning);
  background: var(--warning-bg);
  box-shadow: 0 0 0 2px var(--mix-y-30-15);
}

.hifi-input.hifi-input--error,
.hifi-textarea.hifi-input--error,
.hifi-select.hifi-input--error {
  border-color: var(--r-30);
  background: var(--error-bg);
  color: var(--r-0);
}
.hifi-input.hifi-input--error:focus,
.hifi-textarea.hifi-input--error:focus,
.hifi-select.hifi-input--error:focus {
  border-color: var(--error);
  background: var(--error-bg);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--r-0) 22%, transparent);
}

.hifi-input.hifi-input--disabled,
.hifi-textarea.hifi-input--disabled,
.hifi-select.hifi-input--disabled,
.hifi-input:disabled,
.hifi-textarea:disabled,
.hifi-select:disabled {
  border-color: var(--disabled-border);
  background: var(--disabled-bg);
  color: var(--disabled-text);
  cursor: not-allowed;
  box-shadow: none;
}
.hifi-input.hifi-input--disabled:focus,
.hifi-textarea.hifi-input--disabled:focus,
.hifi-select.hifi-input--disabled:focus {
  border-color: var(--disabled-border);
  background: var(--disabled-bg);
  box-shadow: none;
}

/* ── Pill search field ──────────────────────────────────────────── */
.hifi-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 4px 4px 4px 14px;
  border-radius: 9999px;
  background: var(--pbg-50);
  border: 1.5px solid transparent;
  box-sizing: border-box;
  max-width: 100%;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.hifi-search:focus-within {
  border-color: var(--primary-focus);
  box-shadow: 0 0 0 2px var(--mix-pb-10-15);
}
.hifi-search__icon {
  font-family: "Material Symbols Outlined";
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  font-size: 22px;
  line-height: 1;
  width: 1.1em;
  color: var(--pd-50);
  flex-shrink: 0;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
}
.hifi-search__input {
  flex: 1;
  min-width: 0;
  height: 40px;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--text-primary);
  outline: none;
}
.hifi-search .hifi-input.hifi-search__input {
  width: auto;
  height: 40px;
  min-height: 0;
  padding: 0 8px 0 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.hifi-search .hifi-input.hifi-search__input:focus {
  border: none;
  box-shadow: none;
  background: transparent;
  outline: none;
}
.hifi-search__input::placeholder {
  color: var(--placeholder);
}
.hifi-search__action {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  border: none;
  background: var(--primary);
  color: var(--white);
  transition: background-color 0.15s ease;
}
.hifi-search__action:hover {
  background: var(--primary-hover);
}
.hifi-search__action:focus-visible {
  outline: 2px solid var(--primary-focus);
  outline-offset: 2px;
}
.hifi-search__action--circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  padding: 0;
}
.hifi-search__action--pill {
  height: 40px;
  padding: 0 18px;
  border-radius: 9999px;
}
.hifi-search__action .twin-btn__icon {
  color: inherit;
}

/* ── Horizontal labeled stepper (Figma kit) ───────────────────────
   Track fill width: min(activeIndex - 1, n - 2) / (n - 1) × 100% so the
   final segment stays neutral while the last step is current. */
.hifi-stepper {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}
.hifi-stepper__labels {
  display: flex;
  margin-bottom: 10px;
}
.hifi-stepper__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}
.hifi-stepper__label {
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--pd-60);
  text-align: center;
  padding: 0 4px;
}
.hifi-stepper__col--current .hifi-stepper__label {
  font-weight: 700;
  color: var(--deep-ink);
}
.hifi-stepper__col--complete:not(.hifi-stepper__col--current) .hifi-stepper__label {
  font-weight: 500;
  color: var(--deep-ink);
}
.hifi-stepper__rail {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 calc(14px / 2);
  box-sizing: border-box;
}
.hifi-stepper__track {
  position: absolute;
  left: calc(14px / 2);
  right: calc(14px / 2);
  top: 50%;
  height: 2px;
  margin-top: -1px;
  background: var(--pd-80);
  border-radius: 1px;
  pointer-events: none;
}
.hifi-stepper__track-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--primary);
  border-radius: inherit;
  transition: width 0.2s ease;
}
.hifi-stepper__dots {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  z-index: 1;
}
.hifi-stepper__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--pd-80);
  background: var(--white);
  box-sizing: border-box;
}
.hifi-stepper__dot--current {
  border-color: var(--primary);
  background: transparent;
}
.hifi-stepper__dot--complete {
  border-color: var(--primary);
  background: var(--primary);
}

/* ── Dropdown list (typeahead / select menu) ───────────────────── */
.hifi-dropdown {
  border-radius: var(--radius-input);
  background: var(--white);
  border: 1px solid var(--input-border);
  box-shadow: var(--shadow-2);
  overflow: hidden;
  max-width: 100%;
}
.hifi-dropdown__item {
  display: block;
  width: 100%;
  padding: 12px 16px;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 22px;
  color: var(--deep-ink);
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}
.hifi-dropdown__item:hover {
  background: var(--pbg-40);
}
.hifi-dropdown__item--selected {
  color: var(--primary);
  font-weight: 600;
}
.hifi-dropdown__item--selected:hover {
  background: var(--pbg-40);
  color: var(--primary);
}

/* ── Tag field (multi-value input) ─────────────────────────────── */
.hifi-tag-field {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  padding: 8px 12px;
  border-radius: var(--radius-input);
  border: 1.5px solid var(--input-border);
  background: var(--white);
  box-sizing: border-box;
  max-width: 100%;
}
.hifi-tag-field:focus-within {
  border-color: var(--primary-focus);
  box-shadow: 0 0 0 2px var(--mix-pb-10-15);
}
.hifi-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px 4px 12px;
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--font-sans);
  border: 1.5px solid var(--pd-80);
  color: var(--police-blue);
  background: var(--pbg-90);
}
.hifi-tag-chip--selected {
  border-color: var(--primary);
  color: var(--primary);
}
.hifi-tag-chip__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-family: "Material Symbols Outlined";
  font-size: 16px;
  line-height: 1;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
}
.hifi-tag-field__input {
  flex: 1;
  min-width: 120px;
  height: 36px;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--text-primary);
  outline: none;
}
.hifi-tag-field__input::placeholder {
  color: var(--placeholder);
}

/* ── Step indicators (wizard) ───────────────────────────────────── */
.hifi-steps { display: flex; gap: 6px; margin-bottom: 20px; }

.hifi-step {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: var(--input-border);
}
.hifi-step--done { background: var(--blueberry); }
.hifi-step--current { background: var(--primary); }

/* ── Secure Room widget (§5.2) ──────────────────────────────────── */
.hifi-room {
  background: var(--pbg-90);
  border-radius: var(--radius-card);
  border: 1.5px solid var(--input-border);
  box-shadow: none;
  overflow: hidden;
}
.hifi-room__head {
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--deep-ink);
  border-bottom: 1.5px solid var(--input-border);
}

.hifi-room__tabs { display: flex; border-bottom: 1.5px solid var(--input-border); }
.hifi-room__tab {
  flex: 1;
  padding: 10px 8px;
  font-size: 13px;
  font-weight: 500;
  font-family: var(--font-sans);
  border: none;
  background: none;
  color: var(--police-blue);
  border-bottom: 2px solid transparent;
  margin-bottom: -1.5px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
.hifi-room__tab--active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

.hifi-room__tabs--compact .hifi-room__tab {
  font-size: 12px;
  padding: 10px 4px;
}

.hifi-room__tabs--scroll {
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.hifi-room__tabs--scroll::-webkit-scrollbar {
  display: none;
}
.hifi-room__tabs--scroll .hifi-room__tab {
  flex: 0 0 auto;
  font-size: 11px;
  padding: 10px 10px;
  white-space: nowrap;
}

.hifi-room__panel { padding: 16px; min-height: 220px; }

/* Room calendar — upcoming sessions & proposals */
.hifi-room-cal__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: -4px 0 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--deep-ink);
}
.hifi-room-cal__nav button {
  border: none;
  background: var(--mix-pd-40-08);
  color: var(--police-blue);
  width: 32px;
  height: 32px;
  border-radius: var(--radius-input);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
}
.hifi-room-cal__nav span {
  flex: 1;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--police-blue);
}
.hifi-room-cal__section {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--police-blue);
  margin: 0 0 8px;
}
.hifi-cal-event {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--pbg-40);
  align-items: flex-start;
}
.hifi-cal-event:last-of-type {
  border-bottom: none;
}
.hifi-cal-event__when {
  flex-shrink: 0;
  width: 48px;
  text-align: center;
  padding-top: 2px;
}
.hifi-cal-event__day {
  font-size: 17px;
  font-weight: 700;
  color: var(--deep-ink);
  line-height: 1.1;
}
.hifi-cal-event__month {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--police-blue);
}
.hifi-cal-event__time {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 600;
  color: var(--primary);
}
.hifi-cal-event__body {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  color: var(--deep-ink);
  line-height: 1.4;
}
.hifi-cal-event__body strong {
  display: block;
  font-weight: 600;
  margin-bottom: 2px;
}
.hifi-cal-event__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
.hifi-cal-event__pill {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 2px 8px;
  border-radius: 999px;
}
.hifi-cal-event__pill--confirmed {
  background: var(--g-90);
  color: var(--g-0);
}
.hifi-cal-event__pill--pending {
  background: var(--y-80);
  color: var(--y-0);
}
.hifi-cal-event__pill--video {
  background: var(--primary-surface);
  color: var(--primary);
  text-transform: none;
  font-weight: 600;
  letter-spacing: 0;
  font-size: 11px;
}
.hifi-room-cal__propose {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--input-border);
}
.hifi-room-cal__propose p {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--police-blue);
  line-height: 1.45;
}

/* Active room picker (mentee: several concurrent rooms) */
.hifi-room-list {
  margin-bottom: 12px;
  border-radius: var(--radius-card);
  border: 1.5px solid var(--input-border);
  background: var(--pbg-90);
  box-shadow: none;
  overflow: hidden;
}
.hifi-room-list__header {
  border-bottom: 1px solid var(--input-border);
}
.hifi-room-list__header .hifi-room-list__title {
  border-bottom: none;
  padding-bottom: 4px;
}
.hifi-room-list__title {
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--police-blue);
  border-bottom: 1px solid var(--input-border);
}
.hifi-room-list__hint {
  margin: 0;
  padding: 0 12px 10px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--police-blue);
}
.hifi-room-list__ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hifi-room-list__btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--deep-ink);
  border: none;
  border-bottom: 1px solid var(--pbg-40);
  background: transparent;
  cursor: pointer;
  transition: background 0.12s;
}
.hifi-room-list__ul li:last-child .hifi-room-list__btn {
  border-bottom: none;
}
.hifi-room-list__btn:hover {
  background: var(--mix-pd-40-06);
}
.hifi-room-list__btn--active {
  background: var(--primary-surface);
  box-shadow: inset 3px 0 0 0 var(--primary);
}
.hifi-room-list__btn .hifi-room-list__meta {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: var(--police-blue);
  margin-top: 2px;
}
.hifi-room-list__pill {
  display: inline-block;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--success);
  vertical-align: middle;
}

/* Messages (flat, async-first — not chat bubbles per §4.2) */
.hifi-msg { display: flex; gap: 8px; margin-bottom: 12px; }
.hifi-msg--me { flex-direction: row-reverse; }

.hifi-msg__av {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eee;
  flex-shrink: 0;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--pd-0);
}

.hifi-msg__bubble {
  max-width: 78%;
  padding: 8px 12px;
  border-radius: var(--radius-input);
  font-size: 14px;
  line-height: 1.45;
  color: var(--deep-ink);
}
.hifi-msg__bubble--them { background: var(--mix-pd-40-08); }
.hifi-msg__bubble--me { background: var(--primary-surface); }

.hifi-msg__who {
  font-size: 11px;
  font-weight: 600;
  color: var(--police-blue);
  margin-bottom: 2px;
}

.hifi-room__input {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

/* Legacy row: separate input + button (prefer --integrated for new work) */
.hifi-room__input:not(.hifi-room__input--integrated) input {
  flex: 1;
  padding: 10px 14px;
  border-radius: var(--radius-input);
  border: 1.5px solid var(--input-border);
  font-family: var(--font-sans);
  font-size: 14px;
}
.hifi-room__input:not(.hifi-room__input--integrated) input:focus {
  outline: none;
  border-color: var(--primary-focus);
}

/* Integrated composer: single shell (search-bar style) + circular send */
.hifi-room__input--integrated {
  gap: 0;
  margin-top: 12px;
}

.hifi-room__input-shell {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 8px 8px 12px;
  border-radius: 12px;
  border: 1px solid var(--input-border);
  background: var(--pbg-40);
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hifi-room__input-shell:focus-within {
  border-color: var(--primary-focus);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent);
}

.hifi-room__input-icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--police-blue);
  font-family: "Material Symbols Outlined";
  font-size: 20px;
  line-height: 1;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}

.hifi-room__input-field {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 6px 0;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--deep-ink);
  outline: none;
}

.hifi-room__input-field::placeholder {
  color: var(--placeholder);
}

.hifi-room__input-send {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: var(--primary);
  color: #fff;
  font-family: "Material Symbols Outlined";
  font-size: 22px;
  line-height: 1;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  transition: opacity 0.12s ease, transform 0.12s ease;
}

.hifi-room__input-send:hover {
  opacity: 0.92;
}

.hifi-room__input-send:active {
  opacity: 0.88;
  transform: scale(0.96);
}

.hifi-room__input-send:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--white), 0 0 0 4px var(--primary-focus-ring);
}

/* ── Milestones ─────────────────────────────────────────────────── */
.hifi-mile {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--pbg-40);
  font-size: 14px;
  color: var(--deep-ink);
}
.hifi-mile:last-child { border-bottom: none; }

.hifi-mile__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-top: 6px;
  background: var(--input-border);
  flex-shrink: 0;
}
.hifi-mile--done .hifi-mile__dot { background: var(--success); }
.hifi-mile--current .hifi-mile__dot { background: var(--primary); }

/* Homework / to-do inside secure room */
.hifi-homework {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--pbg-40);
  font-size: 14px;
  color: var(--deep-ink);
}
.hifi-homework:last-child { border-bottom: none; }
.hifi-homework__check {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1px solid var(--pd-80);
  flex-shrink: 0;
  margin-top: 2px;
  box-sizing: border-box;
  background: var(--white);
}
.hifi-homework--done .hifi-homework__check {
  border-color: var(--primary);
  background-color: var(--primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 12.5l3.5 3.5L18.5 8' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px 14px;
  background-position: center;
  background-repeat: no-repeat;
}
.hifi-homework--done strong {
  text-decoration: line-through;
  color: var(--police-blue);
  font-weight: 600;
}

/* ── Link vault ─────────────────────────────────────────────────── */
.hifi-file {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--pbg-40);
  font-size: 14px;
  color: var(--deep-ink);
}
.hifi-file__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-swatch);
  background: var(--mix-y-30-15);
  color: var(--marigold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}

/* ── Bottom sheet / overlay (§5.3) ──────────────────────────────── */
.hifi-overlay {
  position: fixed;
  inset: 0;
  background: var(--mix-pd-0-45);
  z-index: 100;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.hifi-sheet {
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  overflow-y: auto;
  background: var(--white);
  border-radius: 20px 20px 0 0;
  padding: 20px 20px 2rem;
  box-shadow: 0 -8px 32px var(--mix-pd-40-10);
}
.hifi-sheet__grab {
  width: 40px;
  height: 4px;
  border-radius: 999px;
  background: var(--input-border);
  margin: 0 auto 16px;
}
.hifi-sheet__close {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 2;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  border: none;
  background: var(--pbg-90);
  color: var(--deep-ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 1px 3px var(--mix-pd-0-15);
}
.hifi-sheet__close:hover {
  background: var(--pbg-90);
  color: var(--primary);
}
.hifi-sheet__close--end {
  right: 16px;
  left: auto;
}
.hifi-sheet__close--start {
  left: 16px;
  right: auto;
}

/* Bottom sheet: safe area + anchored chrome */
.hifi-sheet--drawer {
  position: relative;
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
}

.hifi-sheet__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}
.hifi-sheet__actions .twin-btn {
  width: 100%;
  justify-content: center;
}

.hifi-sheet-block {
  padding-top: 16px;
  margin-top: 4px;
  border-top: 1px solid var(--input-border);
}

/* In-device drawer over dimmed list (Discover → mentor profile) — same phone frame as other mocks */
.hifi-main--indevice-drawer {
  padding: 0;
  padding-bottom: 5.5rem;
  display: flex;
  flex-direction: column;
}
.hifi-indevice-drawer {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.hifi-indevice-drawer__backdrop {
  flex: 1 1 auto;
  min-height: 56px;
  padding: 10px 16px 8px;
  background: var(--pbg-30);
  border-bottom: 1px solid var(--input-border);
}
.hifi-indevice-drawer__backdrop-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--police-blue);
  margin: 0 0 8px;
  letter-spacing: 0.02em;
}
.hifi-indevice-drawer__backdrop-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--pbg-40);
  opacity: 0.72;
}
.hifi-indevice-drawer__backdrop-row:last-child {
  border-bottom: none;
}
.hifi-indevice-drawer__backdrop-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--pd-80);
  flex-shrink: 0;
}
.hifi-indevice-drawer__backdrop-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.hifi-indevice-drawer__backdrop-lines span {
  height: 8px;
  border-radius: 4px;
  background: var(--pd-70);
}
.hifi-indevice-drawer__backdrop-lines span:first-child {
  width: 56%;
}
.hifi-indevice-drawer__backdrop-lines span:last-child {
  width: 36%;
}
.hifi-indevice-drawer__panel {
  flex: 0 1 auto;
  max-height: min(520px, 68%);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
  background: var(--white);
  border-radius: 1.25rem 1.25rem 0 0;
  border: 1.5px solid var(--input-border);
  border-bottom: none;
  padding: 10px 16px 12px;
  padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -8px 28px var(--mix-pd-40-08);
}
.hifi-indevice-drawer__panel::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.hifi-indevice-drawer__grab {
  width: 40px;
  height: 4px;
  border-radius: 999px;
  background: var(--input-border);
  margin: 0 auto 12px;
}

/* ── SLA chip (§7.4) ────────────────────────────────────────────── */
.hifi-sla {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--warning-bg);
  color: var(--citrine-brown);
}

/* ── Table (admin) ──────────────────────────────────────────────── */
.hifi-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.hifi-table th,
.hifi-table td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--input-border);
}
.hifi-table th {
  font-weight: 600;
  color: var(--police-blue);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.hifi-table tr:hover td { background: var(--mix-pd-40-04); }

/* ── OTP boxes (§4.1 Phone Auth) ─────────────────────────────────── */
.hifi-otp { display: flex; gap: 8px; justify-content: center; margin: 24px 0; }

.hifi-otp__box {
  width: 44px;
  height: 56px;
  border-radius: var(--radius-input);
  border: 1.5px solid var(--input-border);
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  font-family: var(--font-sans);
  color: var(--deep-ink);
  background: var(--white);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.hifi-otp__box:focus {
  outline: none;
  border-color: var(--primary-focus);
  box-shadow: 0 0 0 2px var(--mix-pb-10-15);
}

/* ── UI kit: profile / mentor / carousel cards & lesson list ─────── */

.hifi-card--profile {
  border-radius: var(--radius-card-lg);
  background: var(--pbg-90);
  border: 1px solid var(--pbg-40);
  box-shadow: var(--shadow-1);
  padding: 28px 22px 24px;
  text-align: center;
  margin-bottom: 16px;
}

.hifi-card--profile .hifi-avatar--xl {
  margin: 0 auto 16px;
}

.hifi-card--profile__avatar-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}
.hifi-card--profile__avatar-wrap .hifi-m5__avatar-wrap {
  display: inline-block;
}
.hifi-card--profile__avatar-wrap .hifi-avatar--xl {
  margin: 0;
}
.hifi-card--profile__avatar-wrap .hifi-m5__badge-pin {
  width: 28px;
  height: 28px;
  bottom: 2px;
  right: 0;
  border-width: 3px;
}
.hifi-card--profile__avatar-wrap .hifi-m5__badge-pin .hifi-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.hifi-card--profile__name {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
  color: var(--pd-0);
}

.hifi-card--profile__meta {
  margin: 0 0 20px;
  font-size: 13px;
  color: var(--pd-50);
  line-height: 1.5;
}

.hifi-card--profile__about-title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--pd-0);
  text-align: left;
}

.hifi-card--profile__about {
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--pd-50);
  text-align: left;
}

.hifi-card--mentor {
  position: relative;
  border-radius: var(--radius-card-lg);
  background: var(--pbg-90);
  border: 1px solid var(--pbg-40);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  margin-bottom: 16px;
  padding-bottom: 20px;
}

.hifi-card--mentor__hero {
  height: 96px;
  background: var(--gradient-card-hero);
  position: relative;
}

.hifi-card--mentor__fav {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--mix-pbg-90-75);
  color: var(--pb-10);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.hifi-card--mentor__avatar-wrap {
  display: flex;
  justify-content: center;
  margin-top: -48px;
  position: relative;
  z-index: 1;
}

/* XL avatar + single gamification badge (drawer / profile) */
.hifi-card--mentor__avatar-wrap .hifi-m5__avatar-wrap {
  display: inline-block;
}
.hifi-card--mentor__avatar-wrap .hifi-m5__badge-pin {
  width: 28px;
  height: 28px;
  bottom: 2px;
  right: 0;
  border-width: 3px;
}
.hifi-card--mentor__avatar-wrap .hifi-m5__badge-pin .hifi-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.hifi-card--mentor__body {
  padding: 12px 20px 0;
  text-align: center;
}

.hifi-card--mentor__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 0 10px;
}
.hifi-card--mentor__name {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 700;
  color: var(--pd-0);
}
.hifi-card--mentor__name-row .hifi-card--mentor__name {
  margin: 0;
}
.hifi-card--mentor__match {
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--primary-surface);
}

.hifi-card--mentor__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-bottom: 12px;
}

.hifi-card--mentor__tag {
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--tag-bg);
  color: var(--pb-0);
}

.hifi-card--mentor__details {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
  font-size: 13px;
  color: var(--pd-50);
  margin-bottom: 16px;
}

.hifi-card--mentor__detail-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.hifi-card--mentor__bio {
  margin: 0 0 4px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--pd-50);
  text-align: center;
}

.hifi-card--carousel {
  border-radius: var(--radius-card-lg);
  background: var(--pbg-90);
  border: 1px solid var(--pbg-40);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  margin-bottom: 16px;
}

.hifi-card--carousel__hero {
  height: 140px;
  background: var(--gradient-card-hero);
}

.hifi-card--carousel__body {
  padding: 16px 18px 18px;
}

.hifi-card--carousel__title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--pd-0);
}

.hifi-card--carousel__desc {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--pd-50);
}

.hifi-card--carousel__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12px;
  color: var(--pd-50);
  margin-bottom: 14px;
}

.hifi-card--carousel__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Lesson / curriculum list row */
.hifi-list-lesson {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 14px;
  padding: 14px 16px;
  background: var(--pbg-90);
  border-radius: var(--radius-list-row);
  border: 1px solid var(--pbg-40);
  margin-bottom: 8px;
  box-shadow: var(--shadow-1);
}

a.hifi-list-lesson {
  text-decoration: none;
  color: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

a.hifi-list-lesson:hover {
  background: var(--pb-90);
  border-color: var(--pb-80);
}

.hifi-list-lesson__index {
  font-size: 22px;
  font-weight: 700;
  color: var(--pb-10);
  line-height: 1;
}

.hifi-list-lesson__title {
  font-size: 15px;
  font-weight: 600;
  color: var(--pd-0);
  margin: 0 0 4px;
}

.hifi-list-lesson__sub {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--pd-50);
  margin: 0;
}

.hifi-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.hifi-status-pill--completed {
  background: var(--pbg-30);
  color: var(--pd-50);
}

.hifi-status-pill--in-progress {
  background: var(--g-90);
  color: var(--g-0);
}

.hifi-status-pill--upcoming {
  background: var(--pb-90);
  color: var(--pb-0);
}

.hifi-status-pill--cancelled {
  background: var(--r-90);
  color: var(--r-0);
}
