*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  -webkit-tap-highlight-color: transparent;
}

button,
a,
[role='button'],
input,
select,
textarea,
label {
  -webkit-tap-highlight-color: transparent;
}

.is-hidden {
  display: none !important;
}

@keyframes boot-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes boot-ambient {
  0% {
    transform: translate(0, 0) scale(1);
  }
  100% {
    transform: translate(2%, -2%) scale(1.04);
  }
}

.spinner {
  display: block;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: 3px solid transparent;
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: boot-spin 0.75s linear infinite;
}

.wordmark {
  display: block;
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
  line-height: 1;
  text-align: center;
  margin-bottom: 18px;
}

.wordmark::first-letter {
  color: var(--accent);
}

button {
  font-family: inherit;
  cursor: pointer;
}

.btn {
  width: 100%;
  padding: 12px;
  border-radius: var(--radius-pill);
  font-size: 0.88rem;
  font-weight: 700;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.btn--primary {
  background: var(--accent);
  color: #fff;
}

.btn--primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.btn--primary:active:not(:disabled) {
  opacity: 0.82;
}

.btn--ghost {
  background: transparent;
  color: var(--text2);
  border: 1.5px solid var(--border);
}

.btn--ghost:active {
  background: var(--surface2);
}

.btn--danger {
  background: var(--red);
  color: #fff;
  border: none;
}

.btn--danger:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.btn--danger:active:not(:disabled) {
  opacity: 0.82;
}

.icon-btn--sm {
  width: 28px;
  height: 28px;
  font-size: 0.82rem;
}

.action-btn {
  height: 34px;
  padding: 0 14px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--border);
  background: var(--surface2);
  color: var(--text2);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font);
  display: flex;
  align-items: center;
  gap: 5px;
}

.action-btn--active {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--accent-light);
}

.action-btn--disabled,
.action-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.avatar-letter {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  line-height: 1;
}

.avatar-letter::before {
  content: attr(data-letter);
}

.has-avatar {
  background-size: cover;
  background-position: center;
}

.searchable-select__panel:not(.is-hidden) ~ .offer-sheet__body,
.modal:has(.searchable-select--open) .offer-sheet__body { overflow: visible; }
.searchable-select{position:relative;min-width:0;flex:1;width:100%;z-index:1}
.searchable-select--open{z-index:50}
.modal:has(.searchable-select--open) .searchable-select--open{z-index:auto}
.searchable-select__trigger{width:100%;min-width:0;height:40px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface2);color:var(--text);font-family:var(--font);font-size:.86rem;font-weight:500;padding:0 10px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searchable-select__trigger:focus{border-color:var(--accent);outline:none}
.searchable-select__panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:var(--z-extra);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;display:flex;flex-direction:column;gap:8px;max-height:min(240px,40vh);overflow:hidden;min-height:0}
.searchable-select__panel .searchable-select__list{flex:1 1 auto;min-height:0}
.searchable-select__panel-header{display:flex;align-items:center;gap:8px;flex-shrink:0}
.searchable-select__filter-wrap{position:relative;flex:1;min-width:0}
.searchable-select__filter-row{display:flex;align-items:center;gap:8px;flex-shrink:0}
.searchable-select__filter{flex:1;min-width:0;width:100%;height:32px;margin-bottom:0;font-size:.8rem;padding:0 10px;box-sizing:border-box}
.searchable-select__filter-wrap:has(.searchable-select__filter-clear:not(.is-hidden)) .searchable-select__filter{padding-right:32px}
.searchable-select__filter-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);flex-shrink:0}
.searchable-select__panel-close{flex-shrink:0;width:32px;height:32px;padding:0}
.searchable-select__list{overflow-y:auto;display:flex;flex-direction:column;gap:4px;min-height:0}
.searchable-select__option{border:none;background:none;text-align:left;font-family:var(--font);font-size:.82rem;color:var(--text);padding:10px 12px;border-radius:8px;cursor:pointer;line-height:1.35;white-space:normal;word-break:break-word}
.searchable-select__option:hover,.searchable-select__option--active{background:var(--accent-light);color:var(--accent)}
.searchable-select__list:has(.searchable-select__empty){flex:1;justify-content:center;align-items:center;min-height:112px}
.searchable-select__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 12px;text-align:center;width:100%}
.searchable-select__empty-icon{font-size:2rem;color:var(--border)}
.searchable-select__empty-text{font-size:.86rem;font-weight:400;color:var(--text2);line-height:1.5;margin:0}
.searchable-select,.searchable-select--currency{width:100%;max-width:none;min-width:0}
.searchable-select__trigger,.searchable-select--currency .searchable-select__trigger{height:40px;width:100%;font-size:.86rem}
.searchable-select{flex:0 0 calc(50% - 4px);max-width:calc(50% - 4px);min-width:0}
.searchable-select.phone-split__dial,.phone-split--form .phone-split__number.form-field{width:100%;max-width:100%;min-width:0;height:40px;min-height:40px;box-sizing:border-box}
.searchable-select__trigger{height:40px;min-height:40px}
.searchable-select--open { overflow: visible; }
.domain-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.modal__body--domain-picker{padding-top:16px}
.tag-group__label{font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:8px;line-height:1.35}
.tag-group__label .field-label__required{text-transform:none;letter-spacing:0}
.tag-group__pills{display:flex;flex-wrap:wrap;gap:6px}
.tag-group__pills--cols-2 .tag-chip{flex:1 1 calc(50% - 3px);min-width:0}
.tag-group__pills--cols-3 .tag-chip{flex:1 1 calc(33.333% - 4px);min-width:0}
.tag-chip{flex:1 1 calc(50% - 3px);min-width:0}
.tag-chip{flex:1 1 calc(33.333% - 4px);min-width:0}
.tag-chip{height:30px;padding:0 10px;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface);color:var(--text2);font-family:var(--font);font-size:.74rem;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;justify-content:center}
.tag-chip--active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}
.tag-field{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}
.tag-field__body{padding:12px 14px;display:flex;flex-direction:column;gap:14px}
.schedule{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}
.schedule__always{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:8px}
.schedule__always-title{font-size:.82rem;font-weight:600;color:var(--text);flex:1}
.schedule__days.contact-visibility{border-top:1px solid var(--border)}
.schedule__day-row{align-items:center}
.schedule__day-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--text);min-width:0}
.schedule__day-checkbox{appearance:none;width:20px;height:20px;min-width:20px;border:2px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;position:relative;display:grid;place-items:center}
.schedule__day-checkbox:checked{background:var(--accent);border-color:var(--accent)}
.schedule__day-checkbox:checked::after{content:'';display:block;width:5px;height:9px;border:2.5px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translate(0,-1px)}
.schedule__day-time{display:flex;align-items:center;gap:6px;flex-shrink:0}
.schedule__select{height:32px;border-radius:8px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font);font-size:.82rem;padding:0 6px}
.schedule__time-sep::before{content:'\2013';color:var(--text2)}
.schedule__always-open{font-size:.84rem;color:var(--green);font-weight:600}
.schedule__day-name{user-select:none}
.contact-visibility{border-top:1px solid var(--border)}
.contact-visibility{background:var(--surface2);border-top:1px solid var(--border);overflow:hidden}
.contact-visibility__row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);gap:12px}
.contact-visibility__row:last-child{border-bottom:none}
.contact-visibility__label{font-size:.82rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;min-width:72px}
.contact-visibility__label i{color:var(--accent);font-size:.76rem}
.contact-visibility__toggles{display:flex;flex-direction:column;gap:10px;flex:1}
.contact-visibility__toggle-item{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.82rem;color:var(--text2);width:100%}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer}
.toggle__knob{position:absolute;inset:0;background:var(--border);border-radius:var(--radius-pill);transition:background .2s}
.toggle__knob::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.toggle--active .toggle__knob{background:var(--accent)}
.toggle--active .toggle__knob::before{transform:translateX(20px)}
.request-form-budget{display:flex;gap:8px;margin-top:16px;margin-bottom:8px;align-items:flex-end;width:100%}
.request-form-budget__amount-col,.request-form-budget__currency-col{display:flex;flex-direction:column;gap:4px;flex:0 0 calc(50% - 4px);max-width:calc(50% - 4px);min-width:0}
.request-form-budget .input-wrap{margin-bottom:0;width:100%}
.request-form-budget__amount,.request-form-budget__currency{width:100%;min-width:0}
.request-form-budget__currency .searchable-select,.searchable-select--currency{width:100%;max-width:none;min-width:0}
.request-form-budget__currency .searchable-select__trigger,.searchable-select--currency .searchable-select__trigger{height:40px;width:100%;font-size:.86rem}
.request-contact-channel{margin-bottom:8px}
.request-contact-channel:last-of-type{margin-bottom:0}
.request-contact-channel__row{display:flex;align-items:center;gap:10px}
.request-contact-channel__row .input-wrap{flex:1;min-width:0;margin-bottom:0}
.request-contact-channel--off .request-contact-channel__row .input-wrap{opacity:.55;pointer-events:none}
.request-contact-toggle{width:40px;height:40px;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;flex-shrink:0;transition:border-color .15s,background .15s,color .15s}
.request-contact-toggle--active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}
.request-contact-channel--off .form-field{opacity:.55}
.request-visible-for{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.request-visible-for .discover-filter-chip{flex:1;min-width:0}
.field-label--compact{margin-top:0;margin-bottom:6px}
.field-label--row{justify-content:space-between;gap:10px}
.field-label--compact{margin-bottom:0;font-size:.72rem}
.field-label__required{color:var(--accent);font-weight:700}
.field-label__required{text-transform:none;letter-spacing:0}
.field-label__main{display:inline-flex;align-items:center;gap:6px;min-width:0}
.pricing__header{text-align:center;margin-bottom:20px}
.pricing__title{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:20px;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;line-height:1.25}
.pricing__compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;min-width:0;width:100%}
.pricing__compare-col{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);padding:16px 12px;display:flex;flex-direction:column;gap:8px;min-width:0;overflow:hidden}
.pricing__compare-col--premium{border-color:var(--accent);background:var(--accent-light)}
.pricing__compare-heading{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);margin-bottom:4px;text-align:center}
.pricing__compare-col--premium .pricing__compare-heading{color:var(--accent)}
.pricing__compare-feature{font-size:.80rem;color:var(--text);display:flex;align-items:center;gap:6px;min-width:0}
.pricing__compare-feature span{min-width:0;flex:1;white-space:normal}
.pricing__compare-feature i{font-size:.72rem;flex-shrink:0}
.pricing__compare-feature--yes i{color:var(--green)}
.pricing__compare-feature--no i{color:var(--text2);opacity:.35}
.pricing__trial{font-size:.78rem;color:var(--text2);font-weight:600;text-align:center;margin-bottom:10px;min-width:0}
.pricing__rates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:0}
.pricing__rate{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);padding:14px 10px;display:flex;flex-direction:column;gap:6px;align-items:center;position:relative;min-width:0;cursor:pointer;font-family:var(--font);transition:border-color .15s,background .15s,box-shadow .15s;color:inherit;text-align:center}
.pricing__rate--selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px var(--accent)}
.pricing__rate--selected .pricing__rate-label{color:var(--accent)}
.pricing__rate--selected .pricing__amount{color:var(--accent)}
.pricing__rate-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2)}
.pricing__badge-inline{position:absolute;top:-8px;right:-4px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.04em}
.pricing__plan-price{width:100%;min-width:0;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.pricing__price-row{display:inline-flex;align-items:baseline;justify-content:center;white-space:nowrap;max-width:100%;line-height:1.15}
.pricing__amount{font-size:1.4rem;font-weight:700;color:var(--text)}
.pricing__period{font-size:.78rem;font-weight:500;color:var(--text2);margin-left:1px}
.lightbox{position:absolute;inset:0;z-index:2;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.lightbox-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:12px 16px;z-index:12}
.lightbox-header__left{display:flex;align-items:center;gap:8px;flex-shrink:0;position:relative;z-index:2}
.lightbox-dots{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:center;justify-content:center;z-index:1;flex:none;pointer-events:none}
.lightbox-header>.lightbox-action:last-child,.lightbox-header>.js-lightbox-close{margin-left:auto;position:relative;z-index:2;flex-shrink:0}
.lightbox-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4);transition:background .15s}
.lightbox-dot--active{background:#fff}
.lightbox-img-wrap{max-width:92%;max-height:calc(100% - 120px);display:flex;align-items:center;justify-content:center;position:relative;min-width:120px;min-height:120px;margin-top:36px}
.lightbox-img-wrap img{max-width:100%;max-height:calc(100% - 120px);border-radius:var(--radius);object-fit:contain;user-select:none}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.18);border:none;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;z-index:11}
.lightbox-nav--prev{left:8px}
.lightbox-nav--next{right:8px}
.lightbox-action{width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.45);border:none;color:rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;z-index:12;flex-shrink:0}
.lightbox-action.js-lightbox-close{background:var(--surface2);color:var(--text2)}
.lightbox-action.js-lightbox-close:hover{background:var(--surface2);color:var(--text)}
.lightbox{position:fixed;inset:0;z-index:var(--z-lightbox);background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.lightbox--fullscreen{z-index:var(--z-lightbox-full)}
.lightbox-header--owner{justify-content:flex-end;gap:8px}
.confirm-modal{position:relative;z-index:1;padding:24px;display:flex;flex-direction:column;gap:12px;max-width:340px;width:calc(100% - 48px);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.confirm-modal__title{font-size:1rem;font-weight:700;color:var(--text)}
.confirm-modal__message{font-size:.86rem;color:var(--text2);line-height:1.5}
.confirm-modal .js-confirm-password{width:100%;box-sizing:border-box}
.confirm-modal__actions{display:flex;gap:10px;margin-top:4px}
.confirm-modal__title.is-hidden{display:none}
.report-modal__question{font-size:.86rem;color:var(--text2);margin-bottom:16px;line-height:1.5}
.report-modal__options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.report-modal__option{display:flex;align-items:center;gap:12px;cursor:pointer;padding:10px 12px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface2);transition:border-color .15s,background .15s}
.report-modal__option input{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-width:18px;border:2px solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;flex-shrink:0;margin:0}
.report-modal__option input:checked{border-color:var(--red);border-width:5px;background:var(--red)}
.report-modal__option--selected{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--surface2))}
.report-modal__label{font-size:.86rem;font-weight:600;color:var(--text)}
.report-modal{display:flex;flex-direction:column;gap:12px}
.report-modal .btn--danger{margin-top:4px}
.modal--offer-form .field-label,
.modal--request-form .field-label{margin-top:16px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.modal--offer-form .field-label:first-child,
.modal--request-form .field-label:first-child{margin-top:0}
.modal--offer-form .domain-picker-btn,
.modal--request-form .domain-picker-btn{margin-bottom:8px}
.modal--offer-form .tag-field,
.modal--request-form .tag-field{margin-bottom:8px}
.modal--offer-form .input-wrap,
.modal--request-form .input-wrap{margin-bottom:4px}
.modal--offer-form .schedule,
.modal--request-form .request-visible-for{margin-bottom:4px}
.modal--offer-form .modal-form-footer,
.modal--request-form .modal-form-footer{margin-top:20px}
textarea.form-field--grow{field-sizing:content;max-height:300px;overflow-y:auto}
textarea.form-field--grow.form-field--rows-2{min-height:var(--form-rows-2)}
textarea.form-field--grow.form-field--rows-3{min-height:var(--form-rows-3)}
.form-field--rows-2{min-height:var(--form-rows-2)}
.form-field--rows-3{min-height:var(--form-rows-3)}
.discover-filter-chip{flex:1 1 0;min-width:0}
.discover-filter-chip{min-width:0;text-align:center;overflow:hidden;text-overflow:ellipsis}
.discover-filter-chip{flex:1 1 calc(50% - 3px)}
.discover-filter-chip{flex:1 1 calc(33.333% - 4px)}
.discover-filter-chip{height:34px;padding:0 10px;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface2);color:var(--text);font-family:var(--font);font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;flex:0 1 auto}
.discover-filter-chip--active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}
.discover-filter-chip{flex:1;min-width:0}

