/* =========================================================================
   Journal Practice — dashboard layout (visual redesign only)
   Scoped entirely under .jp2-page / .jp2-* so no other screen is affected.
   All markup pieces here (journal-entry-editor, journal-balance, teacher
   card, profile stats, etc.) are the SAME elements produced by the existing
   engine — this file only repositions and restyles them.

   Density note: spacing below is intentionally tight and uses vh-based
   clamps so the whole screen tends to fit one viewport on common laptop/
   desktop sizes (matching the reference), the same way the reference
   composes everything above the fold. Mission stories and teacher copy
   are data-driven and vary in length, so on a small viewport or an
   unusually long transaction the page can still scroll — nothing is ever
   clipped or hidden to force a fit.
   ========================================================================= */

.world-wrap.jp2-page{
  max-width:1400px;
  padding:clamp(8px,1.6vh,22px) clamp(14px,2vw,20px) clamp(10px,2vh,32px);
}

.jp2-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:clamp(10px,1.4vh,18px);
  align-items:start;
}

.jp2-main{display:flex;flex-direction:column;gap:clamp(8px,1.2vh,14px);min-width:0}

/* ---- top row: teacher card + step briefing side by side ---- */
.jp2-top{
  display:grid;
  grid-template-columns:minmax(260px,360px) minmax(0,1fr);
  gap:clamp(8px,1.2vh,14px);
  align-items:start;
}

.jp2-teacher{min-width:0;display:flex}
.jp2-teacher .teacher-card{margin:0;width:100%;box-sizing:border-box}

.jp2-brief{display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(10px,1.6vh,20px) clamp(16px,1.8vw,22px)}
.jp2-brief .eyebrow{justify-content:flex-start;margin-bottom:6px}
.jp2-brief h2{margin:0 0 6px;font-size:clamp(19px,1.6vw + 1vh,25px);line-height:1.15}
.jp2-brief .journal-practice-story{text-align:left;margin:0 0 10px;max-width:none;font-size:.85rem;line-height:1.45}
.jp2-brief .journal-coach{margin:0;padding:9px 12px;font-size:.75rem;line-height:1.4}
.jp2-brief .journal-coach b{margin-bottom:2px}

/* ---- teacher card rearranged: avatar+identity left, speech+tip right ---- */
.jp2-teacher .teacher-card.teacher-card-compact{
  display:grid;
  grid-template-columns:116px minmax(0,1fr);
  grid-template-areas:
    "visual  speech"
    "identity tip";
  align-items:start;
  gap:8px 12px;
  padding:clamp(8px,1.4vh,14px);
}
.jp2-teacher .teacher-visual{grid-area:visual;min-height:0;align-self:start;justify-content:center}
.jp2-teacher .teacher-avatar{width:114px;height:149px;margin:0}
.jp2-teacher .teacher-avatar-ben{width:110px;height:160px;margin:0}
.jp2-teacher .teacher-identity{grid-area:identity;align-self:start;justify-content:center;padding:2px 0 0;gap:8px}
.jp2-teacher .teacher-identity-icon{width:32px;height:32px;font-size:17px}
.jp2-teacher .teacher-identity strong{font-size:15px}
.jp2-teacher .teacher-identity span{font-size:11px}
.jp2-teacher .teacher-speech{grid-area:speech;padding:12px 14px 13px}
.jp2-teacher .teacher-speech h3{font-size:16px;margin:0 0 5px}
.jp2-teacher .teacher-speech p{font-size:12px;line-height:1.42}
.jp2-teacher .teacher-speech .teacher-prompt{margin-top:8px;padding:8px 10px;font-size:11px}
.jp2-teacher .teacher-section-label{margin-bottom:4px;font-size:9px}
.jp2-teacher .teacher-tip{grid-area:tip;align-self:end;padding:10px 12px}
.jp2-teacher .teacher-tip-title{font-size:11px}
.jp2-teacher .teacher-tip-icon{width:23px;height:23px;font-size:13px}
.jp2-teacher .teacher-tip p{font-size:11px;line-height:1.42;margin:5px 0 0}

/* ---- editor card ---- */
.jp2-editor{padding:clamp(10px,1.6vh,22px) clamp(16px,1.8vw,22px)}
.jp2-editor .journal-entry-editor{margin-bottom:0}
.jp2-editor .journal-editor-head,
.jp2-editor .journal-editor-row{padding:7px 12px}
.jp2-editor .journal-mode-note{margin:6px 0;font-size:.7rem}
.jp2-editor .journal-balance{margin:0 0 8px;padding:7px 12px}
.jp2-editor .journal-feedback{margin:0 0 10px;min-height:0;padding:0;background:none}
.jp2-editor .journal-feedback:empty{margin:0;padding:0}
.jp2-editor .journal-feedback:not(:empty){padding:10px 13px;background:rgba(255,255,255,.025)}
.jp2-editor .journal-actions{margin:0 0 10px}
.jp2-editor .journal-actions .btn{padding:11px 20px}
.jp2-editor .journal-progress{margin-top:10px;padding-top:9px}

/* ---- sidebar ---- */
.jp2-sidebar{display:flex;flex-direction:column;gap:clamp(10px,1.4vh,14px);position:sticky;top:14px}

.jp2-card-title{font:700 .64rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--parchment-dim);margin-bottom:10px}

.jp2-stat-card{padding:12px 14px}
.jp2-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.jp2-stat{padding:7px 6px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.025)}
.jp2-stat span{display:block;font:600 .56rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--parchment-dim)}
.jp2-stat b{display:block;margin-top:3px;font-size:.94rem}
.jp2-xp-bar{margin-top:10px;height:5px;background:var(--rule);border-radius:99px;overflow:hidden}
.jp2-xp-bar i{display:block;height:100%;background:var(--entrust);border-radius:inherit;transition:width .35s var(--ease)}

