
.rjjlpt-app{
    --cream:#fffde8;
    --yellow:#fff529;
    --pale:#fffbc2;
    --white:#ffffff;
    --dark:#252525;
    --blue:#1237d6;
    --red:#ef1b23;
    --green:#178043;
    --border:#ded9a1;
    --shadow:0 12px 32px rgba(0,0,0,.16);
    max-width:920px;
    margin:28px auto;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Noto Sans Bengali",sans-serif;
    color:var(--dark)
}
.rjjlpt-shell{
    overflow:hidden;
    border:1px solid #d7d7bf;
    border-radius:30px;
    background:linear-gradient(180deg,var(--cream) 0%,#fffed0 56%,var(--yellow) 100%);
    box-shadow:var(--shadow)
}
.rjjlpt-head{
    background:rgba(255,255,255,.9);
    border-bottom:1px solid var(--border)
}
.rjjlpt-head-session{
    display:flex;
    align-items:stretch
}
.rjjlpt-badge{
    min-width:112px;
    display:grid;
    place-items:center;
    background:var(--blue);
    color:#fff;
    font-size:48px;
    font-weight:850
}
.rjjlpt-head-copy{
    flex:1;
    padding:18px 22px
}
.rjjlpt-head-title{
    font-size:25px;
    font-weight:850
}
.rjjlpt-counter{
    margin-top:5px;
    color:#555;
    font-size:14px
}
.rjjlpt-progress{height:7px;background:#fff}
.rjjlpt-progress span{
    display:block;
    width:0;
    height:100%;
    background:var(--red);
    transition:width .2s
}
.rjjlpt-main{padding:26px}
.card{
    margin-bottom:18px;
    padding:20px;
    border:1px solid #f0edc8;
    border-radius:16px;
    background:var(--white);
    box-shadow:0 5px 16px rgba(0,0,0,.065)
}
.rjjlpt-instruction{font-size:18px;line-height:1.8}
.rjjlpt-question{
    text-align:center;
    font-size:30px;
    font-weight:720;
    line-height:1.65
}
.rjjlpt-media{text-align:center}
.rjjlpt-image{
    max-width:100%;
    max-height:430px;
    border-radius:12px
}
.rjjlpt-audio-wrap{margin-top:16px}
.rjjlpt-audio-controls{
    display:grid;
    grid-template-columns:auto auto 1fr auto;
    gap:10px;
    align-items:center
}
.rjjlpt-audio-controls button,.rjjlpt-tools button{
    border:0;
    border-radius:999px;
    padding:10px 16px;
    background:var(--blue);
    color:#fff;
    font-weight:750;
    cursor:pointer
}
.rjjlpt-audio-seek{width:100%}
.rjjlpt-options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:18px
}
.rjjlpt-option{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:58px;
    padding:16px;
    border:2px solid transparent;
    border-radius:18px;
    background:#fff;
    box-shadow:0 4px 12px rgba(0,0,0,.065);
    cursor:pointer;
    font-size:20px;
    line-height:1.45;
    transition:transform .15s,border-color .15s,background .15s
}
.rjjlpt-option:hover{
    transform:translateY(-1px);
    border-color:#e7ca00
}
.rjjlpt-option.selected{
    border-color:var(--blue);
    background:#f4f6ff
}
.rjjlpt-option.correct{
    border-color:var(--green);
    background:#ecfff3
}
.rjjlpt-option.wrong{
    border-color:var(--red);
    background:#fff0ef
}
.rjjlpt-tools{
    display:flex;
    flex-wrap:wrap;
    gap:10px
}
.rjjlpt-feedback-title.good{color:var(--green)}
.rjjlpt-feedback-title.bad{color:var(--red)}
.rjjlpt-meaning,.rjjlpt-explanation,.rjjlpt-transcript{
    margin-top:10px;
    line-height:1.75
}
.rjjlpt-footer{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:12px;
    padding:18px;
    background:rgba(255,255,255,.78)
}
.rjjlpt-btn{
    border:0;
    border-radius:999px;
    padding:12px 22px;
    background:var(--blue);
    color:#fff;
    font-weight:800;
    cursor:pointer
}
.rjjlpt-btn.secondary{
    background:#f0ce00;
    color:#222
}
.rjjlpt-btn:disabled{
    opacity:.45;
    cursor:not-allowed
}
.rjjlpt-summary{
    padding:54px 24px 42px;
    text-align:center
}
.rjjlpt-summary h2{
    margin:4px 0 12px;
    font-size:32px
}
.rjjlpt-score{
    margin:0 0 10px;
    font-size:24px;
    font-weight:850
}
.rjjlpt-result-message{
    max-width:530px;
    margin:0 auto 24px;
    color:#505050;
    line-height:1.65
}

.rjjlpt-bottom-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    padding:18px 16px 24px;
}
.rjjlpt-bottom-logo img{
    display:block;
    width:112px;
    max-width:28vw;
    height:auto;
    object-fit:contain;
}
.rjjlpt-notice{
    padding:18px;
    border:1px solid #ddd;
    border-radius:10px
}
@media(max-width:640px){
    .rjjlpt-app{margin:12px}
    .rjjlpt-shell{border-radius:21px}
    .rjjlpt-badge{
        min-width:78px;
        font-size:34px
    }
    .rjjlpt-head-copy{padding:14px}
    .rjjlpt-head-title{font-size:18px}
    .rjjlpt-main{padding:14px}
    .card{padding:16px}
    .rjjlpt-instruction{font-size:16px}
    .rjjlpt-question{font-size:24px}
    .rjjlpt-options{grid-template-columns:1fr}
    .rjjlpt-option{font-size:18px}
    .rjjlpt-audio-controls{grid-template-columns:1fr 1fr}
    .rjjlpt-audio-seek,.rjjlpt-audio-time{grid-column:1/-1}
    .rjjlpt-footer{
        position:sticky;
        bottom:0;
        z-index:5;
        padding:12px 8px
    }
    .rjjlpt-btn{
        padding:11px 14px;
        font-size:14px
    }
    .rjjlpt-bottom-logo{
        padding:14px 12px 18px;
    }
    .rjjlpt-bottom-logo img{
        width:82px;
        max-width:30vw;
    }
    }