.modal { position: relative; }
.modal > .searchable-select__panel--modal {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  max-height: none;
  z-index: var(--z-extra);
  border-radius: var(--radius-lg) var(--radius-lg) var(--radius) var(--radius);
  border-top: none;
  box-shadow: none;
  padding: 10px var(--modal-pad) var(--modal-pad);
  overscroll-behavior: contain;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.modal > .searchable-select__panel--modal .searchable-select__list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-gutter: stable;
}
.modal.modal--searchable-open > .modal__body,
.modal.modal--searchable-open > .modal__tabs {
  overscroll-behavior: none;
}
.modal.modal--searchable-open > .modal__body {
  overflow: hidden !important;
}
.domain-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  min-height: 118px;
  padding: 12px 8px 10px;
  border: 1.5px solid var(--border);
  border-radius: 16px;
  background: var(--surface2);
  color: var(--text);
  text-align: center;
  cursor: pointer;
  font-family: var(--font);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .12s ease;
}
.domain-card:hover {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, var(--surface2));
}
.domain-card:active {
  transform: scale(0.98);
}
.domain-card > i:first-child {
  font-size: 1.2rem;
  color: var(--accent);
  margin-bottom: 8px;
  line-height: 1;
  transition: color .15s ease;
}
.domain-card__title {
  font-weight: 700;
  font-size: .78rem;
  line-height: 1.25;
  margin-bottom: 4px;
  color: var(--text);
}
.domain-card__desc {
  font-size: .68rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--text2);
}
.domain-card--active,
.domain-card--active:hover {
  border-color: var(--accent);
  background: var(--accent-light);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent);
}
.domain-card--active > i:first-child {
  color: var(--accent);
}
.dial-option { display:inline-flex; align-items:center; gap:8px; min-width:0; max-width:100%; }
.dial-option--selected { width:100%; }
.dial-option__flag-img { display:block; border-radius:2px; flex-shrink:0; }
.dial-option__code { font-weight:700; flex-shrink:0; }
.dial-option__name { color:var(--text2); font-size:.82rem; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.searchable-select__trigger .dial-option--selected { display:flex; align-items:center; gap:8px; min-width:0; width:100%; }
.toggle { position:relative; width:44px; height:24px; flex-shrink:0; cursor:pointer; }
.discover-stage--dialog { align-items:center; justify-content:center; }
.discover-stage--lightbox { padding:0; }
.discover-stage--lightbox .discover-stage__map { opacity:.35; }
.discover-stage .lightbox { position:absolute; inset:0; z-index:2; }
.input-wrap .form-field--rows-2, .input-wrap .form-field--rows-3 { padding:10px 14px; padding-bottom:var(--form-field-pad-bottom-counter); resize:none; display:block; width:100%; box-sizing:border-box; }
.discover-filter-chip--disabled { opacity:.55; cursor:default; }
.request-form-budget__currency-col .searchable-select { width:100%; max-width:none; flex:1; }
.searchable-select__trigger--placeholder { color: var(--text2); }

.screen {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
}

.screen--app {
  position: relative;
  overflow: hidden;
}

.screen--loading {
  z-index: var(--z-loading);

  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  overflow: hidden;
}

.screen--loading::before {
  content: '';
  position: absolute;
  inset: -40%;
  background:
    radial-gradient(circle at 30% 40%, rgba(239, 108, 28, 0.09) 0%, transparent 42%),
    radial-gradient(circle at 70% 60%, rgba(200, 96, 42, 0.07) 0%, transparent 38%);
  animation: boot-ambient 8s ease-in-out infinite alternate;
  pointer-events: none;
}

[data-theme='dark'] .screen--loading::before {
  background:
    radial-gradient(circle at 30% 40%, rgba(217, 120, 64, 0.14) 0%, transparent 42%),
    radial-gradient(circle at 70% 60%, rgba(239, 108, 28, 0.08) 0%, transparent 38%);
}

.boot-screen {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.boot-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2.5px solid var(--border);
  border-top-color: var(--accent);
  animation: boot-spin 0.85s linear infinite;
}

.boot-screen__subtitle {
  margin: 16px 0 0;
  max-width: 240px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text2);
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.panel-state {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 32px 24px;
  text-align: center;
  min-height: 0;
  width: 100%;
}

.js-state {
  display: contents;
}

/* Fill hosts (loading / empty): grow to available space and center spinner/icon. */
.panel-state--fill,
.empty-state--fill,
.panel-state.panel-state--fill,
.empty-state.empty-state--fill {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  align-self: stretch;
  width: 100%;
  min-height: 0;
  height: auto;
  padding: 24px;
  box-sizing: border-box;
}

/* Hosts that mount showState() — stretch so the fill state can center. */
.modal__body:has(.panel-state--fill),
.modal__body:has(.empty-state--fill),
.discover-list:has(.panel-state--fill),
.discover-list:has(.empty-state--fill),
.js-contact-list:has(.panel-state--fill),
.js-contact-list:has(.empty-state--fill),
.js-blocked-list:has(.panel-state--fill),
.js-blocked-list:has(.empty-state--fill),
.js-reviews-content:has(.panel-state--fill),
.js-reviews-content:has(.empty-state--fill),
.analytics-body:has(.panel-state--fill),
.analytics-body:has(.empty-state--fill),
.js-offer-photos-empty:has(.panel-state--fill),
.js-photos-body:has(.panel-state--fill),
.offer-sheet__reviews-embed:has(.panel-state--fill),
.offer-sheet__panel[data-panel="reviews"]:has(.panel-state--fill),
.offer-sheet__panel[data-panel="photos"]:has(.panel-state--fill) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  align-self: stretch;
}