.jp2-progress-card{padding:12px 14px}
.jp2-progress-body{display:flex;align-items:center;gap:14px}
.jp2-ring{
  --pct:0;
  flex:0 0 auto;
  width:74px;height:74px;border-radius:50%;
  background:conic-gradient(var(--entrust) calc(var(--pct) * 1%), var(--rule) 0);
  display:grid;place-items:center;
}
.jp2-ring-inner{
  width:57px;height:57px;border-radius:50%;background:var(--ledger);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
}
.jp2-ring-inner b{font-size:.92rem;line-height:1}
.jp2-ring-inner span{margin-top:2px;font:600 .5rem var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--parchment-dim)}
.jp2-progress-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.jp2-progress-list div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.76rem}
.jp2-progress-list span{color:var(--parchment-dim)}
.jp2-progress-list b{font-weight:700}
.jp2-progress-note{margin-top:10px;padding-top:9px;border-top:1px solid var(--rule);font-size:.68rem;color:var(--parchment-dim);line-height:1.4}

.jp2-help-card{padding:12px 14px}
.jp2-help-card .jp2-card-title{margin-bottom:6px}
.jp2-help-card p{margin:0 0 10px;font-size:.76rem;line-height:1.42;color:var(--parchment-dim)}
.jp2-help-card .btn{width:100%;justify-content:center;padding:10px 18px}

/* =========================================================================
   Responsive behaviour
   ========================================================================= */

/* Sidebar drops below the main column once there isn't room for both. */
@media(max-width:1180px){
  .jp2-wrap{grid-template-columns:1fr}
  .jp2-sidebar{position:static;order:2}
  .jp2-main{order:1}
  .jp2-sidebar{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
}
@media(max-width:760px){
  .jp2-sidebar{grid-template-columns:1fr}
}

/* Teacher card + briefing stack on medium screens. */
@media(max-width:920px){
  .jp2-top{grid-template-columns:1fr}
}

/* Teacher card internal layout collapses to a single column. */
@media(max-width:640px){
  .jp2-teacher .teacher-card.teacher-card-compact{
    grid-template-columns:1fr;
    grid-template-areas:
      "visual"
      "identity"
      "speech"
      "tip";
    padding:14px;
  }
  .jp2-teacher .teacher-visual{justify-self:center}
  .jp2-teacher .teacher-avatar{width:150px;height:196px}
  .jp2-teacher .teacher-avatar-ben{width:145px;height:210px}
  .jp2-teacher .teacher-identity{align-items:center;text-align:center;justify-content:center}
}

@media(max-width:640px){
  .world-wrap.jp2-page{padding:12px 12px 28px}
  .jp2-wrap{gap:14px}
  .jp2-main{gap:14px}
  .jp2-editor{padding:16px}
  .jp2-brief{padding:16px}
  .jp2-progress-body{flex-direction:column;align-items:flex-start}
  .jp2-progress-list{width:100%}
}

@media(max-width:400px){
  .jp2-stat-row{grid-template-columns:1fr 1fr 1fr;gap:6px}
  .jp2-stat b{font-size:.86rem}
}


/* =========================================================================
   JOURNAL PRACTICE · REFERENCE-MATCH PASS (JP3)
   Visual-only shell around the existing Journal Practice engine.
   The accounting logic and data attributes are intentionally unchanged.
   ========================================================================= */

.jp3-page{
  max-width:1540px;
  margin:0 auto;
  padding:clamp(8px,1.1vh,18px) clamp(10px,1.3vw,20px) 24px;
}

.jp3-layout{
  display:grid;
  grid-template-columns:minmax(220px,250px) minmax(520px,1fr) minmax(270px,310px);
  gap:clamp(10px,1vw,16px);
  align-items:start;
}

.jp3-left,.jp3-center,.jp3-sidebar{min-width:0}
.jp3-left,.jp3-sidebar{display:flex;flex-direction:column;gap:10px}
.jp3-left{position:sticky;top:10px}
.jp3-sidebar{position:sticky;top:10px}

.jp3-brand-panel{padding:5px 6px 10px}
.jp3-brand{display:flex;align-items:center;gap:10px}
.jp3-brand-mark{
  width:42px;height:42px;display:grid;place-items:center;border:2px solid var(--entrust);
  border-radius:12px;color:var(--entrust);font-size:25px;font-weight:900;transform:rotate(-8deg)
}
.jp3-brand b{display:block;font-family:var(--font-display);font-size:23px;letter-spacing:-.04em}
.jp3-brand small{display:block;margin-top:1px;color:var(--parchment-dim);font-size:9px;line-height:1.25}

.jp3-teacher .teacher-card{
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  padding:10px!important;
  border-radius:14px!important;
  background:linear-gradient(155deg,var(--ledger-2),var(--ledger))!important;
  box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
}
.jp3-teacher .teacher-visual{
  order:1;
  min-height:0!important;
  height:150px!important;
  overflow:visible!important;
  align-self:center!important;
}
.jp3-teacher .teacher-avatar{
  width:120px!important;
  height:158px!important;
  margin:-2px 0 -8px!important;
}
.jp3-teacher .teacher-avatar-ben{
  width:115px!important;
  height:170px!important;
}
.jp3-teacher .teacher-identity{
  order:2;
  justify-content:center!important;
  text-align:center;
  gap:6px!important;
  padding:0!important;
}
.jp3-teacher .teacher-identity-icon{display:none}
.jp3-teacher .teacher-identity strong{font-size:15px}
.jp3-teacher .teacher-identity span{display:block;font-size:10px;color:var(--parchment-dim)}
.jp3-teacher .teacher-speech{
  order:3;
  padding:9px 10px!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.035)!important;
}
.jp3-teacher .teacher-section-label{font-size:8px!important;margin-bottom:3px!important}
.jp3-teacher .teacher-speech h3{font-size:14px!important;line-height:1.2;margin:0 0 4px!important}
.jp3-teacher .teacher-speech p{font-size:10.5px!important;line-height:1.4}
.jp3-teacher .teacher-prompt{margin-top:6px!important;padding:6px 8px!important;font-size:9.5px!important}
.jp3-teacher .teacher-tip{
  order:4;
  padding:8px 9px!important;
  border-radius:10px!important;
}
.jp3-teacher .teacher-tip-title{font-size:9.5px!important}
.jp3-teacher .teacher-tip p{font-size:9.5px!important;line-height:1.35;margin-top:3px!important}

