/* =========================================================
   Dealage Sharp UI v1
   Global redesign foundation / local override layer

   Purpose:
   - reduce the over-rounded “vibe-coded” look
   - keep buttons/badges friendly while making cards/panels sharper
   - normalize pages that still use local template CSS
   - avoid touching backend logic
   ========================================================= */

:root{
  --radius-xl:12px;
  --radius-lg:8px;
  --radius-md:6px;
  --radius-sm:6px;
  --radius-xs:4px;

  --sharp-radius-card:7px;
  --sharp-radius-panel:8px;
  --sharp-radius-button:7px;
  --sharp-radius-field:6px;
  --sharp-radius-badge:999px;

  --sharp-bg:#0a0c0f;
  --sharp-bg-2:#0f1318;
  --sharp-panel:#151a20;
  --sharp-panel-2:#1a2027;
  --sharp-border:#303943;
  --sharp-border-soft:#252d36;
  --sharp-border-hot:rgba(217,177,95,.34);
  --sharp-gold:#d9b15f;
  --sharp-green:#6f944f;
  --sharp-text:#f3f5f7;
  --sharp-muted:#9aa5b1;

  --shadow-lg:0 18px 38px rgba(0,0,0,.36);
  --shadow-md:0 10px 24px rgba(0,0,0,.24);
  --shadow-sm:0 4px 12px rgba(0,0,0,.18);
}

html{ scroll-behavior:smooth; }

body{
  background:
    radial-gradient(circle at 10% -10%, rgba(111,148,79,.12), transparent 22%),
    radial-gradient(circle at 92% 0%, rgba(217,177,95,.08), transparent 20%),
    linear-gradient(180deg, #090b0e 0%, #0c1014 42%, #10161c 100%) !important;
  color:var(--sharp-text) !important;
}

body::before{
  opacity:.18 !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.012), transparent 25%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.004) 0 1px, transparent 1px 36px) !important;
}

.wrap,
.container,
.page-wrap,
.main-wrap{
  max-width:min(1180px, calc(100% - 28px));
}

/* ---------- Typography / page heads ---------- */
.page-hero,
.top,
.section-head,
.header-row{
  border-bottom:1px solid rgba(255,255,255,.06);
  padding-bottom:16px;
}

.page-title,
.top h1,
h1{
  letter-spacing:-.045em !important;
  line-height:1.02 !important;
}

h2,h3,.card-title,.title{
  letter-spacing:-.025em !important;
}

.page-subtitle,
.sub,
.muted,
.card-subtitle,
.help-text,
small{
  color:var(--sharp-muted) !important;
}

/* ---------- Structural surfaces ---------- */
.card,
.panel,
.box,
.tile,
.stat-card,
.metric-card,
.feature-card,
.pricing-card,
.deal-card,
.feed-card,
.post-card,
.profile-card,
.buybox-card,
.template-card,
.contract-card,
.lead-card,
.info-box,
.empty-state,
.upgrade-card,
.alert-card,
.drawer-card,
.result-card,
[class*="-card"],
[class*="_card"],
[class*="panel"]{
  border-radius:var(--sharp-radius-card) !important;
  border:1px solid var(--sharp-border-soft) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.026), rgba(255,255,255,.012)),
    var(--sharp-panel) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.20) !important;
}

.card:hover,
.panel:hover,
.deal-card:hover,
.feed-card:hover,
.post-card:hover,
.profile-card:hover,
.pricing-card:hover,
.lead-card:hover,
[class*="-card"]:hover{
  transform:none !important;
  border-color:rgba(217,177,95,.22) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.26) !important;
}

.card::after,
.lead-card::after,
[class*="-card"]::after{
  opacity:.45 !important;
}

.card::before,
.lead-card::after,
[class*="-card"]::before{
  background:linear-gradient(90deg, rgba(217,177,95,.34), transparent 46%) !important;
}

.card-header,
.head,
.panel-header,
.section-header{
  border-bottom:1px solid rgba(255,255,255,.065) !important;
  background:rgba(255,255,255,.012) !important;
}

.card-body,
.body,
.panel-body{
  background:transparent !important;
}

/* Keep avatars and small tags soft; make main structure sharper. */
.avatar,
.user-avatar,
.profile-avatar,
img.avatar,
.badge,
.tag,
.pill,
.status,
.status-badge,
.lf-role-badge,
.eyebrow,
.chip,
.count-pill,
[class*="badge"],
[class*="pill"],
[class*="tag"]{
  border-radius:var(--sharp-radius-badge) !important;
}

/* ---------- Buttons / links that act like buttons ---------- */
.btn,
button,
a.btn,
.button,
input[type="submit"],
input[type="button"]{
  border-radius:var(--sharp-radius-button) !important;
  box-shadow:0 5px 14px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.055) !important;
  letter-spacing:.005em !important;
}

.btn::after{ border-radius:calc(var(--sharp-radius-button) - 1px) !important; }

.btn:hover,
button:hover,
a.btn:hover,
.button:hover{
  transform:translateY(-1px) !important;
}

.btn-pill{ border-radius:999px !important; }