.modal:has(.panel-state--fill) > .modal__body,
.modal:has(.empty-state--fill) > .modal__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.panel-state__icon {
  font-size: 2rem;
  color: var(--border);
}

.panel-state__text {
  font-size: 0.86rem;
  color: var(--text2);
  line-height: 1.5;
  margin: 0;
}

.screen--loading:has(.js-state-panel:not(.is-hidden))::before {
  display: none;
}

.intent-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: transparent;
}

.intent-card {
  width: min(360px, 100%);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 28px 24px;
  box-shadow: var(--shadow-lg);
}

.intent-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.01em;
  line-height: 1.35;
  margin-bottom: 22px;
  color: var(--text2);
}

.intent-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.intent-option {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 12px 16px;
  border-radius: 16px;
  border: 1.5px solid var(--border);
  background: var(--surface);
  color: var(--text);
  text-align: left;
  transition: background 0.15s, border-color 0.15s;
}

.intent-option:hover {
  background: var(--accent-light);
  border-color: var(--accent);
}

.intent-option--selected {
  background: var(--accent-light);
  border-color: var(--accent);
}

.intent-option__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 12px;
  background: var(--surface2);
  display: grid;
  place-items: center;
  font-size: 1rem;
  color: var(--accent);
}

.intent-option--selected .intent-option__icon {
  background: var(--accent);
  color: #fff;
}

.intent-option__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.intent-option__title {
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.25;
}

.intent-option--selected .intent-option__title {
  color: var(--accent);
}

.intent-option__subtitle {
  font-size: 0.76rem;
  color: var(--text2);
  line-height: 1.35;
}

.signin-prompt-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: transparent;
}

.signin-prompt-card {
  width: min(360px, 100%);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 28px 24px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  position: relative;
}

.signin-prompt__back {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: -4px 0 12px;
  padding: 6px 8px;
  border: none;
  background: transparent;
  color: var(--text2);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.signin-prompt__back:hover {
  color: var(--accent);
}

.signin-prompt-card__wordmark {
  margin-bottom: 12px;
}

.signin-prompt-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.01em;
  line-height: 1.35;
  margin-bottom: 22px;
  color: var(--text2);
}

.legal-consent {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  font-size: 0.72rem;
  color: var(--text2);
  line-height: 1.4;
  cursor: pointer;
  text-align: left;
  width: 100%;
}

.legal-consent input {
  appearance: none;
  width: 20px;
  height: 20px;
  min-width: 20px;
  border: 2px solid var(--border);
  border-radius: 50%;
  background: var(--surface2);
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.legal-consent input:hover {
  border-color: var(--accent);
}

.legal-consent__text {
  flex: 1;
  min-width: 0;
}

.signin-prompt-card .legal-consent {
  gap: 8px;
  font-size: 0.67rem;
  letter-spacing: -0.01em;
}

.signin-prompt-card .legal-consent__text {
  flex: none;
  white-space: nowrap;
}

.legal-consent input:checked {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-light);
}

.legal-consent input:checked::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 9px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: translate(-50%, -58%) rotate(45deg);
}

.legal-consent a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}

.signin-prompt__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.signin-prompt__btn {
  width: 100%;
  height: 46px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.signin-prompt__btn:not(:disabled) {
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.signin-prompt__btn:not(:disabled):hover {
  border-color: var(--accent);
  background: var(--accent-light);
  color: var(--accent);
}

.signin-prompt__btn + .signin-prompt__btn {
  margin-top: 10px;
}

.email-auth-card {
  width: min(380px, 100%);
}

.email-auth-title {
  font-size: 1.05rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.01em;
  line-height: 1.35;
  margin: 0 0 20px;
  color: var(--text);
}

.email-auth-fields {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
}

.email-auth-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.email-auth-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text2);
}

.email-auth-field .form-field {
  width: 100%;
}

.password-field {
  position: relative;
}

.password-field .form-field {
  width: 100%;
  padding-right: 42px;
}

.password-field__toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--text2);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.password-field__toggle:hover {
  color: var(--accent);
  background: var(--accent-light);
}

.email-auth-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-top: 16px;
}

.email-auth-links__sep {
  color: var(--border);
  font-weight: 700;
  user-select: none;
}

.email-auth-link {
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.email-auth-link:hover {
  color: var(--accent);
}

.email-auth-hint {
  margin: -8px 0 18px;
  font-size: 0.84rem;
  color: var(--text2);
  line-height: 1.45;
  text-align: center;
}

.signin-prompt__btn--email i {
  font-size: 0.95rem;
}

.signin-prompt__btn--google {
  background: #fff;
  border-color: #dadce0;
  color: #3c4043;
}

.signin-prompt__btn--google i {
  font-size: 1rem;
}

[data-theme='dark'] .signin-prompt__btn--google {
  background: var(--surface2);
  border-color: var(--border);
  color: var(--text);
}

.signin-prompt__btn--apple {
  background: var(--text);
  border-color: var(--text);
  color: var(--surface);
}

[data-theme='dark'] .signin-prompt__btn--apple {
  background: #fff;
  border-color: #fff;
  color: #1a1714;
}

.signin-prompt__btn--apple i {
  font-size: 1.05rem;
}

.location-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: transparent;
  box-sizing: border-box;
}

.location-permission__card {
  position: relative;
  width: min(360px, 100%);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 24px 24px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
}

.location-permission__back {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: -4px 0 12px;
  padding: 6px 8px;
  border: none;
  background: transparent;
  color: var(--text2);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.location-permission__back:hover {
  color: var(--accent);
}

.location-permission__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.location-permission__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--accent-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--accent);
  margin: 0 auto 16px;
}

.location-permission__icon--blocked {
  background: rgba(192, 57, 43, 0.1);
  color: var(--red);
}

[data-theme='dark'] .location-permission__icon--blocked {
  background: rgba(224, 92, 75, 0.14);
}

.location-permission__title {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 8px;
}

.location-permission__text {
  font-size: 0.84rem;
  color: var(--text2);
  line-height: 1.5;
  max-width: 280px;
  margin: 0 auto;
}

.location-permission__instructions {
  text-align: left;
  margin-top: 4px;
}

.location-permission__instr-detected {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text2);
  margin: 0 0 6px;
  text-align: center;
}

.location-permission__instr-head {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}

.location-permission__instr-steps {
  margin: 0 0 4px;
  padding-left: 18px;
  font-size: 0.74rem;
  color: var(--text2);
  line-height: 1.45;
}

.location-permission__btn {
  margin-top: 16px;
  gap: 8px;
}

.location-permission__btn .spinner--btn {
  width: 16px;
  height: 16px;
  border-width: 2px;
  border-color: color-mix(in srgb, #fff 35%, transparent);
  border-top-color: #fff;
  flex-shrink: 0;
}

.location-permission__btn .js-location-grant-spinner.is-hidden {
  display: none;
}

.location-permission__btn.is-busy .js-location-grant-icon {
  display: none;
}

.location-card--blocked .location-permission__btn {
  margin-top: 20px;
}

.location-permission__how-to {
  margin-top: 14px;
  padding: 8px;
  border: none;
  background: transparent;
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.location-permission__how-to:hover {
  opacity: 0.85;
}

.visibility-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: transparent;
}

.visibility-card {
  position: relative;
  width: min(360px, 100%);
  height: auto;
  max-height: none;
  overflow: visible;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 28px 24px;
  box-shadow: var(--shadow-lg);
  box-sizing: border-box;
}

.visibility-card__close {
  position: absolute;
  top: 14px;
  right: 14px;
}

.visibility-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.01em;
  line-height: 1.35;
  margin-bottom: 16px;
  color: var(--text);
}

.visibility-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.visibility-option {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  padding: 10px 12px;
  border-radius: var(--radius);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  transition: border-color 0.15s, background 0.15s;
  font: inherit;
  color: inherit;
  text-align: left;
  width: 100%;
}

.visibility-option--selected {
  border-color: var(--accent);
  background: var(--accent-light);
}

.visibility-option--selected .visibility-option__icon {
  background: var(--accent);
  color: #fff;
}

.visibility-option__content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  text-align: left;
}

.visibility-option__title {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}

.visibility-option__hint {
  font-size: 0.74rem;
  color: var(--text2);
  line-height: 1.35;
}

.visibility-option__icon {
  width: 32px;
  height: 32px;
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-size: 0.9rem;
}

.visibility-stage--map {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: transparent;
  pointer-events: none;
}

.visibility-stage--map .visibility-card {
  pointer-events: auto;
}

.map-popup-stage {
  width: 100%;
  height: 100%;
  position: relative;
  background: var(--bg);
}

.map-popup {
  position: absolute;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  width: 300px;
  padding: 12px 12px 10px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.map-popup--map {
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  width: min(300px, calc(100% - 32px));
}

.map-popup--map .map-popup__services {
  flex: none;
  margin-bottom: 8px;
}

.map-popup__top {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-bottom: 8px;
  margin-right: 22px;
  flex-shrink: 0;
}

.map-popup__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  align-self: center;
  border: 2px solid transparent;
  box-sizing: border-box;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

.map-popup__info {
  flex: 1;
  min-width: 0;
}

.map-popup__name {
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--text);
  line-height: 1.2;
  margin-bottom: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-popup__profession {
  font-size: 0.68rem;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-popup__meta {
  font-size: 0.66rem;
  color: var(--text2);
  display: flex;
  align-items: center;
  gap: 3px;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
}

.map-popup__meta.list-meta-line {
  font-size: 0.66rem;
  line-height: 1.25;
}

.map-popup__meta i {
  color: var(--star);
  flex-shrink: 0;
}

.map-popup__rating,
.map-popup__no-reviews {
  color: var(--star);
}

.map-popup__meta .js-reviews-meta span:not(.map-popup__sep):not(.map-popup__rating),
.map-popup__meta .js-reviews-empty span:not(.map-popup__sep):not(.map-popup__no-reviews) {
  color: var(--star);
}

.map-popup__sep {
  color: var(--text2);
  opacity: 0.5;
  flex-shrink: 0;
}

.map-popup__sep::before {
  content: '\00B7';
}

.map-popup__dot {
  opacity: 0.4;
  flex-shrink: 0;
}

.map-popup__dot::before {
  content: '\00B7';
}

.map-popup__location .map-popup__dot {
  color: var(--text2);
  opacity: 0.35;
}

.map-popup__body {
  margin: 8px 0 10px;
}

.map-popup__section-label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text2);
  opacity: 0.88;
  margin: 0 0 4px;
}

