:root {
  color-scheme: dark;
  --t2p-bg: #0a0a0a;
  --t2p-surface: #131313;
  --t2p-surface-soft: #1b1b1b;
  --t2p-primary: #8b0000;
  --t2p-active: #cc0000;
  --t2p-text: #ffffff;
  --t2p-subtext: #aaaaaa;
  --t2p-border: #252525;
  --t2p-glow: rgba(204, 0, 0, 0.28);
}

* {
  box-sizing: border-box;
}

body.t2p-shell-active {
  margin: 0;
  background: var(--t2p-bg);
  color: var(--t2p-text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

#t2p-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: radial-gradient(circle at top right, rgba(139, 0, 0, 0.14), transparent 48%), var(--t2p-bg);
  position: relative;
  isolation: isolate;
}

#t2p-shell > * {
  position: relative;
  z-index: 2;
}

.t2p-zone {
  background: var(--t2p-surface);
  border: 1px solid var(--t2p-border);
}

#t2p-header {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 12px 10px;
}

.t2p-header-left,
.t2p-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.t2p-header-right {
  flex-direction: column;
  align-items: stretch;
}

.t2p-avatar-button,
.t2p-gear-button,
.t2p-pill-button,
.t2p-scan-button,
.t2p-rail-item,
.t2p-status-toggle,
.t2p-bottom-round,
.t2p-mini-rect {
  border: 1px solid #303030;
  color: var(--t2p-text);
  background: var(--t2p-surface-soft);
  transition: transform 300ms ease, filter 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
}

.t2p-avatar-button,
.t2p-gear-button,
.t2p-rail-item,
.t2p-bottom-round {
  width: 44px;
  height: 44px;
  border-radius: 999px;
}

.t2p-avatar-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #2a2a2a, #111111);
}

.t2p-avatar-core {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 2px solid #3b3b3b;
  background: radial-gradient(circle at 30% 30%, #7a7a7a, #3d3d3d);
}

.t2p-gear-button {
  font-size: 18px;
}

.t2p-header-center {
  display: flex;
  justify-content: center;
}

.t2p-scan-button {
  min-height: 64px;
  min-width: 92px;
  padding: 10px 12px;
  border-radius: 14px;
  background: linear-gradient(180deg, #9b0000, #7b0000);
  border-color: #a30000;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

.t2p-pill-button {
  min-height: 44px;
  border-radius: 999px;
  padding: 0 14px;
  font-size: 13px;
  white-space: nowrap;
}

.t2p-pill-secondary {
  opacity: 0.85;
}

#t2p-left-rail {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 10px 6px 12px;
}

.t2p-rail-nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  align-items: center;
}

.t2p-rail-item {
  font-size: 18px;
}

.t2p-rail-item.is-active {
  background: var(--t2p-active);
  border-color: #f33;
  box-shadow: 0 0 12px var(--t2p-glow);
}

.t2p-rail-footer {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.t2p-status-toggle {
  min-height: 44px;
  min-width: 44px;
  border-radius: 10px;
  font-size: 11px;
  padding: 0 8px;
}

.t2p-rail-logo,
.t2p-bottom-logo {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #3a3a3a;
  background: #0f0f0f;
  color: #d8d8d8;
  font-weight: 800;
  letter-spacing: 0.03em;
}

#t2p-work-area {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  padding: 14px;
  overflow: auto;
  background: linear-gradient(180deg, #161616 0%, #111111 100%);
  position: relative;
  isolation: isolate;
}

#t2p-work-area > * {
  position: relative;
  z-index: 2;
}

.t2p-shell-overlay,
.t2p-module-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.t2p-shell-overlay {
  border-radius: inherit;
}

.t2p-module-overlay {
  border-radius: 12px;
}

.t2p-home-placeholder {
  width: 100%;
  border: 1px solid #2f2f2f;
  border-radius: 14px;
  padding: 16px;
  background: #191919;
}

.t2p-kicker {
  margin: 0 0 10px;
  color: var(--t2p-subtext);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.t2p-home-placeholder h1 {
  margin: 0 0 10px;
  font-size: clamp(20px, 6vw, 26px);
  line-height: 1.15;
}

.t2p-home-placeholder p {
  margin: 0;
  color: var(--t2p-subtext);
  line-height: 1.5;
}

.t2p-home-cards {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.t2p-card {
  min-height: 56px;
  border: 1px solid #2c2c2c;
  border-radius: 10px;
  padding: 12px;
  display: flex;
  align-items: center;
  color: #d6d6d6;
  background: #141414;
}

#t2p-bottom-nav {
  grid-column: 1 / -1;
  grid-row: 3 / 4;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
}

.t2p-bottom-center {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.t2p-bottom-right {
  display: grid;
  grid-template-columns: repeat(2, minmax(44px, 1fr));
  gap: 8px;
}

.t2p-mini-rect {
  min-height: 44px;
  min-width: 44px;
  border-radius: 9px;
  font-size: 12px;
}

.t2p-shell button:hover,
.t2p-shell button:focus-visible {
  transform: scale(1.03);
  filter: brightness(1.08);
  border-color: #555;
}

.t2p-shell button:focus-visible {
  outline: 2px solid var(--t2p-active);
  outline-offset: 1px;
}

#t2p-shell.is-module #t2p-header,
#t2p-shell.is-module #t2p-bottom-nav {
  display: none;
}

@media (min-width: 900px) {
  #t2p-shell {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  #t2p-work-area {
    padding: 20px;
  }
}

.t2p-module {
  display: grid;
  gap: 12px;
}

.t2p-module h1 {
  margin: 0;
  font-size: clamp(22px, 6vw, 28px);
}

.t2p-module p {
  margin: 0;
  color: var(--t2p-subtext);
  line-height: 1.45;
}

.t2p-module-grid {
  display: grid;
  gap: 10px;
}

.t2p-module-list {
  display: grid;
  gap: 8px;
}

.t2p-module-card,
.t2p-thread-row,
.t2p-map-panel {
  min-height: 56px;
  border: 1px solid #2f2f2f;
  background: #151515;
  border-radius: 10px;
  padding: 12px;
  display: flex;
  align-items: center;
  color: #e2e2e2;
}

.t2p-map-panel {
  min-height: 160px;
  justify-content: center;
  color: #c7c7c7;
}

#t2p-shell.is-home #t2p-header,
#t2p-shell.is-home #t2p-bottom-nav {
  display: grid;
}