.jp3-section-kicker{
  color:var(--entrust);
  font:700 .59rem var(--font-mono);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.jp3-guidance-card,.jp3-tip-card,.jp3-ilo-card{padding:12px}
.jp3-guidance-card h3{font-size:14px;margin:5px 0 5px}
.jp3-guidance-card p,.jp3-tip-card p{font-size:10.5px;line-height:1.45;color:var(--parchment-dim)}
.jp3-guidance-prompt{
  margin-top:9px;padding:8px 9px;border-radius:9px;
  background:rgba(217,164,65,.07);border:1px solid rgba(217,164,65,.22);
  font-size:9.5px;color:var(--parchment)
}
.jp3-tip-card{border-color:rgba(217,164,65,.22)}
.jp3-tip-card p{margin-top:6px}
.jp3-tip-card b{color:var(--parchment)}
.jp3-ilo-card{padding-bottom:10px}
.jp3-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  color:var(--parchment-dim);
  font:700 .6rem var(--font-mono);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.jp3-card-glyph{color:var(--entrust);font-size:13px}
.jp3-ilo-list{position:relative;margin-top:10px}
.jp3-ilo-list::before{
  content:"";position:absolute;left:12px;top:12px;bottom:12px;width:1px;background:var(--rule)
}
.jp3-ilo-row{
  position:relative;z-index:1;display:flex;align-items:center;gap:9px;
  padding:5px 0;font-size:10.5px;color:var(--parchment-dim)
}
.jp3-ilo-node{
  width:24px;height:24px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--rule);background:var(--ledger-2);
  font:700 9px var(--font-mono)
}
.jp3-ilo-row.is-done{color:var(--parchment)}
.jp3-ilo-row.is-done .jp3-ilo-node{border-color:var(--owe);background:var(--owe-dim);color:#dff4ec}
.jp3-ilo-row.is-current{color:var(--entrust);font-weight:700}
.jp3-ilo-row.is-current .jp3-ilo-node{border-color:var(--entrust);background:var(--entrust);color:var(--ink)}
.jp3-back-btn{width:100%;justify-content:center;padding:9px 12px;font-size:11px}

/* center heading */
.jp3-page-heading{
  min-height:66px;
  display:flex;align-items:center;gap:12px;
  padding:2px 3px 10px;
}
.jp3-heading-icon{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  color:var(--entrust);border:1px solid rgba(217,164,65,.35);
  background:rgba(217,164,65,.06);font-size:25px;
}
.jp3-heading-kicker{color:var(--entrust);font:700 .58rem var(--font-mono);letter-spacing:.11em;text-transform:uppercase}
.jp3-page-heading h1{font-size:clamp(24px,2vw,30px);line-height:1;margin:2px 0 3px}
.jp3-page-heading p{font-size:10.5px;color:var(--parchment-dim)}
.jp3-heading-stats{margin-left:auto;display:flex;align-items:stretch;gap:5px}
.jp3-heading-stats>div{
  min-width:70px;padding:6px 9px;border-left:1px solid var(--rule);
  display:grid;grid-template-columns:auto 1fr;column-gap:5px;align-items:center;
}
.jp3-heading-stats b{grid-row:1/3;color:var(--entrust);font-size:19px}
.jp3-heading-stats span{font-size:15px;font-weight:800;line-height:1}
.jp3-heading-stats small{font-size:7px;color:var(--parchment-dim)}
.jp3-level-badge{min-width:88px!important}
.jp3-level-badge span{color:var(--parchment)}
.jp3-level-badge small{color:var(--parchment-dim)}

.jp3-scenario-card{padding:12px 14px;margin-bottom:8px}
.jp3-scenario-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.jp3-scenario-pill,.jp3-mode-pill{
  padding:4px 8px;border-radius:99px;font:700 .56rem var(--font-mono);letter-spacing:.06em
}
.jp3-scenario-pill{background:rgba(217,164,65,.1);color:#cbb8d7}
.jp3-mode-pill{border:1px solid var(--rule);color:var(--parchment-dim)}
.jp3-scenario-body{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(220px,.7fr);gap:12px;align-items:center}
.jp3-scenario-art{
  width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.07);font-size:33px
}
.jp3-scenario-copy h2{font-size:18px;line-height:1.2;margin:0 0 5px}
.jp3-scenario-copy p{font-size:12px;line-height:1.45;color:var(--parchment)}
.jp3-think-box{
  border-left:1px solid var(--rule);padding-left:13px;
}
.jp3-think-box span{display:block;color:var(--entrust);font:700 .6rem var(--font-mono);letter-spacing:.08em}
.jp3-think-box p{margin-top:5px;font-size:10.5px;line-height:1.45;color:var(--parchment-dim)}

.jp3-stage-track{
  display:grid;grid-template-columns:repeat(6,1fr);gap:4px;
  padding:8px 10px;border:1px solid var(--rule);border-radius:12px;background:rgba(255,255,255,.015);
  margin-bottom:8px;position:relative
}
.jp3-stage-track::before{
  content:"";position:absolute;left:7%;right:7%;top:25px;border-top:1px solid rgba(255,255,255,.1);z-index:0
}
.jp3-stage{position:relative;z-index:1;text-align:center;min-width:0}
.jp3-stage span{
  width:28px;height:28px;margin:0 auto 4px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--rule);background:var(--ledger);font:700 9px var(--font-mono)
}
.jp3-stage small{display:block;font-size:7px;color:var(--parchment-dim);white-space:nowrap}
.jp3-stage.done span{background:var(--owe-dim);border-color:var(--owe);color:#dff4ec}
.jp3-stage.done small{color:var(--parchment)}
.jp3-stage.current span{background:var(--entrust);border-color:var(--entrust);color:var(--ink);box-shadow:0 0 16px rgba(217,164,65,.22)}
.jp3-stage.current small{color:var(--entrust);font-weight:700}
.jp3-stage.next span{opacity:.7}

.jp3-editor-card{padding:13px 14px}
.jp3-editor-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.jp3-editor-title h2{font-size:17px;margin-top:2px}
.jp3-editor-badge{
  padding:4px 7px;border:1px solid rgba(217,164,65,.25);border-radius:99px;
  color:var(--entrust);font:700 .54rem var(--font-mono);letter-spacing:.08em
}
.jp3-editor-card .journal-entry-editor{margin-bottom:7px}
.jp3-editor-card .journal-editor-head,.jp3-editor-card .journal-editor-row{padding:7px 9px;gap:7px}
.jp3-editor-card .journal-editor-row select,.jp3-editor-card .journal-editor-row input{padding:8px;font-size:.72rem}
.jp3-editor-card .journal-mode-note{margin:7px 0;font-size:.65rem}
.jp3-editor-card .journal-balance{
  display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:center;
  margin:7px 0;padding:8px 10px
}
.jp3-editor-card .journal-balance span{display:flex;flex-direction:column;gap:2px}
.jp3-editor-card .journal-balance b{font-size:.54rem;letter-spacing:.06em;text-transform:uppercase;color:var(--parchment-dim)}
.jp3-editor-card .journal-balance strong{font-size:.78rem;color:var(--parchment)}
.jp3-editor-card .journal-balance em{
  padding:5px 7px;border-radius:7px;background:rgba(61,139,122,.1);font-style:normal;font-size:.58rem;font-weight:800;white-space:nowrap
}
.jp3-editor-card .journal-balance em.is-unbalanced{background:rgba(193,89,75,.1)}
.jp3-actions{margin-top:7px!important}
.jp3-actions .btn{padding:9px 15px;font-size:11px}
.jp3-editor-card .journal-progress{margin-top:8px;padding-top:8px;font-size:.57rem}
.jp3-editor-card .journal-feedback:not(:empty){padding:8px 10px!important;font-size:.68rem}

/* right column */
.jp3-status-card,.jp3-overview-card,.jp3-focus-card,.jp3-recent-card{padding:12px}
.jp3-live-dot{
  width:6px;height:6px;border-radius:50%;background:var(--owe);
  box-shadow:0 0 8px rgba(61,139,122,.7)
}
.jp3-status-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px}
.jp3-status-grid>div{text-align:center;border-right:1px solid var(--rule)}
.jp3-status-grid>div:last-child{border-right:0}
.jp3-status-grid span,.jp3-xp-meta span,.jp3-mastery-head span{
  display:block;color:var(--parchment-dim);font:600 .54rem var(--font-mono);letter-spacing:.08em
}
.jp3-status-grid b{display:block;margin-top:3px;font-size:15px}
.jp3-xp-meta{display:flex;justify-content:space-between;gap:8px;margin-top:9px;font-size:8px}
.jp3-xp-meta b{font-size:8px;color:var(--entrust)}
.jp3-progress-track{height:5px;margin-top:5px;border-radius:99px;background:var(--rule);overflow:hidden}
.jp3-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--entrust);transition:width .35s var(--ease)}

