/**
 * SriLance shared UI — brand + Upwork-elegant controls for redesigned surfaces.
 * Scoped to .sl-fp / .sl-cd / .sl-fd / .sl-set / .sl-jobs / .sl-msg / .sl-fo / .sl-onboard
 */
@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&display=swap");

:root {
  --sl-gold: #fbbe15;
  --sl-gold-dark: #e0a800;
  --sl-ink: #222;
  --sl-muted: #666;
  --sl-line: #e6e6e6;
  --sl-bg: #f4f4f4;
  --sl-card: #fff;
  --sl-icon-bg: #fff;
  --sl-icon-bg-hover: #f7f7f7;
  --sl-icon-border: #e8e8e8;
  --sl-icon-border-hover: #ddd;
  --sl-icon-fg: #5e6d55;
  --sl-font: "Nunito Sans", "Open Sans", Helvetica, Arial, sans-serif;
}

.sl-fp, .sl-cd, .sl-fd, .sl-set, .sl-jobs, .sl-msg, .sl-fo, .sl-onboard, .sl-prop,
.sl-nav, body.sl-app {
  font-family: var(--sl-font) !important;
  color: var(--sl-ink);
}

/* ---- Primary / ghost buttons (logo gold) ---- */
.sl-fp .sl-btn,
.sl-cd .sl-btn,
.sl-fd .sl-btn,
.sl-jobs .sl-btn,
.sl-msg .sl-btn,
.sl-msg .blue_btn,
.sl-prop .sl-btn,
.sl-fo .sl-btn,
.sl-fo .blue_btn,
.sl-fo button.blue_btn,
.sl-fo input[type=submit].blue_btn,
.sl-onboard .sl-btn,
.sl-set .blue_btn,
.sl-set button.blue_btn,
.sl-set input.blue_btn {
  border-radius: 30px !important;
  padding: 10px 22px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  font-family: var(--sl-font) !important;
  border: 1px solid var(--sl-gold) !important;
  background: var(--sl-gold) !important;
  color: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sl-fp .sl-btn:hover,
.sl-cd .sl-btn:hover,
.sl-fd .sl-btn:hover,
.sl-jobs .sl-btn:hover,
.sl-msg .blue_btn:hover,
.sl-prop .sl-btn:hover,
.sl-fo .blue_btn:hover,
.sl-fo .sl-btn:hover,
.sl-set .blue_btn:hover {
  background: var(--sl-gold-dark) !important;
  border-color: var(--sl-gold-dark) !important;
  color: #fff !important;
}
.sl-fp .sl-btn-ghost,
.sl-cd .sl-btn-ghost,
.sl-fd .sl-btn-ghost,
.sl-jobs .sl-btn-ghost,
.sl-prop .sl-btn-ghost {
  background: #fff !important;
  color: var(--sl-ink) !important;
  border: 1px solid #ccc !important;
}
.sl-fp .sl-btn-ghost:hover,
.sl-cd .sl-btn-ghost:hover,
.sl-fd .sl-btn-ghost:hover,
.sl-jobs .sl-btn-ghost:hover,
.sl-prop .sl-btn-ghost:hover {
  background: #fafafa !important;
  border-color: var(--sl-gold) !important;
  color: var(--sl-ink) !important;
}

/* ---- Upwork-like icon edit circles (light, centered) ---- */
.sl-fp-icon-btn,
.sl-cd-avatar-edit,
.sl-fp-avatar-edit {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  border-radius: 50% !important;
  border: 1px solid var(--sl-icon-border) !important;
  background: var(--sl-icon-bg) !important;
  color: var(--sl-icon-fg) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  overflow: hidden;
  vertical-align: middle;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.sl-fp-icon-btn:hover,
.sl-fp-icon-btn:focus,
.sl-cd-avatar-edit:hover,
.sl-fp-avatar-edit:hover {
  background: var(--sl-icon-bg-hover) !important;
  border-color: var(--sl-icon-border-hover) !important;
  color: #333 !important;
  outline: none;
}
.sl-fp-icon-btn i,
.sl-fp-icon-btn .fa,
.sl-fp-icon-btn .fas,
.sl-cd-avatar-edit i,
.sl-fp-avatar-edit i {
  font-size: 13px !important;
  line-height: 1 !important;
  width: 1em !important;
  height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  speak: none;
}
.sl-fp-icon-btn i::before,
.sl-fp-avatar-edit i::before,
.sl-cd-avatar-edit i::before {
  display: block;
  line-height: 1 !important;
  width: 1em;
  text-align: center;
}

/* Compact save/add circles that replace .blue_btn in profile editors */
.sl-fp .blue_btn,
.sl-fp button.blue_btn,
.sl-fp #lang-btn,
.sl-fp #addq,
.sl-fp #addc,
.sl-fp #exp-btn,
.sl-fp #updateBio,
.sl-fp #saveRateProfile,
.sl-fp #updateCat,
.sl-fp #updSkills {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  border: 1px solid var(--sl-icon-border) !important;
  background: var(--sl-icon-bg) !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  position: relative !important;
  box-shadow: none !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.sl-fp .blue_btn::before,
.sl-fp button.blue_btn::before,
.sl-fp #lang-btn::before,
.sl-fp #addq::before,
.sl-fp #addc::before,
.sl-fp #exp-btn::before,
.sl-fp #updateBio::before,
.sl-fp #saveRateProfile::before,
.sl-fp #updateCat::before,
.sl-fp #updSkills::before {
  font-family: FontAwesome !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-size: 13px !important;
  line-height: 1 !important;
  color: var(--sl-icon-fg) !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
}
.sl-fp #lang-btn::before,
.sl-fp #addq::before,
.sl-fp #addc::before,
.sl-fp #exp-btn::before { content: "\f067"; }
.sl-fp #updateBio::before,
.sl-fp #saveRateProfile::before,
.sl-fp #updateCat::before,
.sl-fp #updSkills::before { content: "\f00c"; }

.sl-fp .blue_btn:hover,
.sl-fp #lang-btn:hover,
.sl-fp #addq:hover,
.sl-fp #addc:hover,
.sl-fp #exp-btn:hover,
.sl-fp #updateBio:hover,
.sl-fp #saveRateProfile:hover,
.sl-fp #updateCat:hover,
.sl-fp #updSkills:hover {
  background: var(--sl-icon-bg-hover) !important;
  border-color: var(--sl-icon-border-hover) !important;
}
.sl-fp .blue_btn:hover::before,
.sl-fp #lang-btn:hover::before,
.sl-fp #addq:hover::before,
.sl-fp #addc:hover::before,
.sl-fp #exp-btn:hover::before,
.sl-fp #updateBio:hover::before,
.sl-fp #saveRateProfile:hover::before,
.sl-fp #updateCat:hover::before,
.sl-fp #updSkills:hover::before {
  color: #333 !important;
}