.t2p-appointments-workspace {
  width: 100%;
}

.t2p-appointments-layout {
  display: grid;
  gap: 12px;
}

.t2p-calendar-panel,
.t2p-schedule-panel {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
}

.t2p-calendar-head {
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.t2p-cal-month {
  margin: 0;
  text-align: center;
  font-size: 16px;
}

.t2p-cal-nav {
  min-width: 44px;
  min-height: 44px;
  border-radius: 10px;
  border: 1px solid #363636;
  background: #1f1f1f;
  color: #fff;
  font-size: 20px;
}

.t2p-cal-dow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 8px;
}

.t2p-cal-dow span {
  text-align: center;
  font-size: 11px;
  color: #9f9f9f;
}

.t2p-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.t2p-cal-empty {
  min-height: 56px;
}

.t2p-cal-day {
  position: relative;
  min-height: 56px;
  border-radius: 10px;
  border: 1px solid #2e2e2e;
  background: #121212;
  color: #fff;
  padding: 6px;
}

.t2p-cal-day-number {
  font-size: 13px;
}

.t2p-cal-day.is-today {
  border-color: #8b0000;
}

.t2p-cal-day.is-selected {
  border-color: #cc0000;
  box-shadow: 0 0 0 1px #cc0000 inset;
}

.t2p-cal-day.is-full {
  background: #2a1111;
}

.t2p-cal-density {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  height: 3px;
  border-radius: 2px;
}

.t2p-density-has {
  background: #8b0000;
}

.t2p-density-full {
  background: #cc0000;
}

.t2p-density-empty {
  background: #2a2a2a;
}

.t2p-cal-count {
  position: absolute;
  top: 6px;
  right: 6px;
  font-size: 10px;
  color: #bdbdbd;
}

.t2p-schedule-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.t2p-schedule-head h2 {
  margin: 0;
  font-size: 15px;
}

.t2p-create-appointment {
  min-height: 44px;
  border-radius: 999px;
  padding: 0 14px;
  border: 1px solid #a30000;
  background: #8b0000;
  color: #fff;
  font-size: 13px;
}