.map-popup__services {
  font-size: 0.68rem;
  color: var(--text2);
  margin: 0;
  line-height: 1.35;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.map-popup__close {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 28px;
  height: 28px;
  font-size: 0.72rem;
}

.map-popup__expand {
  width: 28px;
  height: 28px;
  font-size: 0.72rem;
}

.map-popup__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  flex-shrink: 0;
}

.map-popup__location {
  font-size: 0.67rem;
  color: var(--text2);
  display: flex;
  align-items: center;
  gap: 3px;
  font-weight: 500;
  min-width: 0;
}

.map-popup__location-item {
  display: flex;
  align-items: center;
  gap: 3px;
  min-width: 0;
}

.map-popup__location-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-popup__location i {
  color: var(--accent);
  font-size: 0.62rem;
  flex-shrink: 0;
}

.discover-stage {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: transparent;
  overflow: auto;
  box-sizing: border-box;
}

.discover-stage__map {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(247, 245, 240, 0.45) 0%, rgba(247, 245, 240, 0.65) 100%),
    repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(26, 23, 20, 0.04) 31px, rgba(26, 23, 20, 0.04) 32px),
    repeating-linear-gradient(90deg, transparent, transparent 31px, rgba(26, 23, 20, 0.04) 31px, rgba(26, 23, 20, 0.04) 32px),
    linear-gradient(135deg, #ebe7df 0%, #f7f5f0 50%, #e8e3d9 100%);
}

[data-theme='dark'] .discover-stage__map {
  background:
    linear-gradient(180deg, rgba(23, 22, 26, 0.45) 0%, rgba(23, 22, 26, 0.65) 100%),
    repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(240, 237, 245, 0.05) 31px, rgba(240, 237, 245, 0.05) 32px),
    repeating-linear-gradient(90deg, transparent, transparent 31px, rgba(240, 237, 245, 0.05) 31px, rgba(240, 237, 245, 0.05) 32px),
    linear-gradient(135deg, #2a2830 0%, #211f26 50%, #1a1920 100%);
}

.discover-stage > .modal,
.discover-stage > .confirm-modal,
.discover-stage > .overlay {
  position: relative;
  z-index: 1;
}

.discover-stage .modal {
  width: min(480px, 100%);
  height: auto;
  min-height: var(--modal-min-h, 280px);
  max-height: min(var(--modal-max-h, 80vh), calc(100% - 40px));
}

/* Default modal shell = Hug + cap (min 280px, hug content, max 80vh, body scrolls). */
.modal {
  background: var(--surface);
  border-radius: var(--radius-lg);
  width: 480px;
  max-width: min(480px, 92vw);
  height: auto;
  min-height: var(--modal-min-h, 280px);
  max-height: var(--modal-max-h, 80vh);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border);
  position: relative;
}

/* Panel 80 — always 80vh; body scrolls (Domain picker only). */
.modal--domain-picker {
  height: var(--modal-max-h, 80vh);
  min-height: var(--modal-max-h, 80vh);
  max-height: var(--modal-max-h, 80vh);
}

/* Hug — content-sized; no min/max shell (Plans, compose, report). */
.modal--plans,
.modal--review-compose,
.report-modal {
  height: auto;
  min-height: 0;
  max-height: none;
}

.modal--plans .modal__body,
.modal--review-compose .modal__body,
.report-modal .modal__body {
  overflow: visible;
  flex: 0 1 auto;
}

/* Hug + cap — Discover, Account, Reviews, filters, sheets, forms. */
.modal--account,
.modal--account-reviews,
.modal--filters,
.modal--profile-form,
.modal--offer-form,
.modal--request-form,
.modal--photos-form,
.modal:has(.offer-sheet__stack),
.discover-stage .modal:not(.modal--filters) {
  height: auto;
  min-height: var(--modal-min-h, 280px);
  max-height: var(--modal-max-h, 80vh);
}

.modal__tabs {
  display: flex;
  align-items: center;
  padding: 0 6px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  background: var(--surface);
  height: 48px;
  gap: 2px;
}

.modal__tab {
  padding: 0 12px;
  height: 100%;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text2);
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  position: relative;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.modal__tab--active {
  color: var(--accent);
}

.modal__tab--active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
  border-radius: 2px 2px 0 0;
}

.modal__tab--pulse {
  color: var(--accent);
  animation: tab-pulse 2.4s ease-in-out infinite;
}

@keyframes tab-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}

.discover-tab__icon {
  font-size: 0.78rem;
  opacity: 0.85;
  margin-right: 4px;
}

.discover-tab__count {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text2);
  margin-left: 2px;
}

.modal__tab--active .discover-tab__count {
  color: var(--accent);
  opacity: 0.85;
}

.modal-tabs__close {
  margin-left: auto;
}

.icon-btn {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--text2);
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
  font-size: 0.9rem;
  position: static;
  transform: none;
}

.icon-btn:hover {
  background: var(--surface2);
  color: var(--text);
}

.js-modal-close,
.visibility-card__close,
.map-popup__close,
.map-popup__expand,
.js-lightbox-close,
.js-sheet-menu,
.icon-btn--surface {
  background: var(--surface2);
  color: var(--text2);
  border: none;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
  box-sizing: border-box;
}

.js-modal-close,
.visibility-card__close,
.js-lightbox-close,
.js-sheet-menu,
.icon-btn--surface {
  width: 32px;
  height: 32px;
  font-size: 0.9rem;
}

.js-modal-close:hover,
.visibility-card__close:hover,
.map-popup__close:hover,
.map-popup__expand:hover,
.js-lightbox-close:hover,
.js-sheet-menu:hover,
.icon-btn--surface:hover {
  background: var(--surface2);
  color: var(--text);
}

.modal__body {
  padding: var(--modal-pad);
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.modal__body,
.discover-scroll,
.discover-filters-body,
.js-reviews-content,
.offer-sheet__panels,
.searchable-select__list,
.app-scroll {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--text2) 40%, transparent) transparent;
}

.modal__body::-webkit-scrollbar,
.discover-scroll::-webkit-scrollbar,
.discover-filters-body::-webkit-scrollbar,
.js-reviews-content::-webkit-scrollbar,
.offer-sheet__panels::-webkit-scrollbar,
.searchable-select__list::-webkit-scrollbar,
.app-scroll::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.modal__body::-webkit-scrollbar-button,
.discover-scroll::-webkit-scrollbar-button,
.discover-filters-body::-webkit-scrollbar-button,
.js-reviews-content::-webkit-scrollbar-button,
.offer-sheet__panels::-webkit-scrollbar-button,
.searchable-select__list::-webkit-scrollbar-button,
.app-scroll::-webkit-scrollbar-button,
*::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
  border: none !important;
}

.modal__body::-webkit-scrollbar-button:start:decrement,
.modal__body::-webkit-scrollbar-button:end:increment,
.discover-scroll::-webkit-scrollbar-button:start:decrement,
.discover-scroll::-webkit-scrollbar-button:end:increment,
.discover-filters-body::-webkit-scrollbar-button:start:decrement,
.discover-filters-body::-webkit-scrollbar-button:end:increment,
.js-reviews-content::-webkit-scrollbar-button:start:decrement,
.js-reviews-content::-webkit-scrollbar-button:end:increment,
.offer-sheet__panels::-webkit-scrollbar-button:start:decrement,
.offer-sheet__panels::-webkit-scrollbar-button:end:increment,
.searchable-select__list::-webkit-scrollbar-button:start:decrement,
.searchable-select__list::-webkit-scrollbar-button:end:increment,
.app-scroll::-webkit-scrollbar-button:start:decrement,
.app-scroll::-webkit-scrollbar-button:end:increment,
*::-webkit-scrollbar-button:start:decrement,
*::-webkit-scrollbar-button:end:increment {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.modal__body::-webkit-scrollbar-track,
.discover-scroll::-webkit-scrollbar-track,
.discover-filters-body::-webkit-scrollbar-track,
.js-reviews-content::-webkit-scrollbar-track,
.offer-sheet__panels::-webkit-scrollbar-track,
.searchable-select__list::-webkit-scrollbar-track,
.app-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.modal__body::-webkit-scrollbar-thumb,
.discover-scroll::-webkit-scrollbar-thumb,
.discover-filters-body::-webkit-scrollbar-thumb,
.js-reviews-content::-webkit-scrollbar-thumb,
.offer-sheet__panels::-webkit-scrollbar-thumb,
.searchable-select__list::-webkit-scrollbar-thumb,
.app-scroll::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--text2) 35%, transparent);
  border-radius: 999px;
  border: 1px solid transparent;
  background-clip: padding-box;
}

.modal__body::-webkit-scrollbar-thumb:hover,
.discover-scroll::-webkit-scrollbar-thumb:hover,
.discover-filters-body::-webkit-scrollbar-thumb:hover,
.js-reviews-content::-webkit-scrollbar-thumb:hover,
.offer-sheet__panels::-webkit-scrollbar-thumb:hover,
.searchable-select__list::-webkit-scrollbar-thumb:hover,
.app-scroll::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--text2) 55%, transparent);
}

.modal--offer-form .modal__body,
.modal--request-form .modal__body {
  display: block;
}

.modal__body:has(> [data-panel="profile"]:not(.is-hidden)) {
  display: block;
}

.modal--offer-form .tag-field,
.modal--offer-form .schedule,
.modal--request-form .tag-field,
.modal--request-form .request-visible-for {
  flex-shrink: 0;
  min-height: min-content;
}

.modal__body--flush {
  padding: 0;
}

.modal__body--discover {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow: visible;
}

.discover-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--text2) 40%, transparent) transparent;
}

.discover-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 10px;
  flex-shrink: 0;
  overflow: visible;
}

.discover-toolbar__search {
  flex: 1;
  min-width: 0;
}

.search-wrap {
  position: relative;
}

.search-wrap--discover {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  height: 44px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  padding: 0;
  box-sizing: border-box;
}

.search-wrap--discover:focus-within {
  border-color: var(--accent);
}

.search-wrap--icon .search-wrap__icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text2);
  font-size: 0.82rem;
  pointer-events: none;
  z-index: 1;
}