/* Modal primary stays readable gold pill */
.modal .blue_btn {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  padding: 10px 22px !important;
  border-radius: 30px !important;
  background: var(--sl-gold) !important;
  border: 1px solid var(--sl-gold) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  display: inline-block !important;
}
.modal .blue_btn::before { content: none !important; display: none !important; }

/* Avatar camera chip — light, not black */
.sl-fp-avatar-edit,
.sl-cd-avatar-edit {
  background: #fff !important;
  color: var(--sl-icon-fg) !important;
  border: 1px solid var(--sl-icon-border) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.sl-fp-avatar-edit:hover,
.sl-cd-avatar-edit:hover {
  background: var(--sl-icon-bg-hover) !important;
  color: #333 !important;
}

/* Accent accents that match logo */
.sl-fp-rating .fa-star,
.sl-cd-rating .fa-star,
.sl-fd-rating .fa-star,
.sl-fd-stars .fa-star { color: var(--sl-gold) !important; }
.sl-fd-progress > span,
.sl-cd .sl-cd-progress > span { background: var(--sl-gold) !important; }

/* Settings active tab — gold not black */
.sl-set .tabs-left > li.active > a,
.sl-set .tabs-left > li > a.active,
.sl-set #protabs > li.active > a,
.sl-set #protabs > .active > a {
  background: var(--sl-gold) !important;
  color: #fff !important;
  border-color: var(--sl-gold) !important;
}
.sl-set .tabs-left > li > a:hover,
.sl-set #protabs > li > a:hover {
  border-color: var(--sl-gold) !important;
  color: var(--sl-ink) !important;
}

/* Quick-link hover on client dash — soft gold tint */
.sl-cd-links a:hover {
  background: #fff8e1 !important;
  color: var(--sl-ink) !important;
  border-color: var(--sl-gold) !important;
}