.t2p-schedule-section {
  margin-top: 12px;
}

.t2p-schedule-section h3 {
  margin: 0 0 8px;
  color: #b2b2b2;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.t2p-schedule-list,
.t2p-time-grid {
  display: grid;
  gap: 8px;
}

.t2p-schedule-row {
  min-height: 52px;
  border: 1px solid #313131;
  border-radius: 10px;
  background: #121212;
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 100%;
  text-align: left;
}

.t2p-schedule-row strong {
  font-size: 13px;
}

.t2p-schedule-row span {
  font-size: 12px;
  color: #bbbbbb;
}

.t2p-schedule-row.is-buffer {
  border-color: #634040;
}

.t2p-schedule-row.is-empty {
  color: #a9a9a9;
}

.t2p-schedule-row.is-user-appt {
  cursor: pointer;
  background: #151515;
}

.t2p-schedule-row.is-user-appt.is-selected {
  border-color: #cc0000;
  box-shadow: 0 0 0 1px #cc0000 inset;
}

.t2p-schedule-row.is-confirmed {
  border-color: #2f5f3f;
}

.t2p-schedule-row.is-in_progress {
  border-color: #8b0000;
}

.t2p-schedule-row.is-completed {
  border-color: #2f5f3f;
  opacity: 0.85;
}

.t2p-schedule-row.is-cancelled,
.t2p-schedule-row.is-no_show {
  border-color: #5c3030;
  opacity: 0.75;
}

.t2p-appt-row-meta {
  font-size: 11px;
  color: #999;
}

.t2p-time-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.t2p-time-block {
  min-height: 44px;
  border-radius: 10px;
  border: 1px solid #343434;
  background: #1a1a1a;
  color: #fff;
  font-size: 12px;
}

.t2p-time-block.is-available {
  border-color: #8b0000;
}

.t2p-time-block.is-blocked {
  border-color: #5b2b2b;
  color: #ad9a9a;
}

.t2p-time-block.is-buffer {
  border-color: #4a4a4a;
  color: #b9b9b9;
}

.t2p-create-placeholder {
  margin-top: 12px;
  min-height: 44px;
  border: 1px dashed #444;
  border-radius: 10px;
  padding: 10px;
  color: #bcbcbc;
  font-size: 12px;
}

.t2p-create-placeholder.is-hidden {
  display: none;
}

.t2p-appointment-card-wrap {
  margin-top: 14px;
}

.t2p-appointment-card-wrap.is-hidden {
  display: none;
}

.t2p-appointment-summary {
  border: 1px dashed #444;
  border-radius: 10px;
  padding: 10px;
  color: #bdbdbd;
  font-size: 12px;
  display: grid;
  gap: 8px;
}

.t2p-appointment-card {
  border: 1px solid #333;
  background: #121212;
  border-radius: 12px;
  padding: 12px;
  display: grid;
  gap: 10px;
}

.t2p-appt-account-resolution {
  border: 1px solid #2f2f2f;
  border-radius: 10px;
  padding: 10px;
  background: #171717;
  display: grid;
  gap: 8px;
}

.t2p-appt-account-resolution h4 {
  margin: 0;
  font-size: 13px;
  color: #d9d9d9;
}

.t2p-appt-resolve-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.t2p-appt-method {
  min-height: 34px;
  border-radius: 999px;
  border: 1px solid #3b3b3b;
  background: #1b1b1b;
  color: #ddd;
  padding: 0 10px;
  font-size: 12px;
}

.t2p-appt-method.is-active {
  border-color: #a30000;
  background: #2a1111;
}

.t2p-appt-resolve-inputs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
}

.t2p-appt-account-resolved {
  font-size: 12px;
  color: #d3d3d3;
}

.t2p-appt-account-results {
  display: grid;
  gap: 6px;
}

.t2p-appt-account-result {
  min-height: 40px;
  border-radius: 8px;
  border: 1px solid #3f3f3f;
  background: #191919;
  color: #efefef;
  text-align: left;
  padding: 8px 10px;
}

.t2p-appt-account-empty {
  border: 1px dashed #555;
  border-radius: 8px;
  padding: 8px 10px;
  color: #c3c3c3;
  font-size: 12px;
}