.jp3-overview{display:flex;align-items:center;gap:12px;margin-top:10px}
.jp3-ring{
  flex:0 0 78px;width:78px;height:78px;border-radius:50%;
  background:conic-gradient(var(--entrust) calc(var(--pct)*1%),var(--rule) 0);
  display:grid;place-items:center
}
.jp3-ring-inner{width:60px;height:60px;border-radius:50%;background:var(--ledger);display:flex;flex-direction:column;align-items:center;justify-content:center}
.jp3-ring-inner b{font-size:14px}.jp3-ring-inner span{font-size:7px;color:var(--parchment-dim)}
.jp3-overview-list{flex:1;display:flex;flex-direction:column;gap:6px}
.jp3-overview-list div{display:flex;justify-content:space-between;gap:7px;font-size:9.5px}
.jp3-overview-list span{color:var(--parchment-dim)}
.is-good{color:#74c69d!important}.is-bad{color:#d86d60!important}.is-review{color:var(--entrust)!important}

.jp3-focus-icon{font-size:20px;margin-top:9px}
.jp3-focus-card h3{font-size:12px;margin:4px 0}
.jp3-focus-card p{font-size:9.5px;color:var(--parchment-dim);line-height:1.4}
.jp3-focus-card p b{color:var(--parchment)}
.jp3-mastery-head{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.jp3-mastery-head b{font-size:9px;color:var(--entrust)}

.jp3-recent-list{margin-top:8px}
.jp3-recent-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:9.5px}
.jp3-recent-row b{font-size:9px;color:var(--parchment-dim)}
.jp3-session-note{margin-top:8px;color:var(--parchment-dim);font-size:8px;line-height:1.4}

/* Keep the original top-level app header usable, but let Journal Practice
   visually become the primary cockpit once this screen is active. */
body:has(.jp3-page) .topbar{margin-bottom:0}
body:has(.jp3-page) .topbar .wordmark span{color:var(--entrust)}
body:has(.jp3-page) .topbar .wordmark b{font-size:17px}

/* Responsive: three columns -> center + right -> one-column stack. */
@media(max-width:1220px){
  .jp3-layout{grid-template-columns:minmax(205px,225px) minmax(0,1fr) 270px}
  .jp3-scenario-body{grid-template-columns:58px minmax(0,1fr)}
  .jp3-think-box{grid-column:2;border-left:0;border-top:1px solid var(--rule);padding:8px 0 0}
}
@media(max-width:1000px){
  .jp3-layout{grid-template-columns:220px minmax(0,1fr)}
  .jp3-sidebar{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);position:static}
  .jp3-left{position:static}
}
@media(max-width:760px){
  .jp3-page{padding:8px 10px 24px}
  .jp3-layout{display:flex;flex-direction:column}
  .jp3-left,.jp3-center,.jp3-sidebar{width:100%}
  .jp3-left{position:static}
  .jp3-teacher .teacher-card{max-width:none}
  .jp3-sidebar{display:grid;grid-template-columns:1fr 1fr;position:static}
  .jp3-page-heading{flex-wrap:wrap}
  .jp3-heading-stats{width:100%;margin-left:0}
  .jp3-heading-stats>div{flex:1}
  .jp3-scenario-body{grid-template-columns:58px minmax(0,1fr)}
  .jp3-think-box{grid-column:1/-1}
}
@media(max-width:560px){
  .jp3-sidebar{grid-template-columns:1fr}
  .jp3-page-heading{align-items:flex-start}
  .jp3-heading-icon{width:36px;height:36px;font-size:20px}
  .jp3-page-heading h1{font-size:23px}
  .jp3-heading-stats>div{min-width:0;padding:6px}
  .jp3-stage-track{overflow-x:auto;grid-template-columns:repeat(6,minmax(70px,1fr))}
  .jp3-stage small{white-space:normal}
  .jp3-editor-card .journal-balance{grid-template-columns:1fr 1fr}
  .jp3-editor-card .journal-balance em{grid-column:1/-1;justify-self:start}
}
@media(max-width:420px){
  .jp3-scenario-body{grid-template-columns:1fr}
  .jp3-scenario-art{width:50px;height:50px;font-size:25px}
  .jp3-think-box{grid-column:1}
  .jp3-heading-stats{gap:3px}
  .jp3-heading-stats>div{border-left:0;border-top:1px solid var(--rule)}
}