/* Headings weight closer to original Nunito */
.sl-fp h1, .sl-cd h1, .sl-fd h1, .sl-jobs h1,
.sl-fp h2, .sl-cd h2, .sl-fd h2, .sl-jobs h2, .sl-set h2 {
  font-family: var(--sl-font) !important;
  font-weight: 700;
  color: #000;
}
.sl-fp a, .sl-cd a, .sl-fd a, .sl-jobs a { color: #8a6d00; }
.sl-fp a:hover, .sl-cd a:hover, .sl-fd a:hover { color: #000; }

/* =========================================================
   App shell — role nav (freelancer / client) + messages panes
   Additive only; does not alter .sl-fp / .sl-cd / .sl-fd tokens
   ========================================================= */
html.sl-app, body.sl-app { background: #f7f7f7; }
body.sl-app { margin: 0; padding-left: 232px; min-height: 100vh; }
body.sl-app .navigation-wrap { display: none !important; }

.sl-nav {
  position: fixed; top: 0; left: 0; bottom: 0; width: 232px; z-index: 1200;
  background: #fff; border-right: 1px solid var(--sl-line);
  display: flex; flex-direction: column; padding: 12px 10px 16px;
  overflow: visible;
}
.sl-nav-brand { padding: 4px 8px 12px; }
.sl-nav-brand img { height: 34px; width: auto; display: block; }

.sl-nav-profile {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 10px; margin: 0 2px 10px; border-radius: 10px;
  text-decoration: none !important; color: var(--sl-ink) !important;
  transition: background .12s ease;
}
.sl-nav-profile:hover { background: #f7f7f7; }
.sl-nav-profile img, .sl-nav-avatar-fallback {
  width: 36px; height: 36px; border-radius: 50%; object-fit: cover;
  border: 1px solid #e5e5e5; flex-shrink: 0;
}
.sl-nav-avatar-fallback {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fafafa; color: #888;
}
.sl-nav-profile-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.sl-nav-profile-text strong {
  font-size: 13px; font-weight: 700; line-height: 1.2;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sl-nav-profile-text small { font-size: 11px; color: #888; }
.sl-nav-profile-chev { color: #bbb; font-size: 12px; }

.sl-nav-menu {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.sl-nav-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid #f0f0f0; }
.sl-nav-item { position: relative; margin: 0; list-style: none; }
.sl-nav-link {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border: 0; background: transparent; border-radius: 8px;
  color: #222 !important; font-size: 14px; font-weight: 600; font-family: var(--sl-font);
  text-align: left; text-decoration: none !important; cursor: pointer;
  transition: background .12s ease;
}
.sl-nav-link i.fa:first-child { width: 18px; text-align: center; color: #555; font-size: 15px; }
.sl-nav-link span { flex: 1; }
.sl-nav-chev { color: #bbb; font-size: 12px; margin-left: auto; }
.sl-nav-item:hover > .sl-nav-link,
.sl-nav-item.is-active > .sl-nav-link,
.sl-nav-item.is-open > .sl-nav-link { background: #f3f3f3; }
.sl-nav-item.is-active > .sl-nav-link { box-shadow: inset 3px 0 0 var(--sl-gold); }

.sl-nav-flyout {
  display: none; position: absolute; top: 0; left: calc(100% - 2px);
  min-width: 220px; max-width: 280px; padding: 10px 0;
  background: #fff; border: 1px solid var(--sl-line); border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08); z-index: 1300;
}
/* Invisible bridge so the pointer can cross without closing the flyout */
.sl-nav-flyout::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: -14px;
  width: 16px;
}
.sl-nav-item.is-open > .sl-nav-flyout,
.sl-nav-item.has-flyout:hover > .sl-nav-flyout { display: block; }
.sl-nav-flyout-label {
  padding: 4px 16px 8px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; color: #999;
}
.sl-nav-flyout a {
  display: block; padding: 9px 16px; color: #222 !important;
  text-decoration: none !important; font-size: 14px; font-weight: 600;
}
.sl-nav-flyout a:hover { background: #f7f7f7; }
.sl-nav-flyout hr { margin: 8px 0; border: 0; border-top: 1px solid #eee; }
.sl-nav-search { display: flex; gap: 6px; padding: 4px 12px 10px; }
.sl-nav-search input {
  flex: 1; border: 1px solid #e0e0e0; border-radius: 8px; padding: 8px 10px; font-size: 13px;
}
.sl-nav-search button {
  border: 1px solid var(--sl-line); background: #fff; border-radius: 8px; width: 36px; cursor: pointer;
}
.sl-nav-search button:hover { background: #f7f7f7; }
.sl-nav-switch {
  display: flex !important; align-items: center; gap: 10px;
}
.sl-nav-switch img, .sl-nav-switch > i {
  width: 36px; height: 36px; border-radius: 50%; object-fit: cover; font-size: 36px; color: #ccc;
}
.sl-nav-switch span { display: flex; flex-direction: column; }
.sl-nav-switch small { color: #888; font-weight: 500; }

/* Bell inside sidebar */
.sl-nav .sl-nav-bell .sl-nav-link,
.sl-nav #srilanceFBellBtn,
.sl-nav #srilanceBellBtn {
  position: relative;
}
.sl-nav .notification-counter {
  position: absolute !important; top: 6px !important; left: 28px !important;
  margin: 0 !important; right: auto !important;
}
.sl-nav #srilanceFBellPanel,
.sl-nav #srilanceBellPanel {
  top: 0 !important; left: calc(100% - 2px) !important; right: auto !important;
  margin-top: 0 !important; width: 320px;
}
.sl-nav #srilanceFBellPanel::before,
.sl-nav #srilanceBellPanel::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: -14px;
  width: 16px;
}

.sl-nav-burger {
  display: none; position: fixed; top: 12px; left: 12px; z-index: 1250;
  width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--sl-line);
  background: #fff; cursor: pointer;
}
.sl-nav-scrim {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.28); z-index: 1190;
}
.sl-nav-pagebanner { margin-left: 0; }

@media (max-width: 991px) {
  body.sl-app { padding-left: 0; }
  .sl-nav {
    transform: translateX(-105%); transition: transform .2s ease;
  }
  body.sl-nav-open .sl-nav { transform: translateX(0); }
  body.sl-nav-open .sl-nav-scrim { display: block; }
  .sl-nav-burger { display: inline-flex; align-items: center; justify-content: center; }
  .sl-nav-item.has-flyout:hover > .sl-nav-flyout { display: none; }
  .sl-nav-item.is-open > .sl-nav-flyout {
    position: static; box-shadow: none; border: 0; margin: 0 0 6px 12px; padding: 0;
  }
}

/* ---- Messages 3-pane ---- */
.sl-msg {
  max-width: none !important; margin: 0 !important; padding: 12px 16px 24px !important;
  font-family: var(--sl-font);
}
.sl-msg-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 260px;
  gap: 0;
  min-height: calc(100vh - 40px);
  background: #fff;
  border: 1px solid var(--sl-line);
  border-radius: 12px;
  overflow: hidden;
}
.sl-msg-list {
  border-right: 1px solid var(--sl-line);
  display: flex; flex-direction: column; min-height: 0; background: #fff;
}
.sl-msg-list-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 16px 10px; border-bottom: 1px solid #f0f0f0;
}
.sl-msg-list-head h2 { font-size: 20px; font-weight: 800; margin: 0; }
.sl-msg-list-actions { display: flex; gap: 8px; font-size: 12px; }
.sl-msg-list-actions a { color: #8a6d00; text-decoration: none; font-weight: 700; }
.sl-msg-list-actions a.is-current { color: #222; }
.sl-msg-threads { overflow-y: auto; flex: 1; padding: 6px 0; }
.sl-msg-thread-item { cursor: pointer; }
.sl-msg-thread-item:hover { background: #f7f7f7; }
.sl-msg-thread-item.is-active {
  background: #f3f3f3;
  box-shadow: inset 3px 0 0 var(--sl-gold);
}
.sl-msg-thread-row {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
}
.sl-msg-avatar {
  width: 44px !important; height: 44px !important; border-radius: 50%;
  object-fit: cover; border: 1px solid #eee; flex-shrink: 0;
}
.sl-msg-thread-meta { min-width: 0; text-align: left; }
.sl-msg-thread-meta strong {
  display: block; font-size: 14px; font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sl-msg-thread-meta small {
  display: block; color: #888; font-size: 12px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.sl-msg-thread {
  display: flex; flex-direction: column; min-width: 0; min-height: 0; background: #fafafa;
}
.sl-msg-empty {
  flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px;
}
.sl-msg-empty-inner { text-align: center; max-width: 360px; }
.sl-msg-empty-inner i { font-size: 48px; color: #ccc; margin-bottom: 12px; }
.sl-msg-empty-inner h3 { font-weight: 800; margin-bottom: 8px; }
.sl-msg-empty-inner p { color: #777; }
.sl-msg-empty-actions { display: flex; gap: 10px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }

.sl-msg-active { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.sl-msg-active.hidden { display: none !important; }
.sl-msg-thread-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 14px 18px; margin: 0; border: 0 !important; border-bottom: 1px solid var(--sl-line) !important;
  border-radius: 0 !important; background: #fff !important;
}
.sl-msg-thread-head h4 { margin: 0; font-size: 18px; font-weight: 800; }
.sl-msg-jobtitle { display: block; color: #777; margin-top: 2px; }
.sl-msg-status { display: inline-block; margin-top: 6px; font-size: 13px; color: #666; }
.sl-msg-thread-body {
  flex: 1; display: flex; flex-direction: column; min-height: 0;
  margin: 0; border: 0 !important; border-radius: 0 !important; background: #fff !important;
  position: relative; padding: 0 0 72px;
}
.sl-msg-thread-body .chat_area {
  flex: 1; height: auto !important; max-height: none !important;
  overflow-y: auto; padding: 16px 18px; text-align: left;
}
.sl-msg-thread-body .message { margin-bottom: 14px; }
.sl-msg-thread-body .message h6 { font-weight: 700; margin-bottom: 4px; }
.sl-msg-thread-body .message hr { display: none; }
.sl-msg-composer {
  position: absolute !important; left: 0; right: 0; bottom: 0;
  width: 100% !important; padding: 12px 16px !important;
  border-top: 1px solid #f0f0f0; background: #fff !important; z-index: 5;
}
.sl-msg-composer .form-control {
  border-radius: 10px; border: 1px solid #e0e0e0; height: 42px;
}
.sl-msg-composer .blue_btn {
  border-radius: 50% !important; width: 42px !important; height: 42px !important;
  padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center;
}

.sl-msg-aside {
  border-left: 1px solid var(--sl-line); background: #fff; padding: 18px 16px;
  overflow-y: auto;
}
.sl-msg-aside.is-idle .sl-msg-aside-sections { opacity: .7; }
.sl-msg-aside-profile { text-align: center; padding-bottom: 16px; border-bottom: 1px solid #f0f0f0; }
.sl-msg-aside-avatar {
  width: 72px; height: 72px; border-radius: 50%; object-fit: cover;
  border: 1px solid #eee; margin-bottom: 10px;
}
.sl-msg-aside-profile h3 { font-size: 16px; font-weight: 800; margin: 0 0 4px; }
.sl-msg-aside-profile p { font-size: 13px; color: #777; margin: 0 0 10px; }
.sl-msg-aside-profile a { display: inline-block; margin: 4px 6px; font-weight: 700; color: #8a6d00; }
.sl-msg-aside-placeholder i { font-size: 48px; color: #ddd; }
.sl-msg-aside-sections details { border-bottom: 1px solid #f0f0f0; padding: 10px 0; }
.sl-msg-aside-sections summary {
  font-weight: 700; cursor: pointer; outline: none; list-style: none;
}
.sl-msg-aside-sections summary::-webkit-details-marker { display: none; }
.sl-msg-aside-sections p { font-size: 13px; margin: 8px 0 0; }

@media (max-width: 1199px) {
  .sl-msg-shell { grid-template-columns: 260px minmax(0, 1fr); }
  .sl-msg-aside { display: none; }
  .sl-msg-aside.is-visible { display: block; position: absolute; right: 16px; top: 60px; width: 260px; border: 1px solid var(--sl-line); border-radius: 12px; z-index: 20; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
}
@media (max-width: 767px) {
  .sl-msg { padding: 8px !important; }
  .sl-msg-shell { grid-template-columns: 1fr; min-height: calc(100vh - 80px); }
  .sl-msg-list { max-height: 40vh; border-right: 0; border-bottom: 1px solid var(--sl-line); }
}