.t2p-appointment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.t2p-appointment-card label {
  display: grid;
  gap: 4px;
  font-size: 12px;
  color: #bdbdbd;
}

.t2p-appointment-card input,
.t2p-appointment-card select,
.t2p-appointment-card textarea {
  min-height: 40px;
  border-radius: 8px;
  border: 1px solid #3b3b3b;
  background: #191919;
  color: #fff;
  padding: 8px 10px;
}

.t2p-appointment-card textarea {
  min-height: 88px;
  resize: vertical;
}

.t2p-appt-quick-actions,
.t2p-appt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.t2p-appt-quick {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid #424242;
  background: #1b1b1b;
  color: #fff;
}

.t2p-appt-note {
  min-height: 20px;
  font-size: 12px;
  color: #bdbdbd;
}

.t2p-appt-note.is-error {
  color: #ff9d9d;
}

@media (min-width: 900px) {
  .t2p-appointments-layout {
    grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
  }
}

@media (max-width: 899px) {
  .t2p-appointment-grid {
    grid-template-columns: 1fr;
  }
  .t2p-appt-resolve-inputs {
    grid-template-columns: 1fr;
  }
}

.t2p-avatar-button.is-public-brand {
  background: linear-gradient(145deg, #450000, #170000);
  border-color: #7f1a1a;
  box-shadow: 0 0 10px rgba(204, 0, 0, 0.22);
}

.t2p-avatar-button.is-public-brand .t2p-avatar-core {
  width: 30px;
  height: 30px;
  border: 1px solid #9d2f2f;
  background: #220505;
  color: #f6e7e7;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#t2p-shell.is-user-public .t2p-rail-item:not([data-module="home"]),
#t2p-shell.is-user-onboarding .t2p-rail-item:not([data-module="home"]) {
  opacity: 0.45;
}

.t2p-state-module {
  max-width: 620px;
  border: 1px solid #2d2d2d;
  border-radius: 14px;
  padding: 16px;
  background: #191919;
}

.t2p-public-actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.t2p-action-button {
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid #3a3a3a;
  background: #151515;
  color: #efefef;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.t2p-action-button.is-primary {
  background: linear-gradient(180deg, #9b0000, #760000);
  border-color: #a20000;
}

.t2p-public-links {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.t2p-link-chip {
  min-height: 40px;
  border-radius: 999px;
  border: 1px solid #383838;
  background: #141414;
  color: #cfcfcf;
  padding: 0 12px;
}

.t2p-schedule-head-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.t2p-start-session {
  min-height: 44px;
  border-radius: 999px;
  padding: 0 14px;
  border: 1px solid #9d2f2f;
  background: #2a1313;
  color: #fff;
  font-size: 13px;
}

.t2p-session-module {
  display: grid;
  gap: 12px;
}

.t2p-session-banner {
  min-height: 44px;
  border-radius: 10px;
  border: 1px solid #a30000;
  background: #2a1111;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

.t2p-session-layout {
  display: grid;
  gap: 12px;
}

.t2p-session-card {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
}

.t2p-session-card h1,
.t2p-session-card h2 {
  margin: 0;
}

.t2p-session-subtle {
  margin: 6px 0 0;
  color: #aaaaaa;
}

.t2p-session-context-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
}

.t2p-session-photo {
  width: 88px;
  height: 88px;
  border-radius: 10px;
  border: 1px solid #3a3a3a;
  background: #121212;
  color: #b9b9b9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.t2p-session-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.t2p-session-fields {
  margin: 0;
  display: grid;
  gap: 8px;
}

.t2p-session-fields div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 8px;
}

.t2p-session-fields dt {
  color: #9f9f9f;
  font-size: 12px;
}

.t2p-session-fields dd {
  margin: 0;
  color: #fff;
  font-size: 13px;
}

.t2p-session-timer {
  margin-top: 12px;
  min-height: 64px;
  border-radius: 12px;
  border: 1px solid #3a3a3a;
  background: #101010;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.t2p-session-controls {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.t2p-session-btn {
  min-height: 44px;
  border-radius: 10px;
  border: 1px solid #3c3c3c;
  background: #1a1a1a;
  color: #fff;
}

.t2p-session-btn:disabled {
  opacity: 0.45;
}

.t2p-session-btn.is-danger {
  border-color: #a30000;
  background: #360f0f;
}

.t2p-materials-module {
  display: grid;
  gap: 10px;
}

@media (min-width: 900px) {
  .t2p-schedule-head-actions {
    grid-template-columns: auto auto;
  }

  .t2p-session-layout {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }
}

.t2p-materials-log-module,
.t2p-payment-module {
  display: grid;
  gap: 12px;
}

.t2p-materials-header {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
}

.t2p-materials-client-photo {
  width: 88px;
  height: 88px;
  border: 1px solid #3a3a3a;
  border-radius: 10px;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b0b0b0;
  overflow: hidden;
}

.t2p-materials-client-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.t2p-materials-context h1 {
  margin: 0;
}

.t2p-materials-context-grid {
  margin-top: 10px;
  display: grid;
  gap: 6px;
}

.t2p-materials-section {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
  display: grid;
  gap: 10px;
}

.t2p-materials-section h2 {
  margin: 0;
  font-size: 16px;
}

#t2p-material-rows {
  display: grid;
  gap: 10px;
}

.t2p-material-row {
  border: 1px solid #303030;
  border-radius: 10px;
  padding: 10px;
  background: #121212;
  display: grid;
  gap: 8px;
}

.t2p-material-cell {
  display: grid;
  gap: 6px;
}

.t2p-material-cell label {
  font-size: 12px;
  color: #a8a8a8;
}

.t2p-material-cell input,
.t2p-material-cell select,
.t2p-procedure-grid textarea,
.t2p-procedure-grid input {
  min-height: 40px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  padding: 8px;
}

.t2p-procedure-grid {
  display: grid;
  gap: 10px;
}

.t2p-procedure-grid label,
.t2p-photo-grid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #b3b3b3;
}

