/* Support by spacebly: only what spacebly.com's own stylesheet has no class for. Colours come from the site's
   variables (--primary, --border, --muted and so on), so everything follows the site's theme. */

.font-montserrat { font-family: Montserrat, sans-serif; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Header menus (details/summary, no JavaScript needed) */
.sp-menu > summary { list-style: none; }
.sp-menu > summary::-webkit-details-marker { display: none; }
.sp-menu:not([open]) > .sp-menu-panel { display: none; }
.sp-menu[open] > summary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
/* The user menu opens like the site's: no fill while open, the button's own hover otherwise. */
.sp-menu[data-acct-user][open] > summary:not(:hover) { background: transparent; color: inherit; }
/* The site's stylesheet caps elements at 100% of their parent, which squeezed the menu to the width of its button. */
.sp-menu-panel { max-width: none; min-width: 14rem; }
.sp-menu-panel a { white-space: nowrap; }

/* Footer, as on spacebly.com */
.sp-footer { background-color: #111827; border-top: 1px solid rgba(255, 255, 255, .06); color: #fff; }
.sp-footer-in { padding-top: 56px; padding-bottom: 32px; }

/* Two columns: content and a 320px side column */
.sp-split { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .sp-split { grid-template-columns: minmax(0, 1fr) 320px; } }
/* The side column stays in view under the 64px sticky header while the main column scrolls. It's always its full
   height, never a box of its own to scroll: when it's taller than the window, support.js sets --sp-aside-top so it
   scrolls with the page until its last card is in view and sticks from there. */
@media (min-width: 1024px) {
  .sp-split > aside { position: sticky; top: var(--sp-aside-top, 5rem); }
}
.sp-hero { display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 768px) { .sp-hero { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.sp-mini-list { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.sp-mini-list a { display: flex; gap: .5rem; align-items: flex-start; font-size: .875rem; color: hsl(var(--foreground)); text-decoration: none; line-height: 1.4; }
.sp-mini-list a:hover { color: hsl(var(--primary)); }
.sp-mini-list svg { flex-shrink: 0; margin-top: .125rem; color: hsl(var(--primary)); }
.sp-grow { flex: 1 1 auto; display: flex; flex-direction: column; }
.sp-grow > :last-child { margin-top: auto; }
.sp-tint { background: linear-gradient(to right, hsl(var(--primary) / .1), hsl(var(--primary) / .05)); border-color: hsl(var(--primary) / .2); }

/* Badges */
.sp-badge { display: inline-flex; align-items: center; gap: .25rem; border-radius: 9999px; padding: .125rem .625rem; font-size: .75rem; font-weight: 600; line-height: 1.25rem; white-space: nowrap; border: 1px solid transparent; }
.sp-badge-blue { background: hsl(var(--primary) / .1); color: hsl(207 100% 34%); border-color: hsl(var(--primary) / .2); }
.sp-badge-green { background: hsl(142 71% 95%); color: hsl(142 72% 26%); border-color: hsl(142 60% 85%); }
.sp-badge-grey { background: hsl(var(--muted)); color: hsl(0 0% 32%); border-color: hsl(var(--border)); }
.sp-badge-amber { background: hsl(48 100% 94%); color: hsl(32 81% 29%); border-color: hsl(45 90% 80%); }
.sp-badge-red { background: hsl(0 86% 97%); color: hsl(0 72% 42%); border-color: hsl(0 90% 90%); }

/* Notices */
.sp-notice { display: flex; gap: .75rem; align-items: flex-start; border-radius: calc(var(--radius) - 2px); border: 1px solid; padding: .875rem 1rem; font-size: .875rem; line-height: 1.4; margin-bottom: 1rem; }
.sp-notice-ok { background: hsl(142 71% 96%); border-color: hsl(142 60% 85%); color: hsl(142 72% 24%); }
.sp-notice-error { background: hsl(0 86% 97%); border-color: hsl(0 90% 90%); color: hsl(0 72% 40%); }
.sp-notice-info { background: hsl(var(--primary) / .07); border-color: hsl(var(--primary) / .2); color: hsl(207 100% 30%); }
.sp-notice a { color: inherit; }

/* Attachments: a drop area over the real file input, and the chosen files listed underneath */
.sp-drop { position: relative; display: flex; align-items: center; gap: .875rem; padding: 1rem; border: 1.5px dashed hsl(var(--border)); border-radius: calc(var(--radius) - 2px); background: hsl(var(--background)); color: hsl(var(--muted-foreground)); font-size: .875rem; cursor: pointer; transition: border-color .15s, background-color .15s; }
.sp-drop:hover, .sp-drop.is-over { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .04); }
.sp-drop:focus-within { border-color: hsl(var(--primary)); box-shadow: 0 0 0 3px hsl(var(--primary) / .2); }
.sp-drop-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.sp-drop-icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }
.sp-files { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.sp-files:empty { display: none; }
.sp-files li { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; padding: .375rem .625rem; border: 1px solid hsl(var(--border)); border-radius: 9999px; background: hsl(var(--card)); font-size: .8125rem; }
.sp-files li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 14rem; }
.sp-files li small { color: hsl(var(--muted-foreground)); }

/* Form footers: a hint on the left, the button on the right */
.sp-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .25rem; }
.sp-actions > :last-child { margin-left: auto; }
.sp-code { letter-spacing: .35em; font-weight: 600; }

/* Conversations */
.sp-thread { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.sp-msg { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .75rem; align-items: start; }
.sp-msg-avatar { width: 2.25rem; height: 2.25rem; border-radius: 9999px; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: .875rem; background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.sp-msg-team .sp-msg-avatar { background: hsl(var(--primary)); color: #fff; }
.sp-msg-note .sp-msg-avatar { background: hsl(45 90% 88%); color: hsl(32 81% 29%); }
.sp-msg-card { border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); padding: 1rem 1.25rem; box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05); min-width: 0; }
.sp-msg-team .sp-msg-card { border-color: hsl(var(--primary) / .25); background: hsl(var(--primary) / .04); }
.sp-msg-note .sp-msg-card { border-color: hsl(45 90% 80%); background: hsl(48 100% 97%); border-style: dashed; }
.sp-msg-head { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .5rem; font-size: .875rem; }
.sp-prose { font-size: .9375rem; line-height: 1.65; color: hsl(var(--foreground)); overflow-wrap: anywhere; }
.sp-prose p { margin: 0 0 .75rem; }
.sp-prose p:last-child { margin-bottom: 0; }
.sp-prose a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 2px; }
.sp-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .5rem; margin-top: .875rem; }
.sp-thumbs a { display: block; border-radius: calc(var(--radius) - 4px); overflow: hidden; border: 1px solid hsl(var(--border)); line-height: 0; }
.sp-thumbs img { width: 100%; height: 120px; object-fit: cover; transition: transform .2s; }
.sp-thumbs a:hover img { transform: scale(1.03); }
.sp-thumb-admin { position: relative; }
.sp-thumb-delete { position: absolute; top: .375rem; right: .375rem; width: 1.75rem; height: 1.75rem; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(17, 24, 39, .75); color: #fff; border: 0; cursor: pointer; }
.sp-docs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .875rem; }
.sp-doc { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; padding: .5rem .75rem; border: 1px solid hsl(var(--border)); border-radius: calc(var(--radius) - 4px); background: hsl(var(--background)); font-size: .8125rem; color: hsl(var(--foreground)); text-decoration: none; }
.sp-doc:hover { border-color: hsl(var(--primary) / .5); }

/* Details lists */
.sp-dl { margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.sp-dl-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .875rem; }
.sp-dl-row dt { color: hsl(var(--muted-foreground)); }
.sp-dl-row dd { margin: 0; text-align: right; color: hsl(var(--foreground)); font-weight: 500; min-width: 0; }

/* Community list */
.sp-qcard { transition: border-color .15s, box-shadow .15s; }
.sp-qcard:hover { border-color: hsl(var(--primary) / .4); box-shadow: 0 4px 12px -2px rgba(13, 153, 255, .15); }
.sp-qcard-link { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1.5rem; color: inherit; text-decoration: none; }
.sp-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sp-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.sp-chip { display: inline-flex; align-items: center; height: 2.25rem; padding: 0 .875rem; border-radius: 9999px; border: 1px solid hsl(var(--border)); background: hsl(var(--background)); font-size: .875rem; font-weight: 500; color: hsl(var(--foreground)); text-decoration: none; transition: background-color .15s, border-color .15s, color .15s; }
.sp-chip:hover { border-color: hsl(var(--primary) / .5); color: hsl(var(--primary)); }
.sp-chip.is-active { background: hsl(var(--primary)); border-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.sp-rules { margin: 0; padding-left: 1.125rem; display: flex; flex-direction: column; gap: .5rem; font-size: .875rem; color: hsl(var(--muted-foreground)); list-style: disc; }
.sp-posting-as { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .625rem .875rem; margin-bottom: 1rem; border-radius: calc(var(--radius) - 2px); background: hsl(var(--muted)); font-size: .875rem; color: hsl(var(--muted-foreground)); }
.sp-posting-as strong { color: hsl(var(--foreground)); }
.sp-posting-as form { margin-left: auto; }
.sp-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; text-align: center; padding: 3rem 1.5rem; }

/* Search boxes */
.sp-search { position: relative; width: 100%; }
@media (min-width: 768px) { .sp-search { max-width: 20rem; } .sp-search-lg { max-width: none; } }

/* Admin shell (like the spacebly admin) */
.sp-side { width: 16rem; flex-shrink: 0; flex-direction: column; border-right: 1px solid hsl(var(--border)); background: hsl(var(--card)); position: sticky; top: 0; height: 100vh; padding: 1rem .75rem; }
/* Logo and "Support Centre" centred, then a divider above Tickets and Community. */
.sp-side-brand { display: flex; justify-content: center; padding: .25rem .75rem .5rem; text-decoration: none; }
.sp-side-label { padding: 0 .75rem 1rem; margin: 0 0 1rem; text-align: center; border-bottom: 1px solid hsl(var(--border)); font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: hsl(var(--muted-foreground)); }
.sp-side-nav, .sp-side-foot { display: flex; flex-direction: column; gap: .25rem; }
.sp-side-foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid hsl(var(--border)); }
.sp-side-link { display: flex; align-items: center; gap: .75rem; width: 100%; padding: .5rem .75rem; border-radius: calc(var(--radius) - 4px); font-size: .875rem; font-weight: 500; color: hsl(var(--foreground)); text-decoration: none; background: none; border: 0; cursor: pointer; text-align: left; }
.sp-side-link:hover { background: hsl(var(--accent) / .1); color: hsl(var(--primary)); }
.sp-side-link.is-active { background: hsl(var(--primary) / .1); color: hsl(var(--primary)); font-weight: 600; }
.sp-avatar { width: 2rem; height: 2rem; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: hsl(var(--primary)); color: #fff; font-weight: 600; font-size: .875rem; }
.sp-stat { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.sp-stat:hover { border-color: hsl(var(--primary) / .4); box-shadow: 0 2px 8px -1px rgba(13, 153, 255, .1); }
.sp-stat-icon { width: 2.75rem; height: 2.75rem; border-radius: calc(var(--radius) - 2px); display: inline-flex; align-items: center; justify-content: center; }
.sp-tone-blue { background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }
.sp-tone-green { background: hsl(142 71% 94%); color: hsl(142 72% 29%); }
.sp-tone-grey { background: hsl(var(--muted)); color: hsl(0 0% 35%); }
.sp-tone-amber { background: hsl(48 100% 92%); color: hsl(32 81% 32%); }
.sp-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid hsl(var(--border)); }
.sp-tab { display: inline-flex; align-items: center; gap: .375rem; white-space: nowrap; border-radius: calc(var(--radius) - 6px); padding: .375rem .75rem; font-size: .875rem; font-weight: 500; color: hsl(var(--muted-foreground)); text-decoration: none; transition: background-color .15s, color .15s; }
.sp-tab:hover { color: hsl(var(--foreground)); }
.sp-tab.is-active { background: hsl(var(--background)); color: hsl(var(--foreground)); box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05); }
.sp-tab-count { display: inline-flex; min-width: 1.25rem; height: 1.25rem; padding: 0 .375rem; align-items: center; justify-content: center; border-radius: 9999px; background: hsl(var(--muted)); font-size: .75rem; font-weight: 600; color: hsl(var(--muted-foreground)); }
.sp-tab.is-active .sp-tab-count { background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }
.sp-table-wrap { overflow-x: auto; }
.sp-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.sp-table th { height: 3rem; padding: 0 1.25rem; text-align: left; vertical-align: middle; font-weight: 500; color: hsl(var(--muted-foreground)); border-bottom: 1px solid hsl(var(--border)); white-space: nowrap; }
.sp-table td { padding: .875rem 1.25rem; vertical-align: middle; border-bottom: 1px solid hsl(var(--border)); }
.sp-table tbody tr { transition: background-color .15s; }
.sp-table tbody tr:hover { background: hsl(var(--muted) / .5); }
.sp-table tbody tr:last-child td { border-bottom: 0; }
.sp-cell-main { min-width: 16rem; }
.sp-seg { display: inline-flex; padding: .25rem; border-radius: calc(var(--radius) - 2px); background: hsl(var(--muted)); gap: .25rem; }
.sp-seg label { position: relative; cursor: pointer; }
.sp-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.sp-seg span { display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .875rem; border-radius: calc(var(--radius) - 6px); font-size: .875rem; font-weight: 500; color: hsl(var(--muted-foreground)); transition: background-color .15s, color .15s; }
.sp-seg span svg { width: 1rem; height: 1rem; }
.sp-seg input:checked + span { background: hsl(var(--background)); color: hsl(var(--foreground)); box-shadow: 0 1px 2px 0 rgb(0 0 0 / .08); }
.sp-seg input:focus-visible + span { box-shadow: 0 0 0 2px hsl(var(--ring)); }
.sp-mod { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem; padding: 1rem; border: 1px solid hsl(45 90% 80%); border-radius: calc(var(--radius) - 2px); background: hsl(48 100% 97%); }
.sp-mod > .min-w-0 { flex: 1 1 20rem; }
.sp-mod-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.sp-btn-approve { border-color: hsl(142 60% 75%); color: hsl(142 72% 26%); }
.sp-btn-danger { border-color: hsl(0 90% 88%); color: hsl(0 72% 42%); }

.cf-turnstile { min-height: 65px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }

/* The signed in header (account.js): avatar as the site's (shadcn Avatar), My Shortlist or My Offices icon */
[data-acct-user][hidden], [data-acct-guest][hidden] { display: none !important; }
.sp-avatar-ring { position: relative; display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; overflow: hidden; border-radius: 9999px; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-weight: 600; }
.sp-avatar-ring img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sp-avatar-ring img[hidden] { display: none; }
/* With a picture showing, nothing behind it: see through parts show white, as on the site's avatar. If the picture
   fails, the script removes it and the blue with the initials comes back. */
.sp-avatar-ring:has(> img:not([hidden])) { background: transparent; }
.sp-avatar-ring:has(> img:not([hidden])) > span { visibility: hidden; }
[data-acct-role] svg + svg, [data-acct-role].is-client svg:first-child { display: none; }
[data-acct-role].is-client svg + svg { display: inline; }