.search-wrap--discover .search-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  padding: 0 8px 0 34px;
  border: none;
  background: transparent;
  height: 42px;
  margin: 0;
  box-sizing: border-box;
  font-family: var(--font);
  font-size: 0.84rem;
  color: var(--text);
  outline: none;
}

.search-wrap--discover:has(.search-clear:not(.is-hidden)) .search-input {
  padding-right: 32px;
}

.search-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  background: var(--border);
  color: var(--text2);
  display: grid;
  place-items: center;
  font-size: 0.55rem;
  cursor: pointer;
  padding: 0;
}

.filter-btn {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1.5px solid var(--border);
  border-radius: 50%;
  background: var(--surface2);
  color: var(--text2);
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
  font-size: 0.82rem;
  outline: none;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.filter-btn:focus {
  outline: none;
}

.filter-btn:hover {
  color: var(--accent);
  background: var(--accent-light);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.filter-btn:active {
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 18%, var(--surface2));
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
}

.filter-btn:focus-visible {
  outline: none;
  color: var(--accent);
  background: var(--accent-light);
  border-color: var(--accent);
}

.filter-btn--active {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: none;
}

.filter-btn--active:hover,
.filter-btn--active:active,
.filter-btn--active:focus-visible {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.discover-toolbar__divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

.discover-list {
  padding-bottom: 16px;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.discover-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  min-height: 96px;
  box-sizing: border-box;
}

.discover-row:last-child {
  border-bottom: none;
}

.discover-row__avatar {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  align-self: center;
  display: grid;
  place-items: center;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

.discover-row__avatar.avatar-letter {
  font-size: 0.62rem;
  font-weight: 800;
}

.discover-row__body {
  flex: 1;
  min-width: 0;
  min-height: 68px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: repeat(4, auto);
  column-gap: 10px;
  row-gap: 2px;
  align-content: center;
  align-self: center;
}

.discover-row__clip {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.discover-row__primary {
  grid-column: 1;
  grid-row: 1;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--text);
  line-height: 1.25;
}

.discover-row__accent {
  grid-column: 1;
  grid-row: 2;
  font-size: 0.72rem;
  color: var(--accent);
  font-weight: 600;
  line-height: 1.25;
}

.discover-row--request .discover-row__accent {
  font-size: 0.78rem;
}

.discover-row__meta {
  grid-column: 1 / -1;
  grid-row: 3;
  font-size: 0.74rem;
  color: var(--star);
  font-weight: 600;
  line-height: 1.25;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.discover-row__meta i {
  font-size: 0.62rem;
  color: var(--star);
}

.discover-row__detail {
  grid-column: 1 / -1;
  grid-row: 4;
  font-size: 0.76rem;
  color: var(--text2);
  line-height: 1.25;
  min-height: calc(0.76rem * 1.25);
  min-width: 0;
}

.discover-row--request .discover-row__detail {
  font-size: 0.78rem;
}

.discover-row__aside {
  grid-column: 2;
  justify-self: end;
  font-size: 0.72rem;
  color: var(--text2);
  font-weight: 500;
  white-space: nowrap;
  line-height: 1.25;
}

.discover-row__aside--r1 {
  grid-row: 1;
  align-self: end;
}

.discover-row__aside--r2 {
  grid-row: 2;
}

.offer-card--no-aside .discover-row__aside {
  display: none;
}

.discover-row--contact-simple .discover-row__body {
  display: flex;
  align-items: center;
  min-height: 68px;
}

.discover-row--contact-simple .discover-row__primary {
  flex: 1;
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
}

.discover-row--contact-simple .discover-row__accent,
.discover-row--contact-simple .discover-row__meta,
.discover-row--contact-simple .discover-row__detail,
.discover-row--contact-simple .discover-row__aside {
  display: none;
}

.discover-filters-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: transparent;
  overflow: auto;
  box-sizing: border-box;
}

.discover-filters-stage .modal--filters {
  width: min(480px, 100%);
  height: auto;
  min-height: var(--modal-min-h, 280px);
  max-height: min(var(--modal-max-h, 80vh), calc(100% - 40px));
  flex-shrink: 0;
}

.modal--filters {
  display: flex;
  flex-direction: column;
}

.modal__body--discover-filters {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.discover-filters-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  min-width: 0;
  padding: 14px var(--modal-pad) 8px;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--text2) 40%, transparent) transparent;
}

.discover-filter-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.discover-filter-section__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text2);
}

.discover-filter-section__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: 100%;
}

.discover-filter-chip {
  flex: 1 1 0;
  min-width: 0;
  height: 34px;
  padding: 0 8px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}

.discover-filter-chip--active {
  border-color: var(--accent);
  background: var(--accent-light);
  color: var(--accent);
}

.domain-picker-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface2);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font-family: var(--font);
}

.domain-picker-btn--filter {
  margin-bottom: 0;
}

.domain-picker-btn__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--surface);
  color: var(--accent);
  flex-shrink: 0;
  font-size: 1.05rem;
}

.domain-picker-btn__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.domain-picker-btn__label {
  font-weight: 700;
  font-size: 0.88rem;
  line-height: 1.25;
  color: var(--text);
}

.domain-picker-btn__hint {
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--text2);
  line-height: 1.3;
}

.domain-picker-btn__hint:empty {
  display: none;
}

.domain-picker-btn__chev {
  color: var(--text2);
  font-size: 0.72rem;
  flex-shrink: 0;
}

.discover-filters-footer {
  flex-shrink: 0;
  padding: 8px var(--modal-pad) 16px;
  background: transparent;
}

.discover-filters-clear {
  width: 100%;
  height: 44px;
  border: 1.5px solid var(--accent);
  border-radius: var(--radius-pill);
  background: var(--accent-light);
  color: var(--accent);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

[data-theme='dark'] .discover-filters-clear {
  background: var(--accent-light);
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  color: var(--accent);
}

.discover-filters-clear:active {
  opacity: 0.88;
}

.sheet-header-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--bg);
  box-sizing: border-box;
}

.sheet-header-preview {
  width: min(480px, 100%);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.sheet-header-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 10px;
  align-items: center;
  height: 88px;
  min-height: 88px;
  max-height: 88px;
  box-sizing: border-box;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  flex-shrink: 0;
}

.sheet-header-preview .sheet-header-bar {
  border-bottom: none;
}

.sheet-header-bar__slot {
  width: 44px;
  display: flex;
  align-items: center;
}

.sheet-header-bar__slot--right {
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 2px;
  align-self: stretch;
}

.sheet-header-bar__menu-wrap {
  position: relative;
}

.sheet-header-bar__menu-wrap .sheet-menu,
.sheet-header-bar__menu-wrap .profile-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: auto;
  z-index: var(--z-menu);
}

.sheet-header-bar__main {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  min-height: 50px;
}

.offer-sheet__avatar,
.request-detail__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex-shrink: 0;
  align-self: center;
  display: grid;
  place-items: center;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
  border: 2px solid transparent;
  box-sizing: border-box;
}

.offer-sheet__avatar.avatar-letter,
.request-detail__avatar.avatar-letter {
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.offer-sheet__info {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.offer-sheet__header-lines {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(3, auto);
  row-gap: 2px;
  align-content: center;
}

.offer-sheet__name {
  grid-column: 1;
  grid-row: 1;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  margin-bottom: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.3;
}

.offer-sheet__profession {
  grid-column: 1;
  grid-row: 2;
  font-size: 0.9rem;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.3;
}

.offer-sheet__rating-line {
  grid-column: 1;
  grid-row: 3;
}

.list-meta-line {
  color: var(--star);
  font-weight: 600;
  font-size: 0.71rem;
  line-height: 1.25;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.list-meta-line:not(.list-meta-line--flex) {
  display: block;
}

.list-meta-line--flex {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
}

.rating-meta {
  font-size: 0.71rem;
  color: var(--star);
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: nowrap;
  white-space: nowrap;
  margin-top: 0;
  overflow: hidden;
}

.rating-meta i,
.rating-meta__value,
.rating-meta__since,
.rating-meta__no-reviews,
.rating-meta__reviews {
  color: var(--star);
}

.rating-meta__sep {
  color: var(--text2);
  opacity: 0.5;
  flex-shrink: 0;
}

.rating-meta__sep::before {
  content: '\00b7';
}

.rating-meta i {
  font-size: 0.62rem;
}

.request-detail__header {
  flex-shrink: 0;
}

.request-detail__name {
  grid-column: 1;
  grid-row: 1;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  margin: 0 0 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.3;
}

.request-detail__title {
  grid-column: 1;
  grid-row: 2;
  font-size: 0.9rem;
  color: var(--accent);
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.request-detail__sub.list-meta-line {
  grid-column: 1;
  grid-row: 3;
  min-width: 0;
}

.icon-btn--block {
  background: var(--surface2);
}

.icon-btn--active {
  color: var(--red);
  background: color-mix(in srgb, var(--red) 12%, var(--surface2));
}

.icon-btn--active:hover {
  color: var(--red);
  background: color-mix(in srgb, var(--red) 16%, var(--surface2));
}

.modal-stack {
  display: flex;
  flex-direction: column;
  gap: var(--modal-pad);
  padding: var(--modal-pad);
  box-sizing: border-box;
}

.offer-sheet__stack {
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
}

.offer-sheet__actions {
  display: flex;
  gap: 4px;
  flex-wrap: nowrap;
  flex-shrink: 0;
}

.offer-sheet__actions .action-btn {
  flex: 1;
  min-width: 0;
  justify-content: center;
  padding: 0 4px;
  font-size: 0.66rem;
  gap: 3px;
}

.offer-sheet__actions .action-btn i {
  font-size: 0.66rem;
}

.offer-sheet__panels {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.offer-sheet__panel {
  min-height: 0;
}

.offer-sheet__panel[data-panel="contact"] {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

.offer-sheet__panel[data-panel="photos"] {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  aspect-ratio: 1 / 1;
  max-height: calc(var(--modal-max-h, 80vh) - 180px);
}

.offer-sheet__panel[data-panel="reviews"],
.modal--account-reviews .offer-sheet__reviews-embed {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  width: 100%;
  height: auto;
  max-height: calc(var(--modal-max-h, 80vh) - 180px);
  box-sizing: border-box;
}

.offer-sheet__panel[data-panel="photos"] .panel-state--fill,
.offer-sheet__photos-embed > .js-offer-photos-empty,
.offer-sheet__photos-embed > .js-offer-photos-grid {
  flex: 1 1 auto;
  min-height: 0;
}

.js-offer-photos-empty {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  align-self: stretch;
  width: 100%;
  min-height: 0;
}

.modal--account-reviews .modal__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.detail-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.detail-card__row {
  padding: 11px 13px;
}

.detail-card__row:not(:first-child) {
  border-top: 1px solid var(--border);
  padding-top: 14px;
}

.detail-card__label {
  font-size: 0.75rem;
  color: var(--text);
  font-weight: 700;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.detail-card__label i {
  color: var(--accent);
  font-size: 0.76rem;
  width: 13px;
  text-align: center;
  flex-shrink: 0;
}

.detail-card__value {
  font-size: 0.86rem;
  color: var(--text2);
  font-weight: 500;
  overflow-wrap: break-word;
  word-break: break-word;
  padding-left: 19px;
}

.detail-card__value--domain {
  color: var(--accent);
  font-weight: 600;
}

.detail-card__value--full {
  white-space: pre-wrap;
}

.detail-card__value .tag-list {
  padding-left: 0;
  margin-left: 0;
}

.request-detail__text {
  font-size: 0.86rem;
  color: var(--text2);
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.detail-card__value a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}

.detail-card__contact-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding-left: 0;
}

.detail-card__contact-actions .action-btn {
  background: var(--surface);
  border: 1.5px solid var(--border);
  color: var(--text2);
}

.detail-card__value .contact-schedule-card {
  border: none;
  padding: 0;
  background: transparent;
  margin-left: -19px;
  width: calc(100% + 19px);
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-left: 0;
  margin-left: 0;
}

.tag-list__item {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--tag-blue) 35%, var(--border));
  background: color-mix(in srgb, var(--tag-blue) 12%, var(--surface));
  color: var(--tag-blue);
  font-size: 0.72rem;
  font-weight: 600;
}

.contact-schedule-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
}

.contact-schedule-card--always {
  gap: 8px;
}

.contact-schedule__legend--always {
  margin-top: 2px;
}

.contact-schedule__days--always {
  gap: 2px;
}

.contact-schedule__days--always .contact-schedule__day {
  justify-content: space-between;
}

.contact-schedule__days--always .contact-schedule__day-name {
  min-width: 90px;
}

.contact-schedule__day-hours--anytime {
  color: var(--text2);
  font-weight: 500;
  opacity: 0.72;
  text-align: right;
}

.contact-schedule__days {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.contact-schedule__day {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.84rem;
  gap: 12px;
}

.contact-schedule__day--today .contact-schedule__day-name,
.contact-schedule__day--today .contact-schedule__day-hours {
  color: var(--accent);
}

.contact-schedule__day-name {
  color: var(--text2);
  font-weight: 600;
  min-width: 90px;
}

.contact-schedule__day-hours {
  color: var(--text2);
  text-align: right;
}

.contact-schedule__day-hours--closed {
  opacity: 0.7;
}

.contact-schedule__legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text);
  line-height: 1.4;
}

.contact-schedule__legend-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.contact-schedule__legend-label {
  color: var(--text2);
  font-weight: 600;
  flex: 1;
  min-width: 0;
}

.contact-schedule__icons {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--accent);
  flex-shrink: 0;
}

.schedule__always-open {
  font-size: 0.84rem;
  color: var(--green);
  font-weight: 600;
}

.reviews-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.review-item {
  display: block;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  min-height: 0;
}

.review-item__card {
  display: flex;
  flex-direction: column;
  padding: 12px 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-sizing: border-box;
  background: var(--surface2);
  min-width: 0;
}

.review-item__head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  position: relative;
}