.t2p-photo-grid {
  display: grid;
  gap: 8px;
}

.t2p-photo-note {
  border: 1px dashed #3b3b3b;
  border-radius: 8px;
  padding: 8px;
  color: #bababa;
  font-size: 12px;
}

.t2p-ack {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  color: #d8d8d8;
  font-size: 13px;
}

.t2p-sign-wrap {
  display: grid;
  gap: 8px;
}

.t2p-sign-canvas {
  width: 100%;
  max-width: 760px;
  height: 180px;
  border: 1px solid #555;
  border-radius: 8px;
  background: #fff;
}

.t2p-material-add,
.t2p-material-remove {
  min-height: 40px;
  border-radius: 8px;
  border: 1px solid #3b3b3b;
  background: #1a1a1a;
  color: #fff;
  padding: 0 12px;
}

.t2p-material-submit-note {
  min-height: 22px;
  color: #bfbfbf;
  font-size: 12px;
}

.t2p-material-submit-note.is-error {
  color: #ffb2b2;
}

@media (min-width: 900px) {
  .t2p-materials-context-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .t2p-material-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
  }

  .t2p-material-cell-remove {
    grid-column: 2;
    justify-self: end;
    width: 140px;
  }
}

.t2p-payment-grid {
  display: grid;
  gap: 10px;
}

.t2p-payment-grid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #b3b3b3;
}

.t2p-payment-grid input,
.t2p-payment-grid select {
  min-height: 40px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  padding: 8px;
}

.t2p-payment-mode-panel {
  border: 1px solid #303030;
  border-radius: 10px;
  padding: 10px;
  background: #121212;
  display: grid;
  gap: 8px;
}

@media (min-width: 900px) {
  .t2p-payment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .t2p-payment-mode-panel {
    grid-column: 1 / -1;
  }
}

.t2p-intake-module {
  display: grid;
  gap: 12px;
}

.t2p-intake-steps {
  display: grid;
  gap: 8px;
}

.t2p-intake-step {
  border: 1px solid #333;
  border-radius: 8px;
  padding: 8px 10px;
  color: #b8b8b8;
  background: #131313;
  font-size: 12px;
}

.t2p-intake-step.is-active {
  border-color: #8b0000;
  color: #fff;
}

.t2p-intake-grid {
  display: grid;
  gap: 10px;
}

.t2p-intake-grid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #b3b3b3;
}

.t2p-intake-grid input,
.t2p-intake-grid select,
.t2p-intake-grid textarea {
  min-height: 40px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  padding: 8px;
}