/* Reduced motion remains respected by the global accessibility rule. */
@media(prefers-reduced-motion:reduce){
  .jp3-progress-track i{transition:none}
}

/* =========================================================================
   JOURNAL PRACTICE · READABILITY + VIEWPORT FIT PASS (JP4)
   Preserve the JP3 three-column layout. This pass improves legibility by
   enlarging text and controls while reclaiming vertical space from padding,
   decorative whitespace and oversized teacher artwork. No application logic
   or markup is changed.
   ========================================================================= */

.jp3-page{padding-top:6px;padding-bottom:12px}
.jp3-layout{gap:12px}
.jp3-left,.jp3-sidebar{gap:8px}

/* Left rail: keep the teacher prominent, but give the words more room. */
.jp3-brand-panel{padding:2px 5px 7px}
.jp3-brand-mark{width:38px;height:38px;font-size:22px}
.jp3-brand b{font-size:21px}
.jp3-brand small{font-size:9px}
.jp3-teacher .teacher-card{padding:8px!important;gap:5px!important}
.jp3-teacher .teacher-visual{height:128px!important}
.jp3-teacher .teacher-avatar{width:106px!important;height:140px!important;margin:-1px 0 -6px!important}
.jp3-teacher .teacher-avatar-ben{width:102px!important;height:150px!important}
.jp3-teacher .teacher-identity strong{font-size:14px}
.jp3-teacher .teacher-identity span{font-size:10px}
.jp3-teacher .teacher-speech{padding:8px 9px!important}
.jp3-teacher .teacher-section-label{font-size:8.5px!important}
.jp3-teacher .teacher-speech h3{font-size:13px!important}
.jp3-teacher .teacher-speech p{font-size:10.5px!important;line-height:1.35}
.jp3-teacher .teacher-prompt{font-size:9.5px!important;padding:6px 7px!important}
.jp3-teacher .teacher-tip{padding:7px 8px!important}
.jp3-teacher .teacher-tip-title{font-size:9.5px!important}
.jp3-teacher .teacher-tip p{font-size:10px!important;line-height:1.35}
.jp3-guidance-card,.jp3-tip-card,.jp3-ilo-card{padding:10px}
.jp3-guidance-card h3{font-size:13px;margin:4px 0}
.jp3-guidance-card p,.jp3-tip-card p{font-size:10.5px;line-height:1.38}
.jp3-guidance-prompt{margin-top:7px;padding:7px 8px;font-size:9.5px}
.jp3-ilo-list{margin-top:7px}
.jp3-ilo-row{padding:4px 0;font-size:10.5px}
.jp3-ilo-node{width:22px;height:22px;font-size:8.5px}
.jp3-back-btn{padding:8px 10px;font-size:11px}

/* Header: larger readable title, compact vertical footprint. */
.jp3-page-heading{min-height:56px;gap:10px;padding:0 2px 7px}
.jp3-heading-icon{width:40px;height:40px;font-size:23px}
.jp3-heading-kicker{font-size:.6rem}
.jp3-page-heading h1{font-size:clamp(25px,2vw,30px);margin:1px 0 2px}
.jp3-page-heading p{font-size:11.5px}
.jp3-heading-stats{gap:3px}
.jp3-heading-stats>div{min-width:68px;padding:5px 8px}
.jp3-heading-stats b{font-size:18px}
.jp3-heading-stats span{font-size:15px}
.jp3-heading-stats small{font-size:8px}

/* Scenario: preserve the same composition while improving reading size. */
.jp3-scenario-card{padding:10px 12px;margin-bottom:7px}
.jp3-scenario-top{margin-bottom:7px}
.jp3-scenario-pill,.jp3-mode-pill{padding:4px 7px;font-size:.6rem}
.jp3-scenario-body{gap:10px}
.jp3-scenario-art{width:58px;height:58px;font-size:30px}
.jp3-scenario-copy h2{font-size:18px;margin-bottom:4px}
.jp3-scenario-copy p{font-size:13px;line-height:1.35}
.jp3-think-box{padding-left:11px}
.jp3-think-box span{font-size:.62rem}
.jp3-think-box p{margin-top:4px;font-size:11px;line-height:1.38}

/* ILO-OLI track: make labels readable without making the track taller. */
.jp3-stage-track{padding:6px 9px;margin-bottom:7px}
.jp3-stage-track::before{top:22px}
.jp3-stage span{width:26px;height:26px;margin-bottom:3px;font-size:9px}
.jp3-stage small{font-size:8.5px}

/* Journal editor: this is the primary interaction, so controls must be easy
   to read and click. Reclaim height from padding rather than shrinking text. */
