.lswj{
  width:100%;
  --lswj-bg1:#fff7fb;
  --lswj-bg2:#f2fbff;
  --lswj-card:#ffffff;
  --lswj-border:rgba(50,70,90,.12);
  --lswj-text:#243040;
  --lswj-muted:#5b6b7d;
  --lswj-primary:#ff4fa3; /* pink */
  --lswj-secondary:#22c55e; /* green */
  --lswj-ai:#3b82f6; /* blue */
  --lswj-warn:#f59e0b; /* amber */
  --lswj-shadow:0 10px 30px rgba(17,24,39,.08);
  font-family: inherit;
  color: var(--lswj-text);
}

.lswj *{box-sizing:border-box;}

/* Make the journal comfortably wide on desktop, still friendly on mobile */
.entry-content .lswj.alignwide{max-width:min(1400px, 96vw); margin-left:auto; margin-right:auto;}
@media (max-width: 700px){ .entry-content .lswj.alignwide{max-width:96vw;} }


.lswj-hero{
  display:flex;
  gap:16px;
  justify-content:space-between;
  align-items:flex-start;
  padding:18px;
  border:1px solid var(--lswj-border);
  border-radius:18px;
  background: linear-gradient(135deg, var(--lswj-bg1), var(--lswj-bg2));
  box-shadow: var(--lswj-shadow);
  margin-bottom:14px;
}

.lswj-hero h2{margin:0 0 6px 0; font-size:1.6rem;}
.lswj-hero p{margin:0; color:var(--lswj-muted);}

.lswj-hero-right{display:flex; gap:12px; justify-content:flex-end; align-items:center;}
.lswj-pillstack{display:flex; flex-direction:column; gap:8px; align-items:flex-end;}
.lswj-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.1;
  white-space:nowrap;
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  font-size:.85rem;
  border:1px solid var(--lswj-border);
  background:#ffffffcc;
}

/* Chart wrapper + empty-state message */
.lswj-chart{position:relative; width:100%; height:220px;}
.lswj-chart canvas{width:100% !important; height:100% !important; display:block;}
.lswj-chart-empty{margin-top:10px; padding:10px 12px; border-radius:14px; background:#fff7ed; border:1px dashed rgba(245,158,11,.35); color:var(--lswj-muted); font-weight:800;}

.lswj-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid var(--lswj-border);
  border-radius:18px;
  background: #fff;
  box-shadow: var(--lswj-shadow);
  margin:14px 0;
  flex-wrap:wrap;
}

.lswj-toolbar label{display:inline-flex; align-items:center; gap:8px; color:var(--lswj-muted);}
.lswj-toolbar input{padding:8px 10px; border-radius:12px; border:1px solid var(--lswj-border); width:92px;}

.lswj-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}
@media (max-width: 900px){
  .lswj-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 600px){
  .lswj-grid{grid-template-columns: 1fr;}
}

.lswj-card{
  background: var(--lswj-card);
  border: 1px solid var(--lswj-border);
  border-radius: 18px;
  padding: 14px;
  box-shadow: var(--lswj-shadow);
}

.lswj-center{text-align:center;}

.lswj-metric-title{color:var(--lswj-muted); font-weight:700; margin-bottom:8px;}
.lswj-metric-value{font-size:1.45rem; font-weight:900; letter-spacing:-.02em;}

.lswj-mini{font-size:.9rem; color:var(--lswj-muted);}

.lswj-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid transparent;
  cursor:pointer;
  text-decoration:none;
  font-weight:800;
  transition: transform .05s ease, filter .15s ease;
}
.lswj-btn:hover{filter: brightness(1.03);}
.lswj-btn:active{transform: translateY(1px);}