.t2p-intake-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

@media (min-width: 900px) {
  .t2p-intake-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .t2p-intake-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.t2p-map-module-v1 {
  display: grid;
  gap: 12px;
}

.t2p-map-filter-grid {
  display: grid;
  gap: 10px;
}

.t2p-map-filter-grid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #b3b3b3;
}

.t2p-map-filter-grid input,
.t2p-map-filter-grid select {
  min-height: 40px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  padding: 8px;
}

.t2p-map-status {
  margin-top: 8px;
  font-size: 12px;
  color: #d0d0d0;
}

.t2p-map-error {
  margin-top: 8px;
  border: 1px solid #8f3030;
  background: #2b1010;
  color: #ffd4d4;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
}

.t2p-map-empty-pros {
  margin-top: 8px;
  border: 1px solid #9f7b1a;
  background: #2a210d;
  color: #ffe7a8;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
}

.t2p-map-layout {
  display: grid;
  gap: 12px;
}

.t2p-map-surface-wrap,
.t2p-map-results-wrap {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
}

.t2p-map-surface {
  position: relative;
  min-height: 320px;
  border: 1px solid #333;
  border-radius: 10px;
  overflow: hidden;
  background: #0f0f0f;
}

.t2p-live-map-canvas {
  position: absolute;
  inset: 0;
  min-height: 320px;
}

.t2p-map-pin {
  background: transparent !important;
  border: none !important;
}

.t2p-map-pin span {
  width: 14px;
  height: 14px;
  display: block;
  border-radius: 999px;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.35);
}

.t2p-map-pin-shop span {
  background: #6f8aa6;
}