.jp3-editor-card{padding:10px 12px}
.jp3-editor-title{margin-bottom:7px}
.jp3-editor-title h2{font-size:17px}
.jp3-editor-badge{font-size:.58rem;padding:4px 7px}
.jp3-editor-card .journal-entry-editor{margin-bottom:5px}
.jp3-editor-card .journal-editor-head,.jp3-editor-card .journal-editor-row{padding:6px 8px;gap:7px}
.jp3-editor-card .journal-editor-head{font-size:.68rem}
.jp3-editor-card .journal-editor-row select,.jp3-editor-card .journal-editor-row input{padding:8px 9px;font-size:.82rem;min-height:36px}
.jp3-editor-card .journal-mode-note{margin:6px 0;font-size:.72rem;line-height:1.35}
.jp3-editor-card .journal-balance{gap:6px;margin:6px 0;padding:7px 9px}
.jp3-editor-card .journal-balance b{font-size:.6rem}
.jp3-editor-card .journal-balance strong{font-size:.85rem}
.jp3-editor-card .journal-balance em{padding:5px 7px;font-size:.62rem}
.jp3-actions{margin-top:6px!important}
.jp3-actions .btn{padding:9px 14px;font-size:12px;min-height:38px}
.jp3-editor-card .journal-progress{margin-top:6px;padding-top:6px;font-size:.62rem}
.jp3-editor-card .journal-feedback:not(:empty){padding:7px 9px!important;font-size:.72rem}

/* Right rail: readable supporting information, compact cards. */
.jp3-status-card,.jp3-overview-card,.jp3-focus-card,.jp3-recent-card{padding:10px 11px}
.jp3-status-grid{margin-top:7px}
.jp3-status-grid span,.jp3-xp-meta span,.jp3-mastery-head span{font-size:.6rem}
.jp3-status-grid b{margin-top:2px;font-size:16px}
.jp3-xp-meta{margin-top:7px;font-size:9px}
.jp3-xp-meta b{font-size:9px}
.jp3-progress-track{height:5px;margin-top:4px}
.jp3-overview{gap:10px;margin-top:7px}
.jp3-ring{flex-basis:72px;width:72px;height:72px}
.jp3-ring-inner{width:56px;height:56px}
.jp3-ring-inner b{font-size:14px}.jp3-ring-inner span{font-size:8px}
.jp3-overview-list{gap:5px}
.jp3-overview-list div{font-size:10.5px}
.jp3-focus-icon{font-size:19px;margin-top:6px}
.jp3-focus-card h3{font-size:12.5px;margin:3px 0}
.jp3-focus-card p{font-size:10.5px;line-height:1.35}
.jp3-mastery-head{margin-top:7px}
.jp3-mastery-head b{font-size:9.5px}
.jp3-recent-list{margin-top:6px}
.jp3-recent-row{padding:5px 0;font-size:10.5px}
.jp3-recent-row b{font-size:10px}
.jp3-session-note{margin-top:6px;font-size:8.5px}

/* On ordinary desktop/laptop heights, preserve the three-column composition
   and keep the main cockpit comfortably above the fold. */
@media (min-width:1101px) and (min-height:700px){
  .jp3-page{padding-top:4px;padding-bottom:8px}
  .jp3-left,.jp3-sidebar{gap:7px}
  .jp3-scenario-card{padding-top:9px;padding-bottom:9px}
  .jp3-stage-track{padding-top:5px;padding-bottom:5px}
  .jp3-editor-card{padding-top:9px;padding-bottom:9px}
}

/* At smaller laptop widths keep the exact same three-column layout until the
   existing responsive breakpoints take over; only reduce non-essential gaps. */
@media (min-width:1101px) and (max-width:1360px){
  .jp3-layout{gap:9px}
  .jp3-page-heading{gap:8px}
  .jp3-heading-stats>div{min-width:62px;padding-left:6px;padding-right:6px}
  .jp3-scenario-body{gap:8px}
  .jp3-scenario-copy p{font-size:12.5px}
  .jp3-think-box p{font-size:10.5px}
  .jp3-editor-card .journal-editor-row select,.jp3-editor-card .journal-editor-row input{font-size:.78rem}
}

/* =========================================================================
   JOURNAL PRACTICE · READABILITY CORRECTION PASS (JP5)
   Visual-only refinement requested after JP4 review.
   Preserve the JP3 three-column layout, controls, spacing hierarchy and all
   application behaviour. Only teacher artwork scale and legibility change.
   ========================================================================= */

/* Give CPA Juma a stronger visual presence without changing the rail layout. */
.jp3-teacher .teacher-visual{
  height:172px!important;
}
.jp3-teacher .teacher-avatar{
  width:132px!important;
  height:174px!important;
  margin:-2px 0 -8px!important;
}
.jp3-teacher .teacher-avatar-ben{
  width:126px!important;
  height:186px!important;
  margin:-2px 0 -10px!important;
}

/* Make teacher copy genuinely readable at normal desktop viewing distance. */
.jp3-teacher .teacher-section-label{
  font-size:10px!important;
  line-height:1.25!important;
  color:var(--parchment)!important;
}
.jp3-teacher .teacher-speech h3{
  font-size:15px!important;
  line-height:1.25!important;
  margin:0 0 6px!important;
}
.jp3-teacher .teacher-speech p{
  font-size:12.5px!important;
  line-height:1.48!important;
  color:var(--parchment)!important;
}
.jp3-teacher .teacher-prompt{
  margin-top:8px!important;
  padding:8px 9px!important;
  font-size:11px!important;
  line-height:1.35!important;
  color:var(--parchment)!important;
}
.jp3-teacher .teacher-tip{
  padding:8px 9px!important;
}
.jp3-teacher .teacher-tip-title{
  font-size:11px!important;
  line-height:1.25!important;
}
.jp3-teacher .teacher-tip p{
  font-size:11.5px!important;
  line-height:1.42!important;
  margin-top:4px!important;
  color:var(--parchment)!important;
}

/* Keep the supporting left-rail copy readable as well. */
.jp3-guidance-card p,.jp3-tip-card p{
  font-size:12px;
  line-height:1.45;
  color:var(--parchment)!important;
}
.jp3-guidance-prompt{
  font-size:11px;
  line-height:1.35;
  color:var(--parchment)!important;
}

/* At narrower desktop widths, retain the same composition while avoiding
   oversized artwork or text overflow. */