.review-item__meta {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, auto);
  row-gap: 2px;
  align-content: center;
  transform: translateY(-3px);
}

.review-item__head > .icon-btn {
  flex-shrink: 0;
  align-self: center;
}

.review-item__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
  flex-shrink: 0;
  align-self: center;
  display: grid;
  place-items: center;
}

.review-item__avatar.avatar-letter {
  font-size: 0.72rem;
  font-weight: 800;
}

.review-item__line {
  min-width: 0;
}

.review-item__line--stars {
  grid-row: 2;
  min-width: 0;
}

.review-item__line--comment {
  margin-top: 8px;
  margin-left: calc(40px + 12px);
  min-width: 0;
}

.review-item__reply {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  min-width: 0;
}

.review-item__reply.is-hidden {
  display: none;
}

.review-item__reply-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  position: relative;
}

.review-item__reply-icon {
  color: var(--accent);
  font-size: 0.72rem;
  flex-shrink: 0;
}

.review-item__reply-title {
  flex: 1;
  min-width: 0;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.review-item__reply-sep {
  margin: 0 0.35em;
  color: var(--text2);
  opacity: 0.5;
}

.review-item__reply-sep::before {
  content: '\00b7';
}

.review-item__reply-text {
  font-size: 0.84rem;
  color: var(--text2);
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  margin-left: calc(40px + 12px);
  padding-left: 0;
}

.profile-menu {
  width: 210px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  padding: 6px 0;
}

.overlay > .profile-menu--review {
  position: absolute;
  z-index: var(--z-menu);
  background: var(--surface);
}

.review-item__head .js-review-menu,
.review-item__reply-head .js-reply-menu {
  background: var(--surface);
  color: var(--text2);
}

.review-item__head .js-review-menu:hover,
.review-item__reply-head .js-reply-menu:hover {
  background: var(--surface);
  color: var(--text);
}

.profile-menu__item {
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: transparent;
  font-family: var(--font);
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  color: var(--text);
}

.profile-menu__item i {
  width: 16px;
  font-size: 0.9rem;
  color: var(--text2);
}

.profile-menu__item--accent {
  color: var(--accent);
}

.profile-menu__item--accent i {
  color: var(--accent);
}

.profile-menu__item--pulse {
  animation: tab-pulse 2.4s ease-in-out infinite;
}

.profile-menu__item--green {
  color: var(--green);
}

.profile-menu__item--green i {
  color: var(--green);
}

.profile-menu__item--gold {
  color: var(--star);
}

.profile-menu__item--gold i {
  color: var(--star);
}

.profile-menu__item--sign-out {
  color: var(--tag-blue);
}

.profile-menu__item--sign-out i {
  color: var(--tag-blue);
}

.profile-menu__item--danger {
  color: var(--red);
}

.profile-menu__item--danger i {
  color: var(--red);
}

.review-item__name {
  grid-row: 1;
  flex: 1;
  min-width: 0;
  display: block;
  font-weight: 700;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.84rem;
  line-height: 1.25;
}

.review-item__stars-line {
  color: var(--star);
  font-weight: 600;
  font-size: inherit;
  line-height: inherit;
  flex-shrink: 0;
}

.review-item__stars-line i {
  margin-right: 1px;
  font-size: 0.62rem;
}

.review-item__meta-sep {
  margin: 0 0.35em;
  color: var(--text2);
  opacity: 0.5;
  flex-shrink: 0;
}

.review-item__meta-sep::before {
  content: '\00b7';
}

.review-item__time {
  font-size: inherit;
  color: var(--star);
  font-weight: 600;
  white-space: nowrap;
  line-height: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.review-item__text {
  font-size: 0.84rem;
  color: var(--text2);
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: break-word;
}

.offer-sheet__visitor-photos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 4px 0 8px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.offer-sheet__visitor-photo {
  aspect-ratio: 1;
  border-radius: var(--radius);
  background-size: cover;
  background-position: center;
  background-color: var(--surface2);
  border: none;
  padding: 0;
  cursor: pointer;
  min-height: 0;
}

.modal--review-compose {
  width: min(480px, 100%);
}

.modal--review-compose .reviews-compose-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.modal--review-compose .btn--spaced {
  margin-bottom: 0;
}

.modal--review-compose .review-input-wrap {
  display: block;
  width: 100%;
}

.modal--review-compose textarea.js-compose-input {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--form-rows-3);
  field-sizing: content;
}

.reviews-compose-panel .field-label i {
  color: var(--accent);
  font-size: 0.72rem;
  width: 12px;
  text-align: center;
}

.field-label {
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text2);
  margin-bottom: 6px;
}

.modal--profile-form .field-label:has(+ .phone-split--form) {
  margin-top: 16px;
}

.field-label + .star-rating {
  margin-top: 0;
}

.star-rating {
  display: flex;
  gap: 6px;
  margin: 4px 0 14px;
}

.star-rating__btn {
  font-size: 1.35rem;
  cursor: pointer;
  background: none;
  border: none;
  line-height: 1;
  color: var(--border);
  padding: 0;
}

.star-rating__btn--active {
  color: var(--star);
}

.review-input-wrap {
  position: relative;
  margin-bottom: 6px;
}

.form-field {
  width: 100%;
  border-radius: var(--radius);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.86rem;
  outline: none;
}

textarea.form-field {
  padding: 10px 14px;
  resize: none;
  min-height: 60px;
  display: block;
}

textarea.form-field--rows-3 {
  min-height: var(--form-rows-3);
}

.review-input-counter {
  position: absolute;
  bottom: 8px;
  right: 10px;
  font-size: 0.7rem;
  color: var(--text2);
  pointer-events: none;
  font-weight: 600;
}

.btn--spaced {
  margin-top: 12px;
  margin-bottom: 16px;
}

.field-label i {
  color: var(--accent);
  font-size: 0.72rem;
  width: 12px;
  text-align: center;
}

input.form-field,
select.form-field {
  height: var(--form-rows-1);
  padding: 0 14px;
  box-sizing: border-box;
}

textarea.form-field--rows-2 {
  min-height: var(--form-rows-2);
}

.input-wrap {
  position: relative;
  margin-bottom: 8px;
}

.input-counter {
  position: absolute;
  bottom: 8px;
  right: 10px;
  font-size: 0.65rem;
  color: var(--text2);
  pointer-events: none;
}

.profile-edit__avatar-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 6px 0 22px;
}

.profile-edit__avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
  border: 2px solid transparent;
  box-sizing: border-box;
  display: grid;
  place-items: center;
}

.profile-edit__avatar.avatar-letter {
  font-size: 1.6rem;
  font-weight: 800;
}

.profile-edit__avatar-action {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-align: center;
}