.t2p-map-pin-professional span {
  background: var(--t2p-module-accent, #cc0000);
}

.t2p-map-pin.is-active span {
  transform: scale(1.18);
  box-shadow: 0 0 0 2px rgba(255,255,255,0.32);
}

.t2p-map-results-head {
  font-size: 12px;
  color: #b8b8b8;
  margin-bottom: 8px;
}

.t2p-map-results-list {
  display: grid;
  gap: 8px;
  max-height: 280px;
  overflow: auto;
  padding-right: 2px;
}

.t2p-map-result {
  border: 1px solid #333;
  border-radius: 10px;
  background: #121212;
  color: #f0f0f0;
  text-align: left;
  padding: 10px;
  display: grid;
  gap: 4px;
}

.t2p-map-result.is-active {
  border-color: #cc0000;
}

.t2p-map-detail {
  margin-top: 0;
  border: 1px solid #333;
  border-radius: 10px;
  background: #111;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.t2p-map-detail h2 {
  margin: 0;
  font-size: 16px;
}

.t2p-map-avatar {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  border: 1px solid #3a3a3a;
  object-fit: cover;
}

@media (min-width: 900px) {
  .t2p-map-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .t2p-map-layout {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
}

.t2p-messaging-module-v1 {
  display: grid;
  gap: 12px;
}

.t2p-msg-layout {
  display: grid;
  gap: 12px;
}

.t2p-msg-inbox,
.t2p-msg-thread-pane {
  border: 1px solid #2f2f2f;
  border-radius: 12px;
  background: #171717;
  padding: 12px;
}

.t2p-msg-head {
  font-size: 12px;
  color: #b8b8b8;
  margin-bottom: 8px;
}

.t2p-msg-thread-list {
  display: grid;
  gap: 8px;
}

.t2p-msg-thread {
  border: 1px solid #333;
  border-radius: 10px;
  background: #121212;
  color: #fff;
  text-align: left;
  padding: 10px;
  display: grid;
  gap: 6px;
}

.t2p-msg-thread.is-active {
  border-color: #cc0000;
}

.t2p-msg-thread-top,
.t2p-msg-thread-mid {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.t2p-msg-thread-top span,
.t2p-msg-thread-mid span,
.t2p-msg-thread-preview {
  font-size: 12px;
  color: #b8b8b8;
}

.t2p-msg-label {
  border: 1px solid #3a3a3a;
  border-radius: 999px;
  padding: 2px 8px;
}

.t2p-msg-unread {
  border: 1px solid #8b0000;
  border-radius: 999px;
  padding: 2px 8px;
  color: #ffb3b3;
}

.t2p-msg-thread-header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.t2p-msg-thread-header span {
  font-size: 12px;
  color: #b8b8b8;
}

.t2p-msg-history {
  display: grid;
  gap: 8px;
  max-height: 360px;
  overflow: auto;
  padding-bottom: 8px;
}

.t2p-msg-bubble {
  border: 1px solid #333;
  border-radius: 10px;
  background: #111;
  padding: 8px 10px;
  display: grid;
  gap: 4px;
  max-width: 88%;
}

.t2p-msg-bubble p {
  margin: 0;
}

.t2p-msg-bubble span {
  font-size: 11px;
  color: #b8b8b8;
}

.t2p-msg-bubble.is-me {
  justify-self: end;
  border-color: #8b0000;
  background: #1d1111;
}

.t2p-msg-composer {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.t2p-msg-composer textarea {
  min-height: 88px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  padding: 8px;
}

@media (min-width: 900px) {
  .t2p-msg-layout {
    grid-template-columns: 0.95fr 1.05fr;
    align-items: start;
  }
}

/* Admin Cockpit Module Editor v1: presentation controls runtime variables */
#t2p-shell {
  font-family: var(--t2p-editor-font-family, inherit);
  font-size: var(--t2p-editor-font-size, 16px);
  color: var(--t2p-editor-text, inherit);
}

body.t2p-shell-active {
  color: var(--t2p-editor-text, #ffffff);
  background: var(--t2p-editor-bg, #0a0a0a);
}

.t2p-zone,
.t2p-module,
.t2p-module-card,
.t2p-map-panel,
.t2p-thread-row,
.t2p-schedule-row,
.t2p-time-block,
.t2p-session-panel,
.t2p-material-panel,
.t2p-payment-panel,
.t2p-intake-panel {
  border-radius: var(--t2p-editor-element-radius, 10px);
}

#t2p-header {
  background: var(--t2p-editor-header-bg, transparent);
  color: var(--t2p-editor-header-text, inherit);
}

#t2p-left-rail {
  background: var(--t2p-editor-left-bg, transparent);
  color: var(--t2p-editor-left-text, inherit);
}

#t2p-work-area {
  background: var(--t2p-editor-work-bg, transparent);
  color: var(--t2p-editor-work-text, inherit);
}

#t2p-bottom-nav {
  background: var(--t2p-editor-bottom-bg, transparent);
  color: var(--t2p-editor-bottom-text, inherit);
}

.t2p-rail-item.is-active,
#t2p-shell .t2p-rail-item:focus-visible,
#t2p-shell .t2p-rail-item:hover {
  background: var(--t2p-editor-state-active, #cc0000);
}

#t2p-shell .t2p-module {
  background: var(--t2p-editor-surface, #171717);
  color: var(--t2p-editor-text, #ffffff);
  border-radius: var(--t2p-editor-radius, 12px);
}

/* Admin Cockpit editor layout */
.t2p-admin-editor {
  display: grid;
  gap: 12px;
}

.t2p-editor-inline-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.t2p-editor-inline-grid label,
.t2p-editor-module-row label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #d0d0d0;
}

.t2p-editor-inline-grid input,
.t2p-editor-inline-grid select,
.t2p-editor-inline-grid textarea,
.t2p-editor-module-row input,
.t2p-editor-module-row select,
.t2p-editor-module-row textarea {
  min-height: 36px;
  width: 100%;
  background: #101010;
  color: #f4f4f4;
  border: 1px solid #2c2c2c;
  border-radius: 8px;
  padding: 8px 10px;
}

.t2p-editor-module-list {
  display: grid;
  gap: 10px;
}

.t2p-editor-module-row {
  background: #0f0f0f;
  border: 1px solid #2a2a2a;
  border-radius: 10px;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.t2p-editor-module-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  color: #e6e6e6;
}

.t2p-editor-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.t2p-editor-note.is-error {
  color: #ff7f7f;
}

#t2p-shell .t2p-module h1,
#t2p-shell .t2p-module h2,
#t2p-shell .t2p-module h3 {
  color: var(--t2p-module-accent, var(--t2p-editor-accent, #8b0000));
}

#t2p-shell .t2p-rail-item {
  background: var(--t2p-editor-state-inactive, #666666);
}

#t2p-shell .t2p-rail-item[disabled],
#t2p-shell .t2p-rail-item.is-disabled {
  background: var(--t2p-editor-state-disabled, #555555);
  opacity: .6;
}

#t2p-shell .t2p-status-toggle {
  border-color: var(--t2p-editor-state-unavailable, #444444);
}

/* Shell\/Theme\/Skin runtime class hooks */
#t2p-shell.t2p-shell-texture-grain .t2p-zone,
#t2p-shell.t2p-shell-texture-grain #t2p-work-area {
  background-image: radial-gradient(rgba(255,255,255,0.03) 0.6px, transparent 0.6px);
  background-size: 3px 3px;
}

#t2p-shell.t2p-shell-texture-grid .t2p-zone,
#t2p-shell.t2p-shell-texture-grid #t2p-work-area {
  background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 14px 14px;
}