.lswj-btn-primary{background: var(--lswj-primary); color:#fff;}
.lswj-btn-secondary{background: #eafff2; color:#0f5132; border-color: rgba(34,197,94,.35);}
.lswj-btn-ai{background: #eaf2ff; color:#1d4ed8; border-color: rgba(59,130,246,.35);}

.lswj-insight-head{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.lswj-insight h3{margin:0;}
.lswj-insight-body{margin-top:10px; padding:12px; border-radius:14px; background: linear-gradient(135deg,#fff7ed,#eff6ff); border:1px dashed rgba(245,158,11,.35);}

.lswj-loading{color:var(--lswj-muted);}

.lswj-charts{margin-top:12px;}
.lswj-charts h3{margin-top:0;}

.lswj-tabs{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0;}
.lswj-tab{
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--lswj-border);
  background:#fff;
  cursor:pointer;
  font-weight:800;
}
.lswj-tab.is-active{background: linear-gradient(135deg,#ffe4f4,#eaf2ff); border-color: rgba(255,79,163,.25);}

.lswj-pane{display:none; margin-top:10px;}
.lswj-pane.is-active{display:block;}

.lswj-form label{display:block; margin:10px 0; font-weight:800; color:var(--lswj-muted);}
.lswj-form input, .lswj-form select, .lswj-form textarea{
  width:100%;
  margin-top:6px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--lswj-border);
  outline:none;
}

.lswj-row{display:grid; grid-template-columns: 1fr 1fr; gap:10px;}
@media (max-width: 700px){ .lswj-row{grid-template-columns: 1fr;} }

.lswj-check{display:flex!important; align-items:center; gap:8px;}
.lswj-check input{width:auto; margin-top:0;}

.lswj-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}

.lswj-form-msg{margin-top:10px; font-weight:800;}
.lswj-form-msg.ok{color:#0f5132;}
.lswj-form-msg.err{color:#b42318;}

.lswj-export{margin-top:18px;}
.lswj-export-buttons{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;}

.lswj-forecast-grid{display:grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap:10px; align-items:end;}
@media (max-width: 1100px){ .lswj-forecast-grid{grid-template-columns: 1fr; } }

.lswj-forecast-result{margin-top:12px; padding:12px; border-radius:14px; background:#f7fff9; border:1px solid rgba(34,197,94,.25);}

/* Modal */
.lswj-modal{position:fixed; inset:0; background:rgba(20,30,40,.55); display:none; align-items:center; justify-content:center; padding:18px; z-index:9999;}
.lswj-modal.is-open{display:flex;}
.lswj-modal-inner{width:min(820px, 96vw); background:#fff; border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.25); overflow:hidden;}
.lswj-modal-inner{width:min(820px, 96vw); background:#fff; border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.25); overflow:hidden;}
.lswj-modal-head{display:flex; justify-content:space-between; align-items:center; padding:14px; background:linear-gradient(135deg,#eaf2ff,#ffe4f4);}
.lswj-modal-close{border:0; background:transparent; cursor:pointer; font-size:18px; padding:8px; border-radius:12px;}
.lswj-modal-body{padding:14px;}

/*
  Prevent "hover vibration" caused by scrollbar appearing/disappearing and changing layout.
  We keep the vertical scrollbar space stable.
*/
.lswj-chat-log{
  height:260px;
  overflow-x:hidden;
  overflow-y:scroll;
  scrollbar-gutter: stable both-edges;
  border:1px solid var(--lswj-border);
  border-radius:14px;
  padding:10px;
  background:#fbfdff;
}
.lswj-bubble{max-width:85%; padding:10px 12px; border-radius:16px; margin:8px 0; border:1px solid var(--lswj-border);}
.lswj-bubble.me{margin-left:auto; background:#fff7ed;}
.lswj-bubble.ai{background:#eff6ff;}
.lswj-chat-input{display:flex; gap:8px; margin-top:10px;}
.lswj-chat-text{flex:1;}


/* LuckScouty */
.lswj-luckscouty-hero{
  width:84px; height:84px; border-radius:22px;
  object-fit:cover;
  border:2px solid rgba(34,197,94,.25);
  box-shadow:0 10px 24px rgba(16,24,40,.12);
  margin-bottom:10px;
}
.lswj-luckscouty-icon{
  width:34px; height:34px; border-radius:12px; object-fit:cover;
  border:1px solid rgba(34,197,94,.25);
}
.lswj-insight-title{display:flex; align-items:center; gap:10px;}
.lswj-modal-title{display:flex; align-items:flex-start; gap:10px;}
.lswj-bubble.ai{position:relative; padding-left:46px;}
.lswj-bubble.ai:before{
  content:'';
  position:absolute;
  left:12px; top:10px;
  width:26px; height:26px;
  border-radius:999px;
  background-image: var(--lswj-luckscouty-url);
  background-size: cover;
  background-position: center;
  border:1px solid rgba(34,197,94,.25);
}

/* Goals */
.lswj-progress{height:10px; border-radius:999px; background:#f1f5f9; border:1px solid var(--lswj-border); overflow:hidden; margin-top:10px;}
.lswj-progress span{display:block; height:100%; background:linear-gradient(90deg,#22c55e,#3b82f6,#ff4fa3); width:0%;}

/* Badges & streaks */
.lswj-badges-summary{margin:10px 0;}
.lswj-badge-summary-card{border-left:6px solid #f1c40f;}
.lswj-badge-stats{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0;}
.lswj-badges-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;}
.lswj-badge-card{position:relative;}
.lswj-badge-card.earned{border-left:6px solid #22c55e;}
.lswj-badge-card.locked{border-left:6px solid #94a3b8;opacity:0.92;}
.lswj-badge-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.lswj-badge-title{font-weight:800;}
.lswj-badge-tag{font-size:12px;padding:3px 8px;border-radius:999px;background:#eef2ff;white-space:nowrap;}
.lswj-badge-card.earned .lswj-badge-tag{background:#e9fff1;}
.lswj-badge-card.locked .lswj-badge-tag{background:#f4f6f7;}
.lswj-badges-rules{margin-top:14px;}
.lswj-badge-rule{padding:6px 0;border-bottom:1px dashed rgba(0,0,0,0.10);}
.lswj-badge-rule:last-child{border-bottom:0;}
.lswj-goals-cards{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; margin-top:12px;}
@media (max-width: 700px){ .lswj-goals-cards{grid-template-columns: 1fr;} }

/* Reports */
.lswj-report-items{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.lswj-report-view{margin-top:12px;}
.lswj-report-view h4{margin:10px 0 6px 0;}
.lswj-report-view ul{margin:6px 0 6px 18px;}

/* Certificate */
.lswj-cert-card{background:linear-gradient(135deg,#fff7fb,#f2fbff);}

/* Disabled buttons should still look friendly */
.lswj-btn:disabled{opacity:.6; cursor:not-allowed; filter:saturate(.8);}


/* Entries table */
.lswj-table-wrap{overflow:auto; border:1px solid var(--lswj-border); border-radius:14px; background:#fff;}
.lswj-table{width:100%; border-collapse:collapse; min-width:720px;}
.lswj-table th, .lswj-table td{padding:10px 10px; border-bottom:1px solid rgba(50,70,90,.10); vertical-align:top;}
.lswj-table th{font-size:.9rem; text-align:left; background:linear-gradient(135deg,#fff7fb,#f2fbff);}
.lswj-row-actions{white-space:nowrap;}
.lswj-btn-warn{background:linear-gradient(135deg,#ffd08a,#ffb703); border:none; color:#3a2a00;}
.lswj-btn-warn:hover{filter:brightness(.98);}

/* Insight formatting */
.lswj-insight-points{display:grid; gap:10px;}
.lswj-insight-point{padding:10px 12px; border:1px dashed rgba(50,70,90,.18); border-radius:14px; background:#ffffffcc;}
.lswj-insight-point b{font-weight:900;}

/* Charts: prevent legend/labels collisions */
.lswj-chart{position:relative; min-height:260px;}
.lswj-chart canvas{width:100% !important; height:260px !important;}
@media (max-width:700px){ .lswj-chart{min-height:220px;} .lswj-chart canvas{height:220px !important;} }

.lswj-chart-empty{margin-top:10px; padding:10px 12px; border:1px dashed var(--lswj-border); border-radius:14px; background:rgba(255,255,255,.7); color:var(--lswj-muted); font-size:.95rem; text-align:center;}


body.lswj-noscroll{overflow:hidden;}


.lswj-toolbar label.lswj-disabled { opacity: 0.55; }