.phone-split {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

.phone-split--form {
  width: 100%;
  flex-wrap: nowrap;
}

.phone-split--form > .phone-split__dial,
.phone-split--form > .phone-split__number {
  flex: 0 0 calc(50% - 4px);
  max-width: calc(50% - 4px);
  min-width: 0;
}

.field-select-compact {
  width: 5.25rem;
  min-width: 5.25rem;
  max-width: 5.25rem;
  flex-shrink: 0;
  height: 40px;
  padding-left: 8px;
  padding-right: 1.35rem;
  font-size: 0.86rem;
}

.phone-split--form .phone-split__dial.field-select-compact {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.phone-split--form .phone-split__number.form-field {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.modal-form-footer {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  flex-shrink: 0;
  margin-top: 20px;
  padding-top: 4px;
}

.modal-form-footer--split {
  grid-template-columns: 1fr 1fr;
}

.modal-action-btn {
  height: 44px;
  padding: 0 18px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 700;
  font-family: var(--font);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
}

.modal-action-btn--primary {
  background: var(--accent-light);
  border-color: var(--accent);
  color: var(--accent);
}

.modal-action-btn--danger {
  background: color-mix(in srgb, var(--red) 12%, var(--surface));
  border-color: var(--red);
  color: var(--red);
}

[data-theme='dark'] .modal-action-btn--primary {
  background: var(--accent-light);
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
}

[data-theme='dark'] .modal-action-btn--danger {
  background: color-mix(in srgb, var(--red) 16%, var(--surface));
  border-color: color-mix(in srgb, var(--red) 70%, var(--border));
  color: var(--red);
}

.modal-action-btn i {
  font-size: 0.76rem;
}

.modal-saving {
  position: absolute;
  inset: 0;
  z-index: var(--z-extra);
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--surface) 78%, transparent);
  backdrop-filter: blur(2px);
  border-radius: inherit;
  pointer-events: auto;
}

.modal-saving.is-hidden {
  display: none;
}

.modal-action-btn.is-busy,
.btn.is-busy {
  opacity: 0.85;
  pointer-events: none;
}

.account-stage {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 0 20px;
  background: var(--bg);
  overflow: auto;
  box-sizing: border-box;
}

.account-stage::before,
.account-stage::after {
  content: '';
  flex: 1 0 20px;
  width: 100%;
  min-height: 20px;
  pointer-events: none;
}

.account-stage .modal {
  width: min(480px, 100%);
  height: auto;
  min-height: var(--modal-min-h, 280px);
  max-height: min(var(--modal-max-h, 80vh), calc(100% - 40px));
  flex-shrink: 0;
}

.account-profile-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--bg);
  overflow: auto;
  box-sizing: border-box;
}

.account-profile-stage__content {
  width: min(480px, 100%);
}

.profile-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: visible;
}

.profile-card__top {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 13px;
  min-width: 0;
  position: relative;
}

.profile-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  flex-shrink: 0;
}

.profile-card__col {
  flex: 1;
  min-width: 0;
}

.profile-card__name {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}

.profile-card__profession {
  font-size: 0.82rem;
  color: var(--accent);
  font-weight: 600;
}

.profile-card__rating-line {
  margin-top: 2px;
}

.profile-card__actions {
  flex-shrink: 0;
}

.profile-card__menu-wrap {
  position: relative;
}

.profile-card__menu-wrap .profile-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: var(--z-menu);
}

.overlay > .sheet-menu,
.modal > .profile-menu--account,
.overlay > .profile-menu--account {
  position: absolute;
  z-index: var(--z-menu);
}

.profile-card__field {
  padding: 11px 13px;
  border-top: 1px solid var(--border);
}

.profile-card__label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}

.profile-card__label i {
  color: var(--accent);
  width: 13px;
  text-align: center;
}

.profile-card__value {
  display: block;
  font-size: 0.86rem;
  color: var(--text2);
  font-weight: 500;
  padding-left: 19px;
  overflow-wrap: break-word;
}

.profile-card__value--domain {
  color: var(--accent);
  font-weight: 600;
}

.profile-card__value--full {
  white-space: pre-wrap;
}

.profile-card__value--link {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}

.profile-card__value .tag-list {
  padding-left: 0;
  margin-left: 0;
}

.profile-card__value .contact-schedule-card {
  border: none;
  padding: 0;
  background: transparent;
}

.profile-card__cta-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

.btn--profile-cta {
  background: var(--accent-light);
  color: var(--accent);
  border: 1.5px solid var(--accent);
  font-weight: 700;
}

[data-theme='dark'] .btn--profile-cta {
  background: var(--accent-light);
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
}

.profile-card__cta-row .btn--profile-cta,
.js-billing-portal.btn--profile-cta,
.analytics-locked__upgrade.btn--profile-cta {
  width: 100%;
}

.profile-card__cta {
  width: 100%;
  padding: 10px 8px;
  font-size: 0.74rem;
  gap: 6px;
}

.profile-card__cta i {
  font-size: 0.76rem;
}

.modal__body > [data-panel] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.modal__body > [data-panel="profile"] {
  display: block;
  flex: none;
  min-height: auto;
  box-sizing: border-box;
}

[data-panel="profile"] .btn--spaced,
.js-billing-portal.btn--spaced {
  margin-top: var(--modal-pad);
  margin-bottom: 0;
}

.modal__body > [data-panel].is-hidden {
  display: none !important;
}

.contacts-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.contacts-tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  margin: -4px -4px 0;
}

.contacts-tab {
  flex: 1;
  height: 44px;
  border: none;
  background: transparent;
  color: var(--text2);
  font-size: 0.86rem;
  font-weight: 600;
  font-family: var(--font);
  cursor: pointer;
  position: relative;
}

.contacts-tab--active {
  color: var(--accent);
}

.contacts-tab--active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
}

.contacts-panels {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.contacts-panel {
  padding-top: 8px;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.contacts-panel.is-hidden {
  display: none !important;
}

.contacts-panel .js-contact-list,
.contacts-panel .js-blocked-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.discover-row--saved,
.discover-row--contact-simple {
  position: relative;
  padding-right: 44px;
}

.contact-remove-btn {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: var(--surface2);
  color: var(--text2);
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 2;
}

.contact-remove-btn:hover {
  background: color-mix(in srgb, var(--red) 14%, var(--surface2));
  color: var(--red);
}

.settings-group + .settings-group {
  margin-top: 18px;
}

.settings-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.settings-section-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.settings-toggle__label {
  display: block;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--text2);
  margin-bottom: 7px;
}

.theme-toggle {
  display: flex;
  gap: 8px;
}

.theme-toggle__btn {
  flex: 1;
  height: 38px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.theme-toggle__btn--active {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent-light);
}

.settings-link-row {
  padding: 7px 0;
  border: none;
  background: transparent;
}

.settings-link-row:last-child {
  padding-bottom: 0;
}

.settings-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--text2);
  text-decoration: none;
  background: transparent;
  border: none;
  font-family: var(--font);
  cursor: pointer;
}

.settings-link i {
  color: var(--text2);
  font-size: 0.7rem;
  opacity: 0.5;
}

.settings-link--btn {
  text-align: left;
}

.settings-store-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.settings-store-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 52px;
  padding: 10px 8px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface2);
  color: var(--text);
  font-family: var(--font);
  cursor: not-allowed;
  text-align: center;
}

.settings-store-btn__label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text);
}

.settings-store-btn__hint {
  font-size: 0.68rem;
  color: var(--text2);
  font-weight: 600;
}

.analytics-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.analytics-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 16px;
  box-sizing: border-box;
}

.analytics-body--busy {
  pointer-events: none;
  opacity: 0.72;
}

.analytics-locked {
  position: relative;
  min-height: 0;
  padding: 16px;
  box-sizing: border-box;
}

.analytics-locked .analytics-body,
.analytics-locked .analytics-card,
.analytics-locked .analytics-year-stack {
  pointer-events: none;
  user-select: none;
}

.analytics-locked .analytics-body {
  padding: 0;
  min-height: 0;
}

.analytics-locked__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 16px;
  background: rgba(247, 245, 240, 0.42);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: none;
  box-sizing: border-box;
}

[data-theme='dark'] .analytics-locked__overlay {
  background: rgba(20, 20, 20, 0.48);
}

.analytics-locked__overlay .analytics-locked__upgrade {
  pointer-events: auto;
  box-shadow: var(--shadow-lg);
}

.analytics-card {
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}

.analytics-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 8px;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  user-select: none;
}

.analytics-card__header i {
  color: var(--text2);
  font-size: 0.72rem;
  transition: transform 0.15s ease;
}

.analytics-card--open .analytics-card__header i {
  transform: rotate(90deg);
}

.analytics-card__body {
  display: none;
  padding: 0;
}

.analytics-card--open .analytics-card__body {
  display: block;
}

.analytics-year-combined {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.analytics-hint {
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--text2);
  font-weight: 500;
}

.analytics-metrics {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.analytics-metrics__item {
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  text-align: left;
  font-family: var(--font);
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--text2);
  cursor: pointer;
}

.analytics-metrics__item:disabled {
  cursor: default;
}

.analytics-metrics__item--active {
  color: var(--accent);
  font-weight: 600;
}

.analytics-metrics__item strong {
  font-weight: 700;
  color: var(--text);
}

.analytics-metrics__item--active strong {
  color: var(--accent);
}

.analytics-graph__canvas {
  width: 100%;
  overflow: visible;
}

.analytics-graph__svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

.analytics-graph__dots {
  pointer-events: none;
}

.analytics-graph__dots .analytics-graph__point {
  pointer-events: auto;
}

.analytics-graph__point {
  cursor: pointer;
}

.analytics-graph__dot {
  fill: var(--surface);
  stroke: var(--accent);
  stroke-width: 2;
}

.analytics-graph__point--active .analytics-graph__dot {
  fill: var(--accent);
  stroke-width: 0;
}

.analytics-graph__dot-value {
  font-size: 9px;
  font-weight: 700;
  fill: var(--text2);
  pointer-events: none;
}

.analytics-graph__point--active .analytics-graph__dot-value {
  fill: var(--accent);
  font-size: 10px;
  font-weight: 800;
}

.analytics-graph__labels {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 0;
  margin-top: 8px;
  padding: 0 4px;
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--text2);
  text-align: center;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 0;
  padding: 32px 24px;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.empty-state__icon {
  font-size: 2rem;
  color: var(--border);
  opacity: 1;
}

.empty-state__icon i {
  font-size: inherit;
  color: inherit;
}

.empty-state__text {
  font-size: 0.86rem;
  font-weight: 400;
  color: var(--text2);
  line-height: 1.5;
  margin: 0;
}

.marker--user {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  box-sizing: border-box;
  background: var(--accent);
  border: none;
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent),
    0 1px 4px rgba(0, 0, 0, 0.25);
}

.marker--other {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-sizing: border-box;
  background-size: cover;
  background-position: center;
  border: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  position: relative;
}

.marker-badge {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--surface, #fff);
  color: var(--accent);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  font-size: 0.55rem;
  line-height: 1;
}

