.ple-dashboard {
  --ple-bg:#f7f3ec;
  --ple-card:#fffdf9;
  --ple-ink:#171717;
  --ple-muted:#746f68;
  --ple-accent:#f18700;
  --ple-accent-dark:#c96d00;
  --ple-soft:#fff0dc;
  --ple-line:#ded8cf;
  --ple-shadow:0 16px 40px rgba(32,26,19,.07);
  color:var(--ple-ink);
  background:var(--ple-bg);
  font-family:inherit;
}
.ple-dashboard *, .ple-dashboard *::before, .ple-dashboard *::after { box-sizing:border-box; }
.ple-dashboard__inner { width:min(1180px, calc(100% - 32px)); margin:0 auto; padding:clamp(30px,6vw,72px) 0; }
.ple-dashboard h1,.ple-dashboard h2,.ple-dashboard h3,.ple-dashboard p{margin-top:0}
.ple-dashboard h1{max-width:760px;margin-bottom:16px;font-size:clamp(2.6rem,7vw,5.6rem);line-height:.95;letter-spacing:-.055em}
.ple-dashboard h2{margin-bottom:0;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.1;letter-spacing:-.035em}
.ple-dashboard h3{margin-bottom:0;font-size:1.12rem;line-height:1.3}
.ple-dashboard a{color:inherit}
.ple-hero,.ple-section__heading,.ple-section__heading--row,.ple-footer,.ple-overall__top,.ple-category__header{display:flex;align-items:center;justify-content:space-between;gap:20px}
.ple-hero{align-items:flex-end;margin-bottom:34px}
.ple-hero__copy{max-width:780px}.ple-eyebrow{margin-bottom:9px;color:var(--ple-accent-dark);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ple-lead{max-width:720px;margin-bottom:0;color:var(--ple-muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.65}
.ple-actions{display:flex;flex-wrap:wrap;gap:10px}.ple-card{background:var(--ple-card);border:1px solid var(--ple-line);border-radius:24px;box-shadow:var(--ple-shadow)}
.ple-summary{display:grid;grid-template-columns:minmax(0,1.65fr) repeat(3,minmax(0,.75fr));gap:16px}
.ple-overall,.ple-stat{min-height:170px;padding:24px}.ple-label{display:block;margin-bottom:6px;color:var(--ple-muted);font-size:.88rem;font-weight:700}
.ple-overall__top strong{display:block;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1}.ple-icon{display:grid;place-items:center;width:48px;height:48px;color:var(--ple-accent-dark);background:var(--ple-soft);border-radius:50%;font-size:1.25rem}
.ple-progress{overflow:hidden;height:12px;margin:20px 0 12px;background:#eee8df;border-radius:999px}.ple-progress>span{display:block;width:0;height:100%;background:var(--ple-accent);border-radius:inherit;transition:width .35s ease}
.ple-muted{margin-bottom:0;color:var(--ple-muted)}.ple-stat{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.ple-stat .ple-icon{margin-bottom:18px}.ple-stat strong{display:block;margin-bottom:7px;font-size:2rem;line-height:1}.ple-stat>span:last-child{color:var(--ple-muted);font-size:.88rem}
.ple-section{margin-top:42px}.ple-section__heading{margin-bottom:18px}.ple-continue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ple-continue-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;min-height:120px;padding:20px;text-decoration:none;transition:transform .2s ease,border-color .2s ease}.ple-continue-card:hover,.ple-continue-card:focus-visible{transform:translateY(-3px);border-color:var(--ple-accent)}
.ple-continue-card p{margin:6px 0 0;color:var(--ple-muted);font-size:.9rem}.ple-number{display:grid;width:36px;height:36px;place-items:center;color:#fff;background:var(--ple-accent);border-radius:50%;font-weight:900}.ple-arrow{color:var(--ple-accent-dark);font-size:1.35rem;font-weight:900}
.ple-empty{padding:24px;text-align:center;color:var(--ple-muted);border:1px dashed var(--ple-line);border-radius:18px}.ple-empty[hidden]{display:none}.ple-empty--compact{margin-top:12px}.ple-empty p{margin-bottom:0}
.ple-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.ple-category{padding:22px}.ple-category__header{justify-content:flex-start;margin-bottom:16px}.ple-category__header p{margin:5px 0 0;color:var(--ple-muted);font-size:.86rem}.ple-category__details{display:grid;gap:10px;margin-top:18px}.ple-category-row{display:flex;justify-content:space-between;gap:14px;font-size:.84rem}.ple-category-row strong{flex:0 0 auto}
.ple-text-link{color:var(--ple-accent-dark)!important;font-weight:800;text-decoration:none}.ple-text-link:hover{text-decoration:underline}
.ple-library{display:grid;grid-template-columns:160px 220px minmax(0,1fr);gap:26px;align-items:center;padding:24px}.ple-book{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;background:linear-gradient(145deg,#5a4434,#9a7658);border:5px solid #c8ad91;border-radius:10px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);text-align:center}.ple-book span{font-size:1.2rem;letter-spacing:.08em}.ple-library__summary h3,.ple-library__piece h3{margin-bottom:14px;font-size:1.35rem}.ple-definition-list{display:grid;gap:13px;margin:0}.ple-definition-list div{display:flex;justify-content:space-between;gap:18px}.ple-definition-list dt{color:var(--ple-muted);font-size:.86rem}.ple-definition-list dd{margin:0;font-weight:800}.ple-library__piece{padding-left:26px;border-left:1px solid var(--ple-line)}.ple-piece-meta{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:18px;color:var(--ple-muted);font-size:.82rem}.ple-piece-meta strong{color:var(--ple-ink)}
.ple-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;border:1px solid var(--ple-line);border-radius:999px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.ple-button--primary{color:#fff!important;background:var(--ple-accent);border-color:var(--ple-accent)}.ple-button--primary:hover{background:var(--ple-accent-dark);border-color:var(--ple-accent-dark)}.ple-button--secondary{color:var(--ple-ink);background:transparent}.ple-button--secondary:hover{border-color:var(--ple-accent)}
.ple-two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:42px}.ple-panel{padding:24px}.ple-activity-list{display:grid}.ple-activity-row{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--ple-line)}.ple-activity-row:last-child{border-bottom:0}.ple-activity-row strong,.ple-activity-row span{display:block}.ple-activity-row div span{margin-top:4px;color:var(--ple-muted);font-size:.8rem}.ple-activity-row>span{flex:0 0 auto;font-weight:800}.ple-large-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}.ple-large-stats div{padding:18px;background:#fffaf4;border:1px solid var(--ple-line);border-radius:18px}.ple-large-stats dt{color:var(--ple-muted);font-size:.8rem}.ple-large-stats dd{margin:6px 0 0;font-size:1.7rem;font-weight:900}
.ple-footer{margin-top:22px;padding:0 4px}.ple-footer p{margin-bottom:0;color:var(--ple-muted);font-size:.82rem}.ple-reset{padding:0;color:#a33b24;background:transparent;border:0;font:inherit;font-weight:800;cursor:pointer}
@media(max-width:980px){.ple-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ple-overall{grid-column:1/-1}.ple-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ple-library{grid-template-columns:140px minmax(0,1fr)}.ple-library__piece{grid-column:1/-1;padding:24px 0 0;border-top:1px solid var(--ple-line);border-left:0}}
@media(max-width:720px){.ple-hero,.ple-footer{align-items:flex-start;flex-direction:column}.ple-actions{width:100%}.ple-actions .ple-button{flex:1 1 180px}.ple-continue-grid,.ple-two-column{grid-template-columns:1fr}}
@media(max-width:580px){.ple-dashboard__inner{width:min(100% - 20px,1180px)}.ple-summary,.ple-category-grid{grid-template-columns:1fr}.ple-overall{grid-column:auto}.ple-library{grid-template-columns:1fr}.ple-book{width:150px}.ple-large-stats{grid-template-columns:1fr}.ple-section__heading--row{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.ple-progress>span,.ple-continue-card{transition:none}}


.ple-category-row>span{display:grid;gap:2px;min-width:0}
.ple-category-row>span>strong{font-size:.86rem;overflow-wrap:anywhere}
.ple-category-row small{display:block;color:var(--ple-muted);font-size:.7rem;font-weight:500}
.ple-large-stats dd[data-ple-practice-time]{font-size:1.35rem}


/* v1.3 learning-area layout */
.ple-section-description{max-width:760px;margin:12px 0 0;color:var(--ple-muted);font-size:1rem;line-height:1.6}
.ple-category-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.ple-category-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.ple-category-grid--three{grid-template-columns:1fr}}
