/* TNT CMS — site member accounts (Realty 365 brand: Raleway, gold #BA9F4C, burgundy #4D020D, square corners) */

.r365m { --r-gold: #BA9F4C; --r-gold-dk: #a2883a; --r-wine: #4D020D; --r-ink: #323232; --r-mute: #6f6f6f; --r-line: #e2dfd8; --r-paper: #f9f9f8;
  font-family: Raleway, Arial, Helvetica, sans-serif; color: var(--r-ink); }
.r365m-auth { max-width: 460px; margin: 8px auto 48px; }
.r365m-h { font-size: 1.6rem; font-weight: 700; margin: 0 0 8px; line-height: 1.25; }
.r365m-h3 { font-size: 1.1rem; font-weight: 700; margin: 0 0 14px; }
.r365m-lead { color: var(--r-mute); margin: 0 0 22px; line-height: 1.55; }
.r365m-note { color: var(--r-mute); font-size: .92rem; margin: 0 0 16px; line-height: 1.5; }
.r365m-alt { margin-top: 20px; font-size: .95rem; }
.r365m-alt a, .r365m-note a { color: var(--r-wine); font-weight: 600; }

/* fields */
.r365m-field { display: block; margin: 0 0 16px; }
.r365m-field > span:first-child { display: block; font-weight: 600; font-size: .92rem; margin-bottom: 6px; }
.r365m-field em { font-style: normal; font-weight: 400; color: var(--r-mute); }
.r365m-field small { display: block; color: var(--r-mute); font-size: .82rem; margin-top: 5px; }
.r365m-input { width: 100%; box-sizing: border-box; border: 1px solid #cfcac0; border-radius: 0; background: #fff; color: var(--r-ink);
  padding: 11px 12px; font: inherit; font-size: 1rem; }
.r365m-input:focus { outline: 2px solid var(--r-gold); outline-offset: 0; border-color: var(--r-gold); }
.r365m-pw { position: relative; display: block; }
.r365m-pw .r365m-input { padding-right: 46px; }
.r365m-pw__show { position: absolute; right: 0; top: 0; bottom: 0; width: 44px; border: 0; background: transparent; color: var(--r-mute); cursor: pointer; }
.r365m-pw__show:focus-visible { outline: 2px solid var(--r-gold); }
.r365m-check { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 20px; font-size: .88rem; color: var(--r-mute); line-height: 1.45; cursor: pointer; }
.r365m-check input { margin-top: 3px; width: 17px; height: 17px; accent-color: var(--r-gold); flex: 0 0 auto; }
.r365m-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* buttons */
.r365m-btn { display: inline-block; background: var(--r-gold); color: #fff !important; border: 0; border-radius: 0; padding: 12px 26px;
  font: 700 .95rem Raleway, Arial, sans-serif; letter-spacing: .02em; cursor: pointer; text-decoration: none; }