#t2p-shell.t2p-shell-border-soft .t2p-zone {
  border-color: rgba(255,255,255,0.16);
}

#t2p-shell.t2p-shell-border-strong .t2p-zone {
  border-width: 2px;
  border-color: rgba(255,255,255,0.34);
}

#t2p-shell.t2p-shell-glow-none {
  --t2p-glow: rgba(0,0,0,0);
}

#t2p-shell.t2p-shell-glow-none .t2p-rail-item.is-active,
#t2p-shell.t2p-shell-glow-none .t2p-scan-button,
#t2p-shell.t2p-shell-glow-none .t2p-pill-button {
  box-shadow: none;
}

#t2p-shell.t2p-shell-glow-medium {
  --t2p-glow: rgba(204,0,0,0.48);
}

#t2p-shell.t2p-shell-glow-medium .t2p-rail-item.is-active {
  box-shadow: 0 0 18px var(--t2p-glow);
}

#t2p-shell.t2p-shell-glow-medium .t2p-zone {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04), 0 0 10px rgba(204,0,0,0.10);
}

#t2p-shell .t2p-zone-surface {
  background-color: var(--t2p-surface);
}

#t2p-shell .t2p-zone-muted {
  background-color: #121212;
  border-color: rgba(255,255,255,0.14);
}

#t2p-shell .t2p-zone-transparent {
  background-color: rgba(0,0,0,0.16);
  border-color: rgba(255,255,255,0.12);
}

.t2p-map-result strong {
  font-size: 14px;
  line-height: 1.3;
}

.t2p-map-result-meta {
  font-size: 12px;
  color: #c9c9c9;
}

.t2p-map-result-location {
  font-size: 12px;
  color: #9f9f9f;
}

.t2p-map-detail-shop {
  display: grid;
  gap: 6px;
}

.t2p-map-shop-name {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
  color: #ffffff;
}

.t2p-map-shop-address {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #d8d8d8;
}

.t2p-map-shop-phone-wrap {
  margin: 2px 0 0;
}

.t2p-map-shop-phone {
  display: inline-block;
  padding: 8px 10px;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  color: #ffffff;
  text-decoration: none;
  background: #191919;
}
.t2p-map-claim-btn {
  margin-top: 6px;
}

.t2p-map-claim-state {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #3a3a3a;
  background: #1a1a1a;
  color: #f0f0f0;
  font-size: 13px;
}

.t2p-map-claim-state.is-claimed {
  border-color: #2f7d32;
  background: #122416;
}

.t2p-claim-listing-module .t2p-materials-section {
  display: grid;
  gap: 12px;
}

.t2p-claim-search-row-wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.t2p-claim-search-results {
  display: grid;
  gap: 8px;
}

.t2p-claim-search-row {
  width: 100%;
  text-align: left;
  border: 1px solid #333;
  background: #141414;
  color: #fff;
  border-radius: 10px;
  padding: 10px;
  display: grid;
  gap: 4px;
}

.t2p-claim-search-row span {
  color: #bcbcbc;
  font-size: 12px;
}

.t2p-claim-selected-shop {
  border: 1px solid #353535;
  border-radius: 10px;
  background: #141414;
  padding: 10px;
  display: grid;
  gap: 5px;
}

.t2p-claim-selected-shop > span {
  color: #cfcfcf;
  font-size: 13px;
}

.t2p-claim-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 860px) {
  .t2p-claim-search-row-wrap {
    grid-template-columns: 1fr;
  }
}