.btn-primary,
.btn.primary,
button.primary,
.button.primary{
  border-color:rgba(217,177,95,.34) !important;
  background:linear-gradient(180deg, #d9b15f 0%, #799f59 48%, #4f7d3b 100%) !important;
}

.btn-secondary,
button.secondary{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.014)), #161b21 !important;
}

/* ---------- Forms ---------- */
input,
select,
textarea,
.lf-input,
.lf-select,
.form-control{
  border-radius:var(--sharp-radius-field) !important;
  border:1px solid var(--sharp-border) !important;
  background:#10151a !important;
  color:var(--sharp-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03) !important;
}

input:focus,
select:focus,
textarea:focus,
.lf-input:focus,
.lf-select:focus,
.form-control:focus{
  outline:none !important;
  border-color:rgba(217,177,95,.55) !important;
  box-shadow:0 0 0 3px rgba(217,177,95,.10), inset 0 1px 0 rgba(255,255,255,.04) !important;
}

label,
.form-label{
  color:#dce2e8 !important;
  font-weight:750 !important;
}

/* ---------- Tables / dense data ---------- */
table,
.table,
.data-table{
  border-radius:var(--sharp-radius-panel) !important;
  border:1px solid var(--sharp-border-soft) !important;
  overflow:hidden !important;
  background:var(--sharp-panel) !important;
}

th{
  background:#11171d !important;
  color:#e7edf4 !important;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-size:12px;
}

td,th{
  border-color:rgba(255,255,255,.06) !important;
}

tr:hover td{
  background:rgba(217,177,95,.035) !important;
}

/* ---------- Navigation shell ---------- */
.lf-topbar{
  height:58px !important;
  background:rgba(8,10,12,.94) !important;
  border-bottom:1px solid rgba(217,177,95,.13) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.24) !important;
}

.lf-menu-btn,
.lf-notif-btn,
.lf-drawer-close{
  border-radius:7px !important;
}

.lf-drawer{
  background:#10151a !important;
  border-right:1px solid rgba(217,177,95,.16) !important;
}

.lf-drawer-link{
  border-radius:7px !important;
  border:1px solid transparent !important;
}

.lf-drawer-link:hover,
.lf-drawer-link.active{
  background:rgba(217,177,95,.075) !important;
  border-color:rgba(217,177,95,.14) !important;
}

/* ---------- Dropdowns / menus ---------- */
.dropdown,
.dropdown-menu,
.more-menu,
.actions-menu,
.menu,
.popover,
.modal,
.modal-content{
  border-radius:8px !important;
  border:1px solid var(--sharp-border) !important;
  background:#12181e !important;
  box-shadow:0 16px 34px rgba(0,0,0,.36) !important;
}

.dropdown-menu a,
.more-menu a,
.actions-menu a,
.dropdown-menu button,
.more-menu button,
.actions-menu button{
  border-radius:6px !important;
}

/* ---------- Lead management ---------- */
.lead-list{ gap:10px !important; }

.lead-card{
  padding:14px !important;
  gap:12px !important;
  border-left:3px solid rgba(217,177,95,.20) !important;
}

.lead-card.is-selected,
.lead-card.selected{
  border-color:rgba(217,177,95,.46) !important;
  background:linear-gradient(180deg, rgba(217,177,95,.06), rgba(255,255,255,.012)), var(--sharp-panel) !important;
}

.lead-name,
.lead-address{
  color:#fff !important;
}

.bulk-lead-bar,
.toolbar,
.filter-bar{
  border-radius:var(--sharp-radius-panel) !important;
}

/* ---------- Feed / social ---------- */
.feed-card,
.post-card,
.feed-post,
.social-post{
  border-left:3px solid rgba(111,148,79,.38) !important;
}

.feed-composer,
.post-composer{
  border-radius:var(--sharp-radius-panel) !important;
  border:1px solid rgba(217,177,95,.18) !important;
}

/* ---------- Deals / marketplace ---------- */
.deal-card,
.market-card,
.property-card{
  border-left:3px solid rgba(217,177,95,.28) !important;
}

.price,
.metric-value,
.stat-value,
.deal-number{
  color:#fff !important;
  font-weight:900 !important;
  letter-spacing:-.03em !important;
}

/* ---------- Pricing ---------- */
.pricing-card,
.plan-card{
  border-top:3px solid rgba(217,177,95,.26) !important;
}

.pricing-card.featured,
.plan-card.featured,
.pricing-card.pro,
.plan-card.pro{
  border-color:rgba(217,177,95,.46) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.30), 0 0 0 1px rgba(217,177,95,.08) !important;
}

/* ---------- Alerts ---------- */
.alert,
.notice,
.flash,
.message{
  border-radius:7px !important;
  border:1px solid rgba(217,177,95,.18) !important;
}

/* ---------- Mobile tightening ---------- */
@media (max-width: 760px){
  .wrap{ width:min(100% - 20px, 1180px) !important; padding-top:16px !important; }
  .page-title,.top h1,h1{ font-size:clamp(26px, 8vw, 34px) !important; }
  .card-body,.body{ padding:16px !important; }
  .card-header,.head{ padding:14px 16px !important; }
  .lead-card{ padding:13px !important; }
  .btn{ min-height:40px !important; padding:10px 13px !important; }
}