.r365m-btn:hover { background: var(--r-gold-dk); }
.r365m-btn:focus-visible, .r365m-link:focus-visible { outline: 3px solid var(--r-wine); outline-offset: 2px; }
.r365m-btn:disabled { opacity: .6; cursor: wait; }
.r365m-btn--sm { padding: 8px 16px; font-size: .85rem; }
.r365m-btn--ghost { background: transparent; color: var(--r-ink) !important; box-shadow: inset 0 0 0 1px var(--r-ink); }
.r365m-btn--ghost:hover { background: var(--r-ink); color: #fff !important; }
.r365m-link { background: none; border: 0; padding: 0 4px; color: var(--r-wine); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }

/* messages */
.r365m-msg { padding: 12px 14px; margin: 0 0 16px; font-size: .93rem; line-height: 1.45; border-left: 4px solid; }
.r365m-msg.is-ok  { background: #f3f0e6; border-color: var(--r-gold); }
.r365m-msg.is-err { background: #f8ecee; border-color: var(--r-wine); color: var(--r-wine); }
.r365m-notice { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: #f3f0e6; border-left: 4px solid var(--r-gold); padding: 14px 16px; margin: 0 0 20px; line-height: 1.45; }

/* account page */
.r365m-dash { margin: 8px 0 56px; }
.r365m-dash__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.r365m-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--r-line); margin: 0 0 24px; overflow-x: auto; overflow-y: hidden; }
.r365m-tabs a { padding: 12px 18px; font-weight: 700; font-size: .95rem; color: var(--r-mute); text-decoration: none; white-space: nowrap;
  border-bottom: 3px solid transparent; margin-bottom: -2px; }
.r365m-tabs a:hover { color: var(--r-ink); }
.r365m-tabs a.is-active { color: var(--r-ink); border-bottom-color: var(--r-gold); }
.r365m-tabs a:focus-visible { outline: 2px solid var(--r-gold); outline-offset: -2px; }
.r365m-pane { margin-bottom: 36px; }
.r365m-dash.is-js .r365m-pane[hidden] { display: none; }

.r365m-empty { background: var(--r-paper); padding: 32px 24px; text-align: center; }

/* saved listings: property cards (mls.css), no body-link underlines */
.r365m-favgrid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.r365m-favgrid .mls-card, .r365m-favgrid .mls-card:hover, .r365m-favgrid .mls-card * { text-decoration: none !important; }
.r365m-favgrid .mls-card__price { color: var(--r-ink); }
.r365m-favgrid .mls-card__type { color: var(--r-gold-dk); font-weight: 600; }
.r365m-empty p { max-width: 520px; margin: 0 auto 18px; line-height: 1.55; }

.r365m-gone { list-style: none; padding: 0; margin: 0; }
.r365m-gone li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--r-line); color: var(--r-mute); }
.r365m-gone em { font-style: normal; font-size: .85rem; margin-left: 6px; }

/* saved searches */
.r365m-search { border: 1px solid var(--r-line); border-left: 4px solid var(--r-gold); background: #fff; padding: 16px 18px; margin-bottom: 14px; }
.r365m-search__form { display: grid; grid-template-columns: 1fr 200px; gap: 10px 20px; align-items: start; }
.r365m-search__name { font-weight: 700; font-size: 1.05rem; padding: 8px 10px; }
.r365m-search__sum { margin: 8px 0 0; color: var(--r-mute); font-size: .9rem; line-height: 1.45; }
.r365m-search__sum span { display: inline-block; margin-left: 6px; color: var(--r-wine); font-weight: 700; }
.r365m-search__freq span { display: block; font-size: .8rem; font-weight: 600; color: var(--r-mute); margin-bottom: 4px; }
.r365m-search__freq .r365m-input { padding: 8px 10px; }
.r365m-search__actions { grid-column: 1 / -1; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.r365m-search__actions .r365m-link { margin-left: auto; }
.r365m-search__form .r365m-msg { grid-column: 1 / -1; margin: 0; }
@media (max-width: 640px) { .r365m-search__form { grid-template-columns: 1fr; } .r365m-search__actions .r365m-link { margin-left: 0; } }

/* account settings */
.r365m-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.r365m-card { background: #fff; border: 1px solid var(--r-line); padding: 22px 20px; }

/* heart on listing cards / carousel cards */
.mls-card__img, .mls-ccard__img { position: relative; }
.r365-fav { position: absolute; top: 10px; right: 10px; z-index: 3; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.92); color: #4D020D; font-size: 18px; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.25); transition: transform .15s; }
.r365-fav:hover { transform: scale(1.08); }
.r365-fav:focus-visible { outline: 3px solid #BA9F4C; outline-offset: 1px; }
.r365-fav.is-on { background: #4D020D; color: #fff; }
@media (prefers-reduced-motion: reduce) { .r365-fav { transition: none; } .r365-fav:hover { transform: none; } }

/* listing sidebar: saved state */
.mls-actions a.is-on i { color: #4D020D; }

/* toast */
.r365m-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); z-index: 2000; background: #323232; color: #fff;
  font: 600 .92rem Raleway, Arial, sans-serif; padding: 12px 20px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; max-width: calc(100vw - 32px); }
.r365m-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .r365m-toast { transition: none; } }