/* v0.7 Student Learning Engine */
.rjjlpt-head-session{position:relative}
.rjjlpt-bookmark{
    align-self:center;margin-right:18px;border:0;background:transparent;color:#777;
    font-size:34px;line-height:1;cursor:pointer;padding:8px;border-radius:50%
}
.rjjlpt-bookmark:hover,.rjjlpt-bookmark.active{color:#e4b000;background:#fff8d3}
.rjjlpt-summary-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:22px 0}
.rjjlpt-history{max-width:680px;margin:24px auto 0;text-align:left}
.rjjlpt-history h3{margin-top:0}
.rjjlpt-history-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid #ececec}
.rjjlpt-history-row:last-child{border-bottom:0}
.rjjlpt-history-row small{color:#777}
.rjjlpt-review-list{padding:24px}
.rjjlpt-review-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}
.rjjlpt-review-heading h2{margin:0}
.rjjlpt-review-card{background:#fff;border:2px solid #ddd;border-radius:18px;padding:20px;margin-bottom:16px;box-shadow:0 4px 12px rgba(0,0,0,.06)}
.rjjlpt-review-card.is-correct{border-color:var(--green)}
.rjjlpt-review-card.is-wrong{border-color:var(--red)}
.rjjlpt-review-number{font-weight:800;color:#666;margin-bottom:8px}
.rjjlpt-review-question{font-size:22px;font-weight:750;line-height:1.55;margin-bottom:12px}
.rjjlpt-review-card p{line-height:1.65;margin:8px 0}
@media(max-width:640px){
    .rjjlpt-bookmark{font-size:28px;margin-right:8px}
    .rjjlpt-history-row{grid-template-columns:1fr auto}.rjjlpt-history-row small{grid-column:1/-1}
    .rjjlpt-review-list{padding:14px}.rjjlpt-review-heading{align-items:flex-start;flex-direction:column}
    .rjjlpt-review-question{font-size:19px}
}


/* v0.9.0 Sprint 6 — Student Practice Player */
.rjjlpt-landing{padding:54px 32px;text-align:center;background:linear-gradient(180deg,#fffdf5,#fff)}
.rjjlpt-landing-level{display:inline-flex;align-items:center;justify-content:center;min-width:88px;height:54px;padding:0 18px;border-radius:18px;background:var(--green);color:#fff;font-weight:900;font-size:27px;box-shadow:0 8px 20px rgba(20,105,68,.22)}
.rjjlpt-landing h2{font-size:34px;line-height:1.25;margin:24px 0 8px}
.rjjlpt-landing-subtitle{margin:0;color:#6c6c6c;font-size:17px}
.rjjlpt-landing-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:760px;margin:30px auto}
.rjjlpt-landing-stats>div,.rjjlpt-result-grid>div{background:#fff;border:1px solid #e8e2d2;border-radius:16px;padding:18px 12px;box-shadow:0 5px 14px rgba(0,0,0,.05)}
.rjjlpt-landing-stats strong,.rjjlpt-result-grid strong{display:block;font-size:25px;line-height:1.2;color:#222}
.rjjlpt-landing-stats span,.rjjlpt-result-grid span{display:block;margin-top:5px;font-size:12px;color:#777;text-transform:uppercase;letter-spacing:.05em}
.rjjlpt-mode-note{max-width:680px;margin:0 auto 24px;padding:14px 18px;background:#fff8dc;border:1px solid #ead48a;border-radius:13px;color:#645216}
.rjjlpt-start{min-width:210px;font-size:17px}
.rjjlpt-session-tools{display:flex;align-items:center;gap:4px;margin-left:auto;padding-right:12px}
.rjjlpt-session-timer{min-width:76px;padding:8px 10px;border-radius:10px;background:#f5f5f5;text-align:center;font-weight:850;font-variant-numeric:tabular-nums}
.rjjlpt-session-timer.is-warning{background:#ffe1df;color:#a32720}
.rjjlpt-flag{border:0;background:transparent;color:#777;font-size:27px;cursor:pointer;padding:8px;border-radius:50%}
.rjjlpt-flag.active,.rjjlpt-flag:hover{background:#fff0c9;color:#a66a00}
.rjjlpt-player-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;padding:0 18px}
.rjjlpt-player-grid .rjjlpt-main{padding:22px 0}
.rjjlpt-navigator{align-self:start;position:sticky;top:20px;margin-top:22px;padding:16px}
.rjjlpt-navigator-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:14px}
.rjjlpt-navigator-head strong{font-size:15px}
.rjjlpt-answered-count{font-size:11px;color:#777;text-align:right}
.rjjlpt-question-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.rjjlpt-nav-button{position:relative;min-width:0;aspect-ratio:1;border:1px solid #d8d8d8;border-radius:9px;background:#fff;cursor:pointer;font-weight:800}
.rjjlpt-nav-button.answered{background:#e9f5ee;border-color:#7ab993;color:#176b37}
.rjjlpt-nav-button.current{outline:3px solid #d4b44a;outline-offset:1px}
.rjjlpt-nav-button.flagged::after{content:"";position:absolute;right:3px;top:3px;width:7px;height:7px;border-radius:50%;background:#e1a100}
.rjjlpt-nav-button.correct{background:#dff4e6;border-color:#55a970}
.rjjlpt-nav-button.wrong{background:#ffe4e1;border-color:#d8756e;color:#8c211b}
.rjjlpt-nav-legend{display:grid;gap:7px;margin:14px 0;color:#666;font-size:11px}
.rjjlpt-nav-legend span{display:flex;align-items:center;gap:7px}
.rjjlpt-nav-legend i{width:12px;height:12px;border-radius:3px;border:1px solid #ccc}
.rjjlpt-nav-legend i.answered{background:#e9f5ee;border-color:#7ab993}
.rjjlpt-nav-legend i.flagged{background:#fff0c9;border-color:#e1a100}
.rjjlpt-nav-legend i.current{outline:2px solid #d4b44a}
.rjjlpt-submit-attempt{width:100%;margin-top:4px}
.rjjlpt-result-grid{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:12px;max-width:820px;margin:24px auto}
.rjjlpt-result-score{background:#fff9df!important;border-color:#e3cd72!important}
.rjjlpt-result-score .rjjlpt-percent{font-size:34px}
.rjjlpt-submit-dialog{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.5)}
.rjjlpt-submit-dialog[hidden]{display:none}
.rjjlpt-dialog-card{width:min(460px,100%);padding:28px;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.25);text-align:center}
.rjjlpt-dialog-card h3{font-size:24px;margin:0 0 10px}
.rjjlpt-dialog-card p{line-height:1.6;color:#666}
.rjjlpt-dialog-card>div{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.rjjlpt-field small{display:block;margin-top:5px;color:#777;font-size:11px}
@media(max-width:900px){
  .rjjlpt-player-grid{grid-template-columns:1fr}
  .rjjlpt-navigator{position:static;margin-top:0;order:-1}
  .rjjlpt-question-nav{grid-template-columns:repeat(10,1fr)}
  .rjjlpt-result-grid{grid-template-columns:repeat(3,1fr)}
  .rjjlpt-result-score{grid-column:span 3}
}
@media(max-width:640px){
  .rjjlpt-landing{padding:36px 16px}
  .rjjlpt-landing h2{font-size:26px}
  .rjjlpt-landing-stats{grid-template-columns:1fr 1fr}
  .rjjlpt-head-session{flex-wrap:wrap}
  .rjjlpt-session-tools{width:100%;justify-content:flex-end;padding:0 10px 10px}
  .rjjlpt-player-grid{padding:0 12px}
  .rjjlpt-question-nav{grid-template-columns:repeat(5,1fr)}
  .rjjlpt-result-grid{grid-template-columns:1fr 1fr}
  .rjjlpt-result-score{grid-column:span 2}
}

/* v0.9.5 Student Learning Core */
.rjjlpt-resume-box{max-width:680px;margin:22px auto;padding:20px;border:1px solid #8bb89d;border-radius:16px;background:#eef8f2;text-align:left}
.rjjlpt-resume-box strong{display:block;color:#155d39;font-size:18px}
.rjjlpt-resume-box p{margin:6px 0 16px;color:#557063}
.rjjlpt-resume-box>div{display:flex;gap:10px;flex-wrap:wrap}
