/* ==========================================================================
   LeaderSol Client Portal — loaded only on the /account/ page.
   Brand tokens from base.css.
   ========================================================================== */
.ls-account-wrap{ max-width:var(--ls-container); margin:0 auto; padding:36px 20px 64px; }
.lspt{ display:grid; grid-template-columns:260px 1fr; gap:30px; max-width:100%; margin:0; padding:0; }

/* flaticon glyphs outside .ls-sec need an explicit font-family */
.lspt [class^="flaticon-"]::before,
.lspt [class*=" flaticon-"]::before{
	font-family:'flaticon'!important; font-weight:normal; font-style:normal; font-variant:normal;
	-webkit-font-smoothing:antialiased;
}

/* sidebar */
.lspt-side{ align-self:start; position:sticky; top:96px; background:#fff; border:1px solid var(--ls-line); border-radius:18px; overflow:hidden; }
.lspt-side__user{ display:flex; align-items:center; gap:12px; padding:20px; background:linear-gradient(150deg,#00ccf7,#0092bd); color:#fff; }
.lspt-side__avatar{ width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.22); display:grid; place-items:center; font-family:'Sora',sans-serif; font-weight:800; font-size:18px; flex-shrink:0; }
.lspt-side__user strong{ display:block; font-family:'Sora',sans-serif; font-size:15px; line-height:1.2; }
.lspt-side__user span{ font-size:12px; color:rgba(255,255,255,.85); word-break:break-all; }
.lspt-nav{ display:flex; flex-direction:column; padding:10px; }
.lspt-nav__link{ display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:11px; color:var(--ls-ink); font-family:'Sora',sans-serif; font-weight:600; font-size:14.5px; text-decoration:none; transition:background .18s,color .18s; }
.lspt-nav__link i::before{ color:var(--ls-cyan); font-size:16px; }
.lspt-nav__link:hover{ background:#f2fafd; text-decoration:none; color:var(--ls-ink); }
.lspt-nav__link.is-active{ background:var(--ls-cyan); color:#fff; }
.lspt-nav__link.is-active i::before{ color:#fff; }
.lspt-nav__link--out{ margin-top:6px; border-top:1px solid var(--ls-line); border-radius:0; color:var(--ls-muted); }
.lspt-nav__link--out i::before{ color:var(--ls-muted); }

/* main */
.lspt-main{ min-width:0; }
.lspt-h{ font-family:'Sora',sans-serif; font-weight:800; font-size:26px; color:var(--ls-ink); margin:0 0 20px; }
.lspt-h3{ font-family:'Sora',sans-serif; font-weight:700; font-size:18px; color:var(--ls-ink); margin:34px 0 14px; }
.lspt-lead{ color:var(--ls-muted); font-size:15.5px; margin:0 0 22px; }
.lspt-muted{ display:block; color:var(--ls-muted); font-size:12.5px; }
.lspt-ta-right{ text-align:right; }

/* notice */
.lspt-notice{ border-radius:12px; padding:14px 18px; margin:0 0 22px; font-weight:600; font-size:14.5px; }
.lspt-notice--ok{ background:rgba(0,204,247,.1); color:#046a86; border:1px solid rgba(0,204,247,.35); }
.lspt-notice--err{ background:#fff4f4; color:#b4232a; border:1px solid #f3c9cb; }

/* stat cards */
.lspt-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:0 0 8px; }
.lspt-card{ display:flex; flex-direction:column; gap:4px; padding:22px; background:#fff; border:1px solid var(--ls-line); border-radius:16px; text-decoration:none; transition:transform .2s,box-shadow .2s,border-color .2s; color:inherit; }
.lspt-card:hover{ transform:translateY(-3px); border-color:#cdeaf4; box-shadow:0 24px 50px -34px rgba(0,110,140,.4); text-decoration:none; color:inherit; }
.lspt-card__n{ font-family:'Sora',sans-serif; font-weight:800; font-size:34px; line-height:1; color:var(--ls-cyan); }
.lspt-card__l{ font-size:13px; color:var(--ls-muted); font-weight:600; }
.lspt-card--warn .lspt-card__n{ color:#e08a00; }
.lspt-card--due .lspt-card__n{ color:#b4232a; }

/* table */
.lspt-tablewrap{ overflow-x:auto; background:#fff; border:1px solid var(--ls-line); border-radius:16px; }
.lspt-table{ width:100%; border-collapse:collapse; min-width:560px; }
.lspt-table th{ text-align:left; font-family:'Sora',sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--ls-muted); padding:14px 18px; border-bottom:1px solid var(--ls-line); background:#fafcfe; }
.lspt-table td{ padding:16px 18px; border-bottom:1px solid var(--ls-line); font-size:14.5px; vertical-align:middle; }
.lspt-table tr:last-child td{ border-bottom:none; }
.lspt-table td strong{ font-family:'Sora',sans-serif; font-weight:700; color:var(--ls-ink); display:block; }
.lspt-row-link{ cursor:pointer; transition:background .15s; }
.lspt-row-link:hover{ background:#f7fcfe; }

/* badges */
.lspt-badge{ display:inline-block; font-family:'Sora',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.02em; padding:4px 11px; border-radius:20px; white-space:nowrap; }
.lspt-badge--active,.lspt-badge--paid,.lspt-badge--resolved,.lspt-badge--closed{ background:#e3f7ed; color:#12864e; }
.lspt-badge--expiring,.lspt-badge--due,.lspt-badge--pending,.lspt-badge--waiting,.lspt-badge--open,.lspt-badge--in_progress{ background:#fff4de; color:#b5730a; }
.lspt-badge--expired,.lspt-badge--overdue,.lspt-badge--suspended,.lspt-badge--cancelled{ background:#ffe6e6; color:#b4232a; }
.lspt-badge--refunded{ background:#eef1f5; color:#5a6472; }

/* buttons — beat any inherited prose/link colors */
.lspt-btn,
.lspt a.lspt-btn,
.lspt-empty a.lspt-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:7px;
	background:var(--ls-cyan)!important; color:#fff!important;
	font-family:'Sora',sans-serif; font-weight:700; text-decoration:none!important;
	border-radius:9px; border:none; cursor:pointer;
	transition:transform .18s,box-shadow .18s;
}
.lspt-btn:hover,
.lspt a.lspt-btn:hover,
.lspt-empty a.lspt-btn:hover{
	transform:translateY(-1px); color:#fff!important; text-decoration:none!important;
	box-shadow:0 14px 24px -12px rgba(0,204,247,.7);
}
.lspt-btn--sm{ height:36px; padding:0 15px; font-size:13px; }
.lspt-btn--md{ height:44px; padding:0 22px; font-size:14.5px; }
.lspt-btn--ghost,
.lspt a.lspt-btn--ghost{
	background:#fff!important; color:var(--ls-ink)!important;
	border:1.5px solid var(--ls-line)!important; margin-left:8px;
}
.lspt-btn--ghost:hover,
.lspt a.lspt-btn--ghost:hover{ border-color:var(--ls-cyan)!important; color:var(--ls-cyan)!important; box-shadow:none; }
.lspt-actions{ white-space:nowrap; }
.lspt-actions .lspt-btn{ margin-left:6px; }
.lspt-actions .lspt-btn:first-child{ margin-left:0; }
.lspt-svc-link{ color:var(--ls-ink); text-decoration:none; }
.lspt-svc-link:hover{ color:var(--ls-cyan); }

/* Service detail */
.lspt-svc{ background:#fff; border:1px solid var(--ls-line); border-radius:18px; padding:26px; }
.lspt-svc__head{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:flex-start; margin-bottom:22px; }
.lspt-svc__title{ margin:6px 0 10px; font-family:'Sora',sans-serif; font-weight:800; font-size:24px; color:var(--ls-ink); }
.lspt-svc__cta{ display:flex; flex-wrap:wrap; gap:10px; }
.lspt-svc__cta .lspt-btn--ghost{ margin-left:0; }
.lspt-svc__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
.lspt-svc__cell{ background:#f7fcfe; border:1px solid #e4eef4; border-radius:14px; padding:14px 16px; }
.lspt-svc__cell span{ display:block; font-size:12px; color:var(--ls-muted); font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.lspt-svc__cell strong{ font-family:'Sora',sans-serif; font-size:15px; color:var(--ls-ink); }
.lspt-svc__help{ border-top:1px solid var(--ls-line); padding-top:18px; }
.lspt-svc__help p{ color:var(--ls-muted); margin:0 0 14px; font-size:14.5px; line-height:1.65; }
@media (max-width:900px){
	.lspt-svc__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
	.lspt-svc__grid{ grid-template-columns:1fr; }
}

/* empty state */
.lspt-empty{ text-align:center; padding:52px 24px; background:#fff; border:1px dashed #bfe4ef; border-radius:16px; }
.lspt-empty p{ color:var(--ls-muted); margin:0 0 18px; }
.lspt-empty .lspt-btn{ margin:4px; }

/* support */
.lspt-support-top{ margin-bottom:20px; }
.lspt-ticketform,.lspt-replyform,.lspt-account{ background:#fff; border:1px solid var(--ls-line); border-radius:16px; padding:26px; margin-bottom:26px; }
.lspt-thread-head{ display:flex; align-items:center; gap:14px; margin:6px 0 18px; }
.lspt-thread-head h3{ font-family:'Sora',sans-serif; font-weight:800; font-size:20px; color:var(--ls-ink); margin:0; }
.lspt-thread{ display:flex; flex-direction:column; gap:14px; margin-bottom:26px; }
.lspt-msg{ background:#fff; border:1px solid var(--ls-line); border-radius:14px; padding:16px 18px; }
.lspt-msg--staff{ background:#f2fafd; border-color:#cdeaf4; }
.lspt-msg__head{ display:flex; justify-content:space-between; gap:10px; margin-bottom:8px; font-size:13px; }
.lspt-msg__head strong{ font-family:'Sora',sans-serif; color:var(--ls-ink); }
.lspt-msg__head span{ color:var(--ls-muted); }
.lspt-msg__body{ font-size:14.5px; line-height:1.7; color:#3f4650; }
.lspt-msg__body p{ margin:0 0 .6em; } .lspt-msg__body p:last-child{ margin:0; }

/* login gate */
.lspt-login{ display:grid; place-items:center; padding:48px 20px 72px; }
.lspt-login__card{ width:100%; max-width:420px; background:#fff; border:1px solid var(--ls-line); border-radius:20px; padding:38px 34px; box-shadow:0 40px 80px -50px rgba(0,120,150,.5); }
.lspt-login__card h2{ font-family:'Sora',sans-serif; font-weight:800; font-size:24px; color:var(--ls-ink); margin:0 0 6px; }
.lspt-login__card>p{ color:var(--ls-muted); font-size:14.5px; margin:0 0 22px; }
.lspt-login__card .login-username,.lspt-login__card .login-password{ margin-bottom:16px; }
.lspt-login__card label{ display:block; font-family:'Sora',sans-serif; font-weight:600; font-size:13px; color:var(--ls-ink); margin-bottom:7px; }
.lspt-login__card input[type=text],.lspt-login__card input[type=password]{ width:100%; height:48px; padding:0 15px; border:1.5px solid #e4ebf1; border-radius:10px; background:#f8fbfd; font-family:'Quicksand',sans-serif; font-size:15px; }
.lspt-login__card input:focus{ outline:none; border-color:var(--ls-cyan); box-shadow:0 0 0 4px rgba(0,204,247,.14); background:#fff; }
.lspt-login__card .login-remember{ margin:6px 0 16px; font-size:13.5px; color:var(--ls-muted); }
.lspt-login__card .login-submit .button,.lspt-login__card #wp-submit{ width:100%; height:50px; border:none; cursor:pointer; background:var(--ls-cyan); color:#fff; font-family:'Sora',sans-serif; font-weight:700; font-size:15px; border-radius:10px; }
.lspt-login__links{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:20px; font-size:13.5px; }
.lspt-login__links a{ color:var(--ls-cyan); text-decoration:none; }

@media (max-width:900px){
	.ls-account-wrap{ padding:28px 20px 48px; }
	.lspt{ grid-template-columns:1fr; gap:20px; }
	.lspt-side{ position:static; }
	.lspt-nav{ flex-direction:row; flex-wrap:wrap; }
	.lspt-nav__link{ flex:1 1 auto; }
	.lspt-nav__link--out{ border-top:none; }
	.lspt-cards{ grid-template-columns:1fr 1fr; }
}
@media (max-width:480px){
	.lspt-cards{ grid-template-columns:1fr 1fr; }
	.lspt-btn--ghost{ margin-left:0; margin-top:8px; }
}