@media (min-width:1101px) and (max-width:1360px){
  .jp3-teacher .teacher-visual{height:160px!important}
  .jp3-teacher .teacher-avatar{width:124px!important;height:164px!important}
  .jp3-teacher .teacher-avatar-ben{width:119px!important;height:176px!important}
  .jp3-teacher .teacher-speech p{font-size:12px!important}
  .jp3-teacher .teacher-tip p{font-size:11px!important}
}

/* Mobile/tablet: use the existing single-column teacher layout and give the
   artwork enough room to remain recognizable without changing breakpoints. */
@media (max-width:640px){
  .jp3-teacher .teacher-visual{height:185px!important}
  .jp3-teacher .teacher-avatar{width:150px!important;height:196px!important}
  .jp3-teacher .teacher-avatar-ben{width:145px!important;height:210px!important}
  .jp3-teacher .teacher-speech p{font-size:13px!important}
  .jp3-teacher .teacher-tip p{font-size:12px!important}
}

/* Final Journal Practice readability pass: keep the teacher prompt visibly legible.
   The bubble itself has a light cream background (#fff9ea, set in screens.css), so
   the text needs to stay dark — a previous pass here set it to near-white, which
   made it unreadable against that light background. */
.jp3-teacher .teacher-speech .teacher-prompt{
  color:#1a1305!important;
  font-weight:700!important;
  opacity:1!important;
  text-shadow:none;
}

/* =========================================================================
   JOURNAL PRACTICE · PROFESSIONAL POLISH PASS (JP6)
   Scoped entirely under .jp3-* / .journal-* — Journal Practice only.
   Goals: consistent left-edge alignment for every block of copy inside the
   editor card, a readable minimum type size everywhere (no sub-9px text),
   a feedback panel that doesn't leave a blank box when idle, calmer/more
   deliberate button grouping, and tidier rhythm across the three columns.
   No markup, routing, or scoring logic is touched — visual only.
   ========================================================================= */

/* ---- shared rhythm ---- */
.jp3-layout{gap:14px}
.jp3-left,.jp3-sidebar{gap:10px}

/* ---- editor card: align every line of copy to the same left inset ---- */
.jp3-editor-card{padding:16px 18px}
.jp3-editor-title{margin-bottom:11px}
.jp3-editor-card .journal-entry-editor{
  border-radius:12px;
  border-color:rgba(255,255,255,.09);
}
.jp3-editor-card .journal-editor-head,
.jp3-editor-card .journal-editor-row{
  padding:11px 14px!important;
  gap:12px;
}
.jp3-editor-card .journal-editor-head{
  font-size:.7rem!important;
  letter-spacing:.09em;
  color:var(--parchment-dim);
  opacity:.85;
  background:rgba(255,255,255,.02);
}
.jp3-editor-card .journal-editor-row select,
.jp3-editor-card .journal-editor-row input{
  padding:9px 11px!important;
  font-size:.84rem!important;
  min-height:40px;
  border-radius:9px;
  border-color:rgba(255,255,255,.12);
  transition:border-color .15s var(--ease),background .15s var(--ease);
}
.jp3-editor-card .journal-editor-row select:hover,
.jp3-editor-card .journal-editor-row input:not([readonly]):hover{
  border-color:rgba(255,255,255,.22);
}
.jp3-editor-card .journal-editor-row select:focus-visible,
.jp3-editor-card .journal-editor-row input:focus-visible{
  outline:none;
  border-color:var(--entrust);
  background:#131b2b;
  box-shadow:0 0 0 3px rgba(217,164,65,.14);
}
.jp3-editor-card .journal-editor-row input[readonly]{
  background:rgba(255,255,255,.015);
  color:var(--parchment-dim);
}
.jp3-editor-card .journal-add-line-wrap{padding:9px 14px}

/* Every text block below the grid lines up with the grid's own inset
   (row/head padding-left is 14px, so give the note the same 14px so the
   words start directly under "ACCOUNT", not flush with the card edge). */
.jp3-editor-card .journal-mode-note{
  margin:10px 2px!important;
  padding:0 14px!important;
  font-size:.72rem!important;
  line-height:1.5;
}

/* Vocabulary reference card — display-only, visually secondary. Reuses the
   same muted tone/tokens as journal-mode-note; sits below it, above the
   balance bar. Does not participate in validation. */
.jp-vocab-card{
  margin:8px 2px 14px;
  padding:9px 14px;
  border:1px dashed var(--rule);
  border-radius:10px;
  background:rgba(255,255,255,.02);
}
.jp-vocab-label{
  display:block;
  font:700 .62rem var(--font-mono);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--parchment-dim);
  opacity:.75;
  margin-bottom:6px;
}
.jp-vocab-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.jp-vocab-chip{
  font-size:.72rem;
  line-height:1.4;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:var(--parchment-dim);
}

/* ---- balance bar: clearer segments, aligned inset, sturdier pill ---- */
.jp3-editor-card .journal-balance{
  grid-template-columns:1fr 1fr 1fr auto!important;
  gap:0!important;
  margin:10px 0!important;
  padding:12px 14px!important;
  border-radius:12px;
  border-color:rgba(255,255,255,.09);
  background:rgba(255,255,255,.022);
}
.jp3-editor-card .journal-balance>span{
  padding-right:14px;
  border-right:1px solid rgba(255,255,255,.07);
  gap:3px!important;
}
.jp3-editor-card .journal-balance>span+span{padding-left:14px}
.jp3-editor-card .journal-balance b{
  font-size:.64rem!important;
  letter-spacing:.07em;
}
.jp3-editor-card .journal-balance strong{
  font-size:.92rem!important;
  font-family:var(--font-mono);
  color:var(--parchment);
}
.jp3-editor-card .journal-balance strong.is-balanced{color:var(--owe)}
.jp3-editor-card .journal-balance strong.is-unbalanced{color:var(--danger)}
.jp3-editor-card .journal-balance em{
  justify-self:end;
  padding:6px 10px!important;
  font-size:.66rem!important;
  letter-spacing:.03em;
  border:1px solid rgba(61,139,122,.35);
  background:rgba(61,139,122,.12)!important;
}
.jp3-editor-card .journal-balance em.is-unbalanced{
  border-color:rgba(193,89,75,.4);
  background:rgba(193,89,75,.12)!important;
}