.marker-badge i {
  font-size: inherit;
  color: inherit;
}

.marker--other.avatar-letter {
  display: grid;
  place-items: center;
  font-size: 0.95rem;
  font-weight: 800;
  color: #fff;
  text-transform: uppercase;
}

.marker-cluster {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-sizing: border-box;
  background: var(--accent);
  border: none;
  display: grid;
  place-items: center;
  font-size: 0.82rem;
  font-weight: 800;
  color: #fff;
  position: relative;
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent),
    0 2px 8px rgba(0, 0, 0, 0.2);
}

.marker-cluster span {
  position: relative;
  z-index: 1;
  color: #fff;
}

.marker-cluster--pulse::before,
.marker--user::before {
  display: none;
}

.map-chrome,
#mapChrome {
  position: fixed;
  inset: 0;
  z-index: var(--z-chrome);
  pointer-events: none;
  overflow: visible;
}

.map-top-bar {
  position: absolute;
  top: 16px;
  left: 0;
  right: 0;
  padding-inline: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
  overflow: visible;
}

.map-top-bar > * {
  pointer-events: auto;
}

.map-bottom-right {
  position: absolute;
  bottom: 16px;
  right: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
}

.map-bottom-right > * {
  pointer-events: auto;
}

.fab {
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font);
  box-shadow: var(--shadow-lg);
}

.fab--discover {
  height: 44px;
  padding: 0 14px 0 12px;
  border-radius: var(--radius-pill);
  background: var(--surface);
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 700;
  gap: 6px;
  overflow: visible;
}

.fab--discover i {
  color: var(--accent);
}

.fab--discover-pulse {
  animation: discover-fab-pulse 2.4s ease-in-out infinite;
}

@keyframes discover-fab-pulse {
  0%,
  100% {
    box-shadow: var(--shadow-lg), 0 0 0 0 transparent;
    transform: scale(1);
  }
  50% {
    box-shadow: var(--shadow-lg), 0 0 0 8px color-mix(in srgb, var(--accent) 22%, transparent);
    transform: scale(1.03);
  }
}

.fab--account {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  background: var(--surface);
  color: var(--accent);
  font-size: 1rem;
  font-weight: 800;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
  overflow: hidden;
  flex-shrink: 0;
}

.fab--account.avatar-letter {
  color: #fff;
  font-size: 0.82rem;
}

.fab--account.has-avatar {
  background-color: var(--surface);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: transparent;
}

.fab--visibility,
.fab--recenter {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-pill);
  background: var(--surface);
  font-size: 1.05rem;
}

.fab--recenter,
.fab--recenter i {
  color: var(--accent);
}

.fab--visibility-visible,
.fab--visibility-visible i {
  color: var(--green);
}

.fab--visibility-hidden,
.fab--visibility-hidden i {
  color: var(--red);
}

.fab__label {
  white-space: nowrap;
}

.photo-grid-wrap {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.photo-grid__cell {
  aspect-ratio: 1;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface2);
  border: 1.5px solid var(--border);
  cursor: pointer;
  position: relative;
  padding: 0;
  font: inherit;
  box-sizing: border-box;
  transition: border-color .15s ease, box-shadow .15s ease, outline-color .15s ease;
}

.photo-grid__cell:hover:not(.photo-grid__cell--loading):not(.photo-grid__cell--locked) {
  border-color: color-mix(in srgb, var(--text2) 55%, var(--border));
}

.photo-grid__thumb {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  user-select: none;
}

.photo-grid__cell--loading {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: default;
  pointer-events: none;
}

.photo-grid__cell--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: var(--text2);
  border: 1.5px solid var(--border);
  cursor: default;
}

.photo-grid__cell--empty:hover {
  border-color: var(--border);
}

.photo-grid__cell--selected,
.photo-grid__cell--selected:hover {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 2px var(--accent);
  outline: none;
}

.photo-grid-actions {
  display: flex;
  gap: 8px;
  margin: 0;
  flex-wrap: nowrap;
  justify-content: center;
}

.photo-grid-actions .photo-grid-action-btn {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  margin-top: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  border-radius: var(--radius);
  border: 1.5px solid var(--border);
  background: var(--surface2);
  color: var(--text2);
  cursor: pointer;
  font-family: var(--font);
  transition: border-color .15s ease, background .15s ease, color .15s ease, transform .12s ease;
}

.photo-grid-actions .photo-grid-action-btn:hover {
  transform: translateY(-1px);
}

.photo-grid-actions .photo-grid-action-btn--accent.photo-grid-action-btn--active,
.photo-grid-actions .photo-grid-action-btn--accent:hover {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 28%, var(--surface2));
  color: var(--accent);
}

.photo-grid-actions .photo-grid-action-btn--success.photo-grid-action-btn--active,
.photo-grid-actions .photo-grid-action-btn--success:hover {
  border-color: var(--green);
  background: color-mix(in srgb, var(--green) 28%, var(--surface2));
  color: var(--green);
}

.photo-grid-actions .photo-grid-action-btn--danger.photo-grid-action-btn--active,
.photo-grid-actions .photo-grid-action-btn--danger:hover {
  border-color: var(--red);
  background: color-mix(in srgb, var(--red) 26%, var(--surface2));
  color: var(--red);
}

.app {
  width: 100%;
  height: 100%;
  position: relative;
}

#mapCanvas {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: var(--z-map);
}

#mapCanvas.leaflet-container,
#mapCanvas.leaflet-container a {
  -webkit-tap-highlight-color: transparent !important;
}

#mapCanvas.leaflet-zoom-anim .leaflet-tile,
#mapCanvas.leaflet-pan-anim .leaflet-tile {
  transition: none !important;
  opacity: 1 !important;
}

#mapCanvas .leaflet-bottom.leaflet-left {
  margin: 0 0 calc(10px + env(safe-area-inset-bottom)) 10px;
}

#mapCanvas .leaflet-control-attribution {
  font-size: 0.58rem;
  background: rgba(247, 245, 240, 0.78);
  color: var(--text2);
  margin: 0;
  padding: 2px 6px;
  border-radius: 6px;
  white-space: nowrap;
}

[data-theme='dark'] #mapCanvas .leaflet-control-attribution {
  background: rgba(23, 22, 26, 0.78);
}

#mapCanvas .leaflet-control-attribution a {
  color: var(--accent);
}

#mapPopupRoot {
  position: absolute;
  inset: 0;
  z-index: var(--z-popup);
  pointer-events: none;
}

#mapPopupRoot > * {
  pointer-events: none;
}

#mapPopupRoot .map-popup {
  pointer-events: auto;
}

.map-popup-stage {
  background: transparent;
  pointer-events: none;
}

.map-popup-stage .map-popup {
  pointer-events: auto;
}

#overlayRoot {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  pointer-events: none;
}

#overlayRoot > * {
  pointer-events: auto;
}

.overlay.overlay--auth,
.overlay.overlay--onboarding,
.overlay.overlay--signin,
.overlay.overlay--location {
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
}

.overlay--auth > .intent-stage,
.overlay--auth > .signin-prompt-stage,
.overlay--auth > .email-auth-stage,
.overlay--onboarding > .intent-stage,
.overlay--signin > .signin-prompt-stage,
.overlay--location > .location-stage {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  background: transparent;
}

.map-marker-icon {
  background: transparent !important;
  border: none !important;
  overflow: visible !important;
}

.leaflet-cluster-anim .leaflet-marker-icon,
.leaflet-cluster-anim .leaflet-marker-shadow {
  transition: none !important;
}

.overlay {
  position: fixed;
  inset: 0;
  background: rgba(26, 23, 20, 0.48);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-overlay);
  padding: 20px;
}

[data-theme='dark'] .overlay {
  background: rgba(0, 0, 0, 0.55);
}

#toastRoot {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-toast);
  pointer-events: none;
  display: flex;
  justify-content: center;
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
}

.app-toast {
  transform: translateY(12px);
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-lg);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  white-space: nowrap;
  max-width: min(92vw, 420px);
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-toast__message {
  display: block;
}

.app-toast--visible {
  opacity: 1;
  transform: translateY(0);
}

.app-toast--success {
  background: color-mix(in srgb, var(--success) 12%, var(--surface));
  border-color: color-mix(in srgb, var(--success) 35%, var(--border));
  color: var(--success);
}

.app-toast--error {
  background: color-mix(in srgb, var(--danger) 12%, var(--surface));
  border-color: color-mix(in srgb, var(--danger) 35%, var(--border));
  color: var(--danger);
}

.profile-card__menu-wrap .js-profile-menu.icon-btn,
.profile-card__menu-wrap .js-profile-menu.icon-btn--surface {
  background: var(--surface);
  color: var(--text2);
}

.profile-card__menu-wrap .js-profile-menu.icon-btn:hover,
.profile-card__menu-wrap .js-profile-menu.icon-btn--surface:hover {
  background: var(--surface);
  color: var(--text);
}

.profile-card__menu-wrap .js-profile-menu i {
  color: inherit;
}

.profile-menu {
  background: var(--surface);
}

.offer-sheet__reviews-embed {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  align-self: stretch;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.offer-sheet__panel.offer-sheet__reviews-embed {
  padding: 0;
}

.offer-sheet__reviews-embed .reviews-list,
.offer-sheet__reviews-embed .js-reviews-content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

.offer-sheet__panel.offer-sheet__reviews-embed .reviews-list,
.offer-sheet__panel.offer-sheet__reviews-embed .js-reviews-content {
  padding: 0;
}

.modal--account-reviews .offer-sheet__reviews-embed .reviews-list,
.modal--account-reviews .offer-sheet__reviews-embed .js-reviews-content {
  padding: var(--modal-pad);
}

.offer-sheet__reviews-embed .js-reviews-content:has(.panel-state--fill) {
  overflow: hidden;
}

.offer-sheet__photos-embed {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  overflow: hidden;
}

.offer-sheet__photos-embed > .js-offer-photos-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.offer-sheet__photos-embed > .js-offer-photos-grid {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  align-content: start;
  box-sizing: border-box;
}

.analytics-metrics__item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.analytics-metrics__item i {
  width: 1rem;
  text-align: center;
  flex-shrink: 0;
  color: var(--text2);
}

.analytics-metrics__item strong {
  margin-left: auto;
}

.btn--page-cta {
  width: auto;
  padding: 0 24px;
  height: 46px;
  font-size: 1rem;
  color: #fff;
}

.btn--page-cta i {
  color: inherit;
}

a.btn {
  text-decoration: none;
}

html:has(.legal-page),
body:has(.legal-page) {
  overflow: auto;
  height: auto;
  min-height: 100%;
}