/* ---- feedback: no more blank box when there is nothing to say ---- */
.jp3-editor-card .journal-feedback{
  transition:padding .18s var(--ease),margin .18s var(--ease);
}
.jp3-editor-card .journal-feedback:empty{
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:none!important;
}
.jp3-editor-card .journal-feedback:not(:empty){
  margin:0 0 12px!important;
  padding:11px 14px!important;
  border-radius:11px!important;
  border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.03)!important;
  font-size:.76rem!important;
  line-height:1.55;
}
.jp3-editor-card .journal-feedback:has(.jp-good){
  border-color:rgba(61,139,122,.4)!important;
  background:rgba(61,139,122,.09)!important;
}
.jp3-editor-card .journal-feedback:has(.jp-bad){
  border-color:rgba(193,89,75,.4)!important;
  background:rgba(193,89,75,.08)!important;
}
.jp3-editor-card .journal-feedback .jp-good,
.jp3-editor-card .journal-feedback .jp-bad{font-size:.82rem}
/* These two classes exist only for Journal Practice's check-my-entry result
   and were using the wrong color pairing (correct = gold, incorrect = the
   same teal as "balanced"), which reads backwards at a glance. Correct is
   now unambiguously green, incorrect unambiguously red. */
.jp3-editor-card .journal-feedback .jp-good{color:#74c69d!important}
.jp3-editor-card .journal-feedback .jp-bad{color:var(--danger)!important}
.jp3-editor-card .journal-feedback p{color:var(--parchment-dim)}
.jp3-editor-card .journal-feedback .jp-terminology-note{margin-top:8px}
.jp3-editor-card .journal-feedback .jp-terminology-list{margin:6px 0 0;padding-left:18px}
.jp3-editor-card .journal-feedback .jp-terminology-list li{margin:3px 0}

/* ---- actions: quiet navigation on the left, the primary CTA on the right ---- */
.jp3-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  margin-top:12px!important;
}
.jp3-actions .btn{padding:10px 18px;font-size:12.5px;min-height:40px}
.jp3-actions [data-nav="go"][data-target="home"]{order:1}
.jp3-actions [data-action="jp-new"]{order:2;margin-left:auto}
.jp3-actions [data-action="jp-clear"]{order:3}
.jp3-actions [data-action="jp-check"]{order:4;padding-left:20px;padding-right:20px;font-weight:700}

@media(max-width:560px){
  .jp3-actions [data-action="jp-new"]{margin-left:0}
  .jp3-actions .btn{flex:1 1 calc(50% - 9px);justify-content:center}
}

/* ---- scenario / stage-track: slightly larger micro-type, tidy pills ---- */
.jp3-scenario-pill,.jp3-mode-pill{font-size:.66rem!important;padding:5px 9px!important}
.jp3-think-box span{font-size:.66rem!important}
.jp3-think-box p{font-size:11.5px!important}
.jp3-scenario-copy p{font-size:12.5px}

.jp3-stage-track{padding:9px 12px}
.jp3-stage-track::before{top:23px}
.jp3-stage span{width:28px;height:28px;font-size:9.5px!important}
.jp3-stage small{font-size:9.5px!important;letter-spacing:.01em}
.jp3-editor-badge{font-size:.66rem!important;padding:5px 9px!important}

/* ---- right column: lift every sub-10px label/value to a readable size ---- */
.jp3-status-card,.jp3-overview-card,.jp3-focus-card,.jp3-recent-card{padding:13px 14px}
.jp3-heading-stats small{font-size:9.5px!important}
.jp3-status-grid span,.jp3-xp-meta span,.jp3-mastery-head span{font-size:.68rem!important}
.jp3-xp-meta{font-size:10px!important}
.jp3-xp-meta b{font-size:10px!important}
.jp3-ring-inner span{font-size:9px!important}
.jp3-overview-list div{font-size:11px!important}
.jp3-focus-card p{font-size:11px!important}
.jp3-mastery-head b{font-size:10px!important}
.jp3-recent-row{font-size:11px!important}
.jp3-recent-row b{font-size:10.5px!important}
.jp3-session-note{font-size:9.5px!important;line-height:1.45!important}

/* Card headers in the right rail: a touch more separation from their body. */
.jp3-card-head{margin-bottom:2px}
.jp3-status-grid{margin-top:11px}
.jp3-overview{margin-top:11px}
.jp3-recent-list{margin-top:9px}

/* Keep the corrected inset rules working the same way once the layout
   collapses to a single column on narrow viewports. */
@media(max-width:760px){
  .jp3-editor-card{padding:14px 16px}
}

/* Respect the existing narrow-phone layout choices (2-col balance grid,
   the status pill spanning the full row, a step-tracker that doesn't need
   to scroll on common phone widths) — these rules are scoped to the same
   breakpoint the base stylesheet already uses, just tuned to the larger
   type from this pass so nothing overlaps or clips. */
@media(max-width:560px){
  .jp3-editor-card .journal-balance{grid-template-columns:1fr 1fr!important}
  .jp3-editor-card .journal-balance>span:nth-child(2n){border-right:0}
  .jp3-editor-card .journal-balance>span:nth-child(-n+2){
    padding-bottom:10px;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .jp3-editor-card .journal-balance em{
    grid-column:1/-1!important;
    justify-self:stretch!important;
    margin-top:8px;
    text-align:center;
  }
  /* Difference is the 3rd of 3 spans (Debit, Credit, Difference) inside a
     2-column grid — the 2-up pairing only works evenly for Debit/Credit;
     Difference was left alone in column 1 with an empty column 2 beside it
     and a dangling border-right meant for a neighbour that was never there.
     Giving it the full row (like the Balanced pill below it already gets)
     turns the odd leftover cell into a clean third row. */
  .jp3-editor-card .journal-balance>span:nth-child(3){
    grid-column:1/-1;
    border-right:0;
    padding-left:0;
    padding-right:0;
  }
  .jp3-stage-track{grid-template-columns:repeat(6,minmax(54px,1fr));gap:2px;padding:9px 8px}
  .jp3-stage span{width:24px;height:24px;font-size:9px!important}
}
