/*!
 * Neutrope Quiz Engine Pro - Study Desk (学習デスク)
 *
 * .nqep-desk* 内だけで完結する共通コンポーネント。
 * Cocoon、WooCommerce、無料版 .skl-quiz__* のスタイルは変更しない。
 */

.nqep-desk {
    --nqep-ink: #102245;
    --nqep-text: #263752;
    --nqep-muted: #667085;
    --nqep-line: #dfe6ee;
    --nqep-soft-line: #edf1f5;
    --nqep-navy: #163568;
    --nqep-blue: #236fbd;
    --nqep-cyan: #4eb6b2;
    --nqep-sky: #edf7fb;
    --nqep-mint: #edf9f4;
    --nqep-warm: #fff8ea;
    --nqep-danger: #b54747;
    --nqep-radius: 18px;
    --nqep-shadow: 0 16px 36px rgba(24, 49, 83, .09);
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    color: var(--nqep-text);
    font-size: 16px;
    line-height: 1.7;
}

.nqep-desk *,
.nqep-desk *::before,
.nqep-desk *::after {
    box-sizing: border-box;
}

.nqep-desk a,
.nqep-desk button {
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}

.nqep-desk a:focus-visible,
.nqep-desk button:focus-visible {
    outline: 3px solid rgba(35, 111, 189, .28);
    outline-offset: 3px;
}

/* ---- 共通見出し ---- */
.nqep-desk__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
    color: var(--nqep-blue);
    font-size: .78em;
    font-weight: 800;
    letter-spacing: .11em;
}

.nqep-desk__eyebrow::before {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--nqep-cyan);
    box-shadow: 0 0 0 5px rgba(78, 182, 178, .15);
    content: "";
}

.nqep-desk__title {
    margin: 0;
    color: var(--nqep-ink);
    font-size: clamp(1.65em, 4vw, 2.35em);
    line-height: 1.35;
    letter-spacing: -.02em;
}

.nqep-desk__lead {
    max-width: 720px;
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .98em;
}

.nqep-desk__muted {
    color: var(--nqep-muted);
}

.nqep-desk__fine-print {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .78em;
    line-height: 1.65;
}

/* ---- 有料ユーザーのヒーロー ---- */
.nqep-desk__hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin: 0 0 24px;
    padding: clamp(24px, 5vw, 42px);
    overflow: hidden;
    border: 1px solid rgba(35, 111, 189, .18);
    border-radius: 24px;
    background:
        radial-gradient(circle at 88% 20%, rgba(78, 182, 178, .23) 0, rgba(78, 182, 178, 0) 29%),
        linear-gradient(135deg, #f7fbff 0%, #edf6fb 55%, #f1faf6 100%);
    box-shadow: var(--nqep-shadow);
}

.nqep-desk__hero::after {
    position: absolute;
    right: -45px;
    bottom: -75px;
    width: 210px;
    height: 210px;
    border: 1px solid rgba(35, 111, 189, .12);
    border-radius: 50%;
    content: "";
}

.nqep-desk__hero-copy {
    position: relative;
    z-index: 1;
}

.nqep-desk__hero-note {
    position: relative;
    z-index: 1;
    flex: 0 0 142px;
    padding: 18px 16px;
    border: 1px solid rgba(255, 255, 255, .75);
    border-radius: 16px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 10px 24px rgba(31, 65, 105, .10);
    text-align: center;
    backdrop-filter: blur(8px);
}

.nqep-desk__hero-note::before {
    display: block;
    width: 36px;
    height: 36px;
    margin: 0 auto 8px;
    border-radius: 50%;
    background: var(--nqep-mint);
    color: #19734b;
    font-size: 21px;
    font-weight: 900;
    line-height: 36px;
    content: "\2713";
}

.nqep-desk__hero-note span,
.nqep-desk__hero-note strong {
    display: block;
}

.nqep-desk__hero-note span {
    color: var(--nqep-muted);
    font-size: .72em;
}

.nqep-desk__hero-note strong {
    margin-top: 1px;
    color: var(--nqep-ink);
    font-size: .92em;
}

.nqep-desk__pass-message,
.nqep-desk__pass-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 18px;
    padding: 14px 18px;
    border: 1px solid #cbe6d8;
    border-radius: 14px;
    background: #f0fbf5;
    color: #164f39;
}

.nqep-desk__pass-message strong,
.nqep-desk__pass-message span,
.nqep-desk__pass-status span,
.nqep-desk__pass-status strong {
    display: block;
}

.nqep-desk__pass-message span,
.nqep-desk__pass-status span {
    color: #527267;
    font-size: .8em;
}

.nqep-desk__pass-status--soon {
    border-color: #efd4ae;
    background: #fff9f0;
    color: #6b4214;
}

.nqep-desk__pass-status a {
    flex: 0 0 auto;
    padding: 8px 14px;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: inherit;
    font-size: .8em;
    font-weight: 800;
    text-decoration: none;
}

.nqep-desk__pass-status a:hover {
    background: #fff;
    color: var(--nqep-blue);
}

.nqep-desk__status {
    padding: 32px;
    border: 1px dashed var(--nqep-line);
    border-radius: var(--nqep-radius);
    color: var(--nqep-muted);
    background: #fff;
    text-align: center;
}

@media (max-width: 640px) {
    .nqep-desk__pass-message,
    .nqep-desk__pass-status {
        align-items: stretch;
        flex-direction: column;
    }

    .nqep-desk__pass-status a {
        text-align: center;
    }
}

/* ---- ログイン・購入案内 ---- */
.nqep-desk--guest,
.nqep-desk--upgrade {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(240px, .65fr);
    gap: clamp(26px, 5vw, 56px);
    align-items: center;
    padding: clamp(26px, 5vw, 52px);
    border: 1px solid rgba(35, 111, 189, .18);
    border-radius: 24px;
    background:
        radial-gradient(circle at 96% 8%, rgba(78, 182, 178, .18), transparent 28%),
        linear-gradient(140deg, #fff 0%, #f6faff 66%, #eff9f6 100%);
    box-shadow: var(--nqep-shadow);
}

.nqep-desk__feature-list {
    display: grid;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.nqep-desk__feature-list li {
    position: relative;
    margin: 0;
    padding-left: 29px;
}

.nqep-desk__feature-list li::before {
    position: absolute;
    top: .12em;
    left: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--nqep-mint);
    color: #19734b;
    font-size: 12px;
    font-weight: 900;
    line-height: 20px;
    text-align: center;
    content: "\2713";
}

.nqep-desk__gate-action,
.nqep-desk__offer-action {
    padding: 24px;
    border: 1px solid rgba(35, 111, 189, .15);
    border-radius: 18px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 14px 28px rgba(24, 49, 83, .10);
}

.nqep-desk__gate-label,
.nqep-desk__offer-term {
    margin: 0 0 4px;
    color: var(--nqep-blue);
    font-size: .78em;
    font-weight: 800;
}

.nqep-desk__offer-renewal {
    display: block;
    margin: 0 0 8px;
    color: var(--nqep-ink);
    font-size: 1.4em;
}

.nqep-desk__login,
.nqep-desk__upgrade-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 14px;
    padding: 11px 20px;
    border: 1px solid var(--nqep-navy);
    border-radius: 10px;
    background: linear-gradient(135deg, var(--nqep-navy), var(--nqep-blue));
    color: #fff !important;
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 20px rgba(22, 53, 104, .18);
}

.nqep-desk__login::after,
.nqep-desk__upgrade-link::after {
    margin-left: 8px;
    content: "\2192";
}

.nqep-desk__login:hover,
.nqep-desk__upgrade-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 26px rgba(22, 53, 104, .24);
}

.nqep-desk__offer-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}

.nqep-desk__offer-feature {
    min-height: 112px;
    padding: 16px;
    border: 1px solid var(--nqep-soft-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.nqep-desk__offer-feature strong,
.nqep-desk__offer-feature span {
    display: block;
}

.nqep-desk__offer-feature strong {
    color: var(--nqep-ink);
    font-size: .9em;
}

.nqep-desk__offer-feature span {
    margin-top: 5px;
    color: var(--nqep-muted);
    font-size: .75em;
    line-height: 1.55;
}

/* ---- ダッシュボードの12カラム構成 ---- */
.nqep-desk__body {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 20px;
}

.nqep-desk__cert-nav {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid var(--nqep-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(24, 49, 83, .05);
}

.nqep-desk__cert-label {
    flex: 0 0 auto;
    color: var(--nqep-muted);
    font-size: .76em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__cert-tabs {
    display: flex;
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    padding: 2px 1px 4px;
    scrollbar-width: thin;
}

.nqep-desk__cert-tab {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid #cfd9e5;
    border-radius: 999px;
    background: #f8fafc;
    color: var(--nqep-navy);
    font: inherit;
    font-size: .82em;
    font-weight: 800;
    line-height: 1.35;
    white-space: nowrap;
    cursor: pointer;
}

.nqep-desk__cert-tab:hover {
    border-color: var(--nqep-blue);
    background: var(--nqep-sky);
}

.nqep-desk__cert-tab.is-active {
    border-color: var(--nqep-navy);
    background: linear-gradient(135deg, var(--nqep-navy), var(--nqep-blue));
    color: #fff;
    box-shadow: 0 7px 16px rgba(22, 53, 104, .18);
}

/* ---- 登録した次回試験だけを表示するカウントダウン ---- */
.nqep-desk__exam-countdown {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 22px;
    align-items: center;
    padding: 22px 24px;
    border: 1px solid rgba(78, 182, 178, .34);
    border-radius: 18px;
    color: #fff;
    background:
        radial-gradient(circle at 86% 10%, rgba(104, 229, 214, .2), transparent 34%),
        linear-gradient(135deg, #102c57, #1f5f8e);
    box-shadow: 0 14px 30px rgba(16, 44, 87, .16);
}

.nqep-desk__exam-countdown p,
.nqep-desk__exam-countdown h3 {
    margin: 0;
}

.nqep-desk__exam-countdown p {
    margin-bottom: 4px;
    color: #8de5db;
    font-size: .72em;
    font-weight: 900;
    letter-spacing: .1em;
}

.nqep-desk .nqep-desk__exam-countdown h3 {
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 0;
    border: 0;
    color: #fff;
    background: none;
    box-shadow: none;
    font-size: 1.2em;
}

.nqep-desk__exam-countdown h3 span {
    color: rgba(255, 255, 255, .72);
    font-size: .68em;
    font-weight: 700;
}

.nqep-desk__exam-countdown > strong {
    font-size: 1.18em;
    white-space: nowrap;
}

.nqep-desk__exam-countdown--today > strong,
.nqep-desk__exam-countdown--soon > strong {
    color: #a8fff3;
}

.nqep-desk__exam-countdown button,
.nqep-desk__exam-form button {
    min-height: 42px;
    padding: 9px 17px;
    border: 0;
    border-radius: 10px;
    font: inherit;
    font-size: .78em;
    font-weight: 850;
    cursor: pointer;
}

.nqep-desk__exam-countdown button {
    border: 1px solid rgba(255, 255, 255, .48);
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.nqep-desk__exam-countdown button:hover {
    background: rgba(255, 255, 255, .18);
}

.nqep-desk__exam-plan {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(240px, 1.1fr) minmax(330px, .9fr) auto;
    gap: 18px;
    align-items: center;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.nqep-desk__exam-plan-copy > span,
.nqep-desk__exam-plan-copy > strong,
.nqep-desk__exam-plan-copy > p {
    display: block;
}

.nqep-desk__exam-plan-copy > span {
    margin-bottom: 4px;
    color: #8de5db;
    font-size: .68em;
    font-weight: 900;
    letter-spacing: .08em;
}

.nqep-desk__exam-plan-copy > strong {
    font-size: .95em;
}

.nqep-desk__exam-plan-copy > p {
    margin: 5px 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: .72em;
    line-height: 1.6;
}

.nqep-desk__exam-plan dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(86px, 1fr));
    gap: 8px;
    margin: 0;
}

.nqep-desk__exam-plan dl > div {
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 11px;
    background: rgba(255, 255, 255, .08);
}

.nqep-desk__exam-plan dt,
.nqep-desk__exam-plan dd {
    margin: 0;
}

.nqep-desk__exam-plan dt {
    color: rgba(255, 255, 255, .66);
    font-size: .63em;
    font-weight: 800;
}

.nqep-desk__exam-plan dd {
    margin-top: 3px;
    color: #fff;
    font-size: .83em;
    font-weight: 900;
    white-space: nowrap;
}

.nqep-desk .nqep-desk__exam-plan-action {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid rgba(255, 255, 255, .58);
    border-radius: 10px;
    color: #123358;
    background: #fff;
    font: inherit;
    font-size: .75em;
    font-weight: 900;
    line-height: 1.35;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.nqep-desk .nqep-desk__exam-plan-action:hover {
    color: #123358;
    background: #e7fffb;
}

.nqep-desk__exam-plan-note {
    grid-column: 1 / -1;
    color: rgba(255, 255, 255, .58);
    font-size: .62em;
    line-height: 1.55;
}

.nqep-desk__panel--exam-schedule {
    grid-column: 1 / -1;
    padding: 25px 28px;
    border-color: rgba(35, 111, 189, .18);
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .1), transparent 35%),
        #fff;
}

.nqep-desk__exam-editor-head {
    display: flex;
    gap: 24px;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 20px;
}

.nqep-desk__exam-editor-head p,
.nqep-desk__exam-note {
    margin: 0;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.65;
}

.nqep-desk__exam-editor-head > div > p {
    margin-bottom: 4px;
    color: var(--nqep-blue);
    font-weight: 850;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__exam-editor-head h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    box-shadow: none;
    font-size: 1.16em;
}

.nqep-desk__exam-editor-head > p {
    max-width: 480px;
    text-align: right;
}

.nqep-desk__exam-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(180px, .65fr) auto;
    gap: 14px;
    align-items: end;
}

.nqep-desk__exam-form label,
.nqep-desk__exam-form label > span {
    display: block;
}

.nqep-desk__exam-form label > span {
    margin-bottom: 6px;
    color: var(--nqep-muted);
    font-size: .72em;
    font-weight: 800;
}

.nqep-desk__exam-form select,
.nqep-desk__exam-form input {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #cbd7e4;
    border-radius: 10px;
    color: var(--nqep-ink);
    background: #fff;
    font: inherit;
}

.nqep-desk__exam-form-actions {
    display: flex;
    gap: 9px;
}

.nqep-desk__exam-form button[type="submit"] {
    color: #fff;
    background: linear-gradient(135deg, var(--nqep-navy), var(--nqep-blue));
}

.nqep-desk__exam-form .nqep-desk__exam-remove {
    border: 1px solid #d9a1a1;
    color: #a72b2b;
    background: #fff;
}

.nqep-desk__exam-note {
    margin-top: 13px;
}

/* ---- 全資格の進捗ボード ---- */
.nqep-desk__panel--cert-overview {
    grid-column: 1 / -1;
    padding: 28px;
    border-color: rgba(35, 111, 189, .2);
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .14), transparent 34%),
        #fff;
}

.nqep-desk__cert-overview-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.nqep-desk__cert-overview-head p {
    margin: 0;
    color: var(--nqep-muted);
    font-size: .78em;
    line-height: 1.65;
}

.nqep-desk__cert-overview-head > div > p {
    margin-bottom: 5px;
    color: var(--nqep-blue);
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__cert-overview-head h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    box-shadow: none;
    font-size: 1.3em;
    line-height: 1.35;
}

.nqep-desk__cert-overview-head > p {
    max-width: 420px;
    text-align: right;
}

/* ---- 全資格の学習優先順位 ---- */
.nqep-desk__priority {
    margin-bottom: 20px;
    padding: 20px;
    border-radius: 16px;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .28), transparent 34%),
        linear-gradient(135deg, #122e59, #1b4f83);
}

.nqep-desk__priority-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
}

.nqep-desk__priority-head p,
.nqep-desk__priority-note,
.nqep-desk__priority-item p {
    margin: 0;
}

.nqep-desk__priority-head > div > p {
    margin-bottom: 4px;
    color: #83ded4;
    font-size: .7em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__priority-head h4 {
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    background: none;
    box-shadow: none;
    font-size: 1.08em;
    line-height: 1.4;
}

.nqep-desk__priority-head > p {
    max-width: 480px;
    color: rgba(255, 255, 255, .74);
    font-size: .72em;
    line-height: 1.6;
    text-align: right;
}

.nqep-desk__priority ol {
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 13px;
    background: rgba(255, 255, 255, .06);
    list-style: none;
}

.nqep-desk__priority-item {
    display: grid;
    grid-template-columns: 54px minmax(140px, .72fr) minmax(220px, 1.45fr) auto;
    gap: 14px;
    align-items: center;
    min-width: 0;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, .13);
}

.nqep-desk__priority-item:last-child {
    border-bottom: 0;
}

.nqep-desk__priority-rank {
    color: #fff;
    font-size: 1.35em;
    line-height: 1;
    text-align: center;
}

.nqep-desk__priority-rank small {
    display: block;
    margin-bottom: 4px;
    color: rgba(255, 255, 255, .54);
    font-size: .34em;
    letter-spacing: .08em;
}

.nqep-desk__priority-cert {
    min-width: 0;
}

.nqep-desk__priority-cert span {
    display: inline-block;
    margin-bottom: 3px;
    padding: 3px 7px;
    border-radius: 999px;
    color: #0c385b;
    background: #8fe3d7;
    font-size: .6em;
    font-weight: 800;
}

.nqep-desk__priority-cert strong {
    display: block;
    overflow: hidden;
    color: #fff;
    font-size: .82em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__priority-item p {
    min-width: 0;
    color: rgba(255, 255, 255, .88);
    font-size: .78em;
    font-weight: 700;
    line-height: 1.55;
}

.nqep-desk__priority-action a,
.nqep-desk__priority-action button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 9px;
    color: #fff;
    background: rgba(255, 255, 255, .1);
    font: inherit;
    font-size: .7em;
    font-weight: 800;
    line-height: 1.35;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.nqep-desk__priority-action a:hover,
.nqep-desk__priority-action button:hover {
    border-color: #fff;
    color: var(--nqep-navy);
    background: #fff;
}

.nqep-desk__priority-note {
    margin-top: 10px;
    color: rgba(255, 255, 255, .58);
    font-size: .64em;
    line-height: 1.55;
}

.nqep-desk__cert-overview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nqep-desk__cert-overview-card {
    padding: 18px;
    border: 1px solid #dce5ef;
    border-radius: 15px;
    background: rgba(255, 255, 255, .94);
}

.nqep-desk__cert-overview-card--done {
    border-color: rgba(50, 146, 103, .35);
}

.nqep-desk__cert-overview-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.nqep-desk .nqep-desk__cert-overview-card-head h4 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    box-shadow: none;
    font-size: 1em;
    line-height: 1.4;
}

.nqep-desk__cert-overview-card-head span {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    color: #617083;
    background: #eef2f6;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__cert-overview-card--active .nqep-desk__cert-overview-card-head span {
    color: #17568f;
    background: #e7f2fb;
}

.nqep-desk__cert-overview-card--done .nqep-desk__cert-overview-card-head span {
    color: #17623f;
    background: #e6f5ed;
}

.nqep-desk__cert-overview-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 16px 0 12px;
}

.nqep-desk__cert-overview-metrics div {
    min-width: 0;
    padding: 9px 10px;
    border-radius: 10px;
    background: #f7f9fc;
}

.nqep-desk__cert-overview-metrics dt,
.nqep-desk__cert-overview-metrics dd {
    margin: 0;
}

.nqep-desk__cert-overview-metrics dt {
    color: var(--nqep-muted);
    font-size: .66em;
    font-weight: 700;
}

.nqep-desk__cert-overview-metrics dd {
    margin-top: 3px;
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .85em;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__cert-overview-bar {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8edf3;
}

.nqep-desk__cert-overview-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
}

.nqep-desk__cert-overview-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}

.nqep-desk__cert-overview-actions button,
.nqep-desk__cert-overview-practice {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 13px;
    border-radius: 9px;
    font: inherit;
    font-size: .74em;
    font-weight: 800;
    line-height: 1.35;
    text-decoration: none;
    cursor: pointer;
}

.nqep-desk__cert-overview-actions button {
    border: 1px solid #bdcce0;
    color: var(--nqep-navy);
    background: #fff;
}

.nqep-desk__cert-overview-practice {
    gap: 6px;
    border: 1px solid var(--nqep-blue);
    color: #fff;
    background: var(--nqep-blue);
}

.nqep-desk__cert-overview-actions button:hover {
    border-color: var(--nqep-blue);
    background: var(--nqep-sky);
}

.nqep-desk__cert-overview-practice:hover {
    color: #fff;
    background: var(--nqep-navy);
}

.nqep-desk__summary {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
}

.nqep-desk__stat {
    position: relative;
    min-height: 116px;
    padding: 22px 20px 18px;
    overflow: hidden;
    border: 1px solid var(--nqep-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 9px 24px rgba(24, 49, 83, .06);
}

.nqep-desk__stat::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--nqep-blue);
    content: "";
}

.nqep-desk__stat--open::before {
    background: #e07150;
}

.nqep-desk__stat--learned::before {
    background: var(--nqep-cyan);
}

.nqep-desk__stat--total::before {
    background: var(--nqep-navy);
}

.nqep-desk__stat--acc::before {
    background: #daa642;
}

.nqep-desk__stat-value {
    display: block;
    color: var(--nqep-ink);
    font-size: clamp(1.65em, 3vw, 2.15em);
    font-weight: 800;
    line-height: 1.15;
}

.nqep-desk__stat-label {
    display: block;
    margin-top: 7px;
    color: var(--nqep-muted);
    font-size: .78em;
}

.nqep-desk__panel {
    margin: 0;
    padding: 24px;
    border: 1px solid var(--nqep-line);
    border-radius: var(--nqep-radius);
    background: #fff;
    box-shadow: 0 10px 26px rgba(24, 49, 83, .055);
}

.nqep-desk__panel--analytics {
    grid-column: span 5;
}

.nqep-desk__panel--activity {
    grid-column: span 7;
}

.nqep-desk__panel--week-compare {
    grid-column: 1 / -1;
}

.nqep-desk__panel--weekday-rhythm {
    grid-column: 1 / -1;
}

.nqep-desk__panel--time-band {
    grid-column: 1 / -1;
}

.nqep-desk__panel--weekly-trend {
    grid-column: 1 / -1;
}

.nqep-desk__panel--weekly-accuracy {
    grid-column: 1 / -1;
}

.nqep-desk__panel--goal {
    grid-column: span 5;
}

.nqep-desk__panel--calendar {
    grid-column: span 7;
}

.nqep-desk__panel--next {
    grid-column: span 5;
}

.nqep-desk__panel--fields {
    grid-column: span 7;
}

.nqep-desk__panel--field-priority {
    grid-column: 1 / -1;
}

.nqep-desk__panel--review-progress {
    grid-column: 1 / -1;
}

.nqep-desk__panel--review-repeat {
    grid-column: 1 / -1;
}

.nqep-desk__panel--retry-change {
    grid-column: 1 / -1;
}

.nqep-desk__deck-wrap {
    grid-column: span 7;
}

.nqep-desk__panel--weakness {
    grid-column: span 5;
}

.nqep-desk__panel--history {
    grid-column: 1 / -1;
}

.nqep-desk__panel--trend {
    grid-column: 1 / -1;
}

.nqep-desk__panel--achievements {
    grid-column: 1 / -1;
}

.nqep-desk__panel--roadmap {
    grid-column: 1 / -1;
}

.nqep-desk__panel--readiness {
    grid-column: 1 / -1;
}

.nqep-desk__panel--difficulty {
    grid-column: 1 / -1;
}

.nqep-desk__panel--attempt-performance {
    grid-column: 1 / -1;
}

.nqep-desk__panel--study-plan {
    grid-column: 1 / -1;
}

.nqep-desk__panel > h3,
.nqep-desk__deck-wrap > h3 {
    position: relative;
    margin: 0 0 18px;
    padding: 0 0 12px;
    border: 0;
    color: var(--nqep-ink);
    font-size: 1.06em;
    line-height: 1.5;
}

.nqep-desk__panel > h3::after,
.nqep-desk__deck-wrap > h3::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 38px;
    height: 3px;
    border-radius: 999px;
    background: var(--nqep-cyan);
    content: "";
}

/* ---- 週間目標・学習カレンダー ---- */
.nqep-desk__panel--goal {
    border-color: rgba(35, 111, 189, .2);
    background:
        radial-gradient(circle at 105% -8%, rgba(78, 182, 178, .2), transparent 38%),
        linear-gradient(145deg, #fff, #f7fbfd);
}

.nqep-desk__goal-score {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: var(--nqep-muted);
}

.nqep-desk__goal-score strong {
    color: var(--nqep-ink);
    font-size: clamp(2em, 4vw, 2.7em);
    line-height: 1;
}

.nqep-desk__goal-score small {
    margin-left: 3px;
    font-size: .42em;
}

.nqep-desk__goal-bar {
    height: 11px;
    margin-top: 18px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9eff4;
}

.nqep-desk__goal-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
    box-shadow: 0 3px 10px rgba(35, 111, 189, .2);
}

.nqep-desk__goal-status {
    margin: 10px 0 18px;
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__goal-status.is-achieved {
    color: #19734b;
    font-weight: 800;
}

.nqep-desk__goal-guide {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 10px;
}

.nqep-desk__goal-guide > span {
    padding: 10px 12px;
    border: 1px solid #dce8ef;
    border-radius: 11px;
    background: rgba(255, 255, 255, .75);
}

.nqep-desk__goal-guide small,
.nqep-desk__goal-guide strong {
    display: block;
}

.nqep-desk__goal-guide small {
    color: var(--nqep-muted);
    font-size: .64em;
}

.nqep-desk__goal-guide strong {
    margin-top: 1px;
    color: var(--nqep-ink);
    font-size: 1.15em;
}

.nqep-desk__goal-pace {
    display: inline-flex;
    margin: 0 0 15px;
    padding: 4px 9px;
    border-radius: 999px;
    color: var(--nqep-navy);
    background: #edf4fb;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__goal-pace--achieved,
.nqep-desk__goal-pace--ahead {
    color: #19734b;
    background: #e4f6ed;
}

.nqep-desk__goal-pace--behind {
    color: #9a482f;
    background: #fff0e9;
}

.nqep-desk__goal-form {
    display: flex;
    align-items: flex-end;
    gap: 9px;
    padding-top: 15px;
    border-top: 1px solid var(--nqep-soft-line);
}

.nqep-desk__goal-form label {
    display: grid;
    flex: 1;
    gap: 5px;
    color: var(--nqep-muted);
    font-size: .72em;
    font-weight: 700;
}

.nqep-desk__goal-form input {
    width: 100%;
    min-height: 42px;
    padding: 8px 11px;
    border: 1px solid #c8d5e2;
    border-radius: 9px;
    color: var(--nqep-ink);
    background: #fff;
    font: inherit;
    font-size: 1.2em;
}

.nqep-desk__goal-form button {
    min-height: 42px;
    padding: 8px 16px;
    border: 1px solid var(--nqep-navy);
    border-radius: 9px;
    color: #fff;
    background: var(--nqep-navy);
    font: inherit;
    font-size: .78em;
    font-weight: 800;
    cursor: pointer;
}

.nqep-desk__goal-form button:disabled {
    cursor: wait;
    opacity: .65;
}

.nqep-desk__calendar-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.nqep-desk__calendar-summary > span {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 9px;
    color: var(--nqep-muted);
    background: #f3f7fa;
    font-size: .7em;
}

.nqep-desk__calendar-summary strong {
    color: var(--nqep-ink);
    font-size: 1.25em;
}

.nqep-desk__calendar-grid {
    display: grid;
    grid-auto-columns: 13px;
    grid-auto-flow: column;
    grid-template-rows: repeat(7, 13px);
    gap: 4px;
    min-height: 115px;
    padding: 10px;
    overflow-x: auto;
    border: 1px solid #e3eaf0;
    border-radius: 12px;
    background: #fbfcfd;
}

.nqep-desk__calendar-day {
    width: 13px;
    height: 13px;
    border-radius: 3px;
    background: #edf1f4;
}

.nqep-desk__calendar-day--0 {
    background: #edf1f4;
}

.nqep-desk__calendar-day--1 {
    background: #cbe9e5;
}

.nqep-desk__calendar-day--2 {
    background: #82cbc5;
}

.nqep-desk__calendar-day--3 {
    background: #4aa9ae;
}

.nqep-desk__calendar-day--4 {
    background: #236fbd;
}

.nqep-desk__calendar-day.is-future {
    opacity: .28;
}

.nqep-desk__calendar-empty {
    grid-column: 1 / span 12;
    grid-row: 1 / -1;
    color: var(--nqep-muted);
    font-size: .78em;
}

.nqep-desk__calendar-legend {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__calendar-legend i {
    width: 11px;
    height: 11px;
    border-radius: 3px;
}

/* ---- 学習間隔・再開リズム ---- */
.nqep-desk__panel--study-interval {
    grid-column: 1 / -1;
    padding: 28px;
    overflow: hidden;
    border: 1px solid #cddde8;
    background:
        radial-gradient(circle at 92% 4%, rgba(35, 111, 189, .11), transparent 29%),
        linear-gradient(145deg, #ffffff 0%, #f7fbfd 100%);
}

.nqep-desk__study-interval-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__study-interval-head p {
    margin: 0 0 5px;
    color: #287a81;
    font-size: .7em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__study-interval-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.25em;
}

.nqep-desk__study-interval-status {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    color: #36556b;
    background: #e9f1f5;
    font-size: .7em;
    font-weight: 800;
}

.nqep-desk__study-interval-status--ready {
    color: #17664e;
    background: #dff3e9;
}

.nqep-desk__study-interval-status--starting,
.nqep-desk__study-interval-status--building {
    color: #765a10;
    background: #fff1c9;
}

.nqep-desk__study-interval-lead {
    margin: 12px 0 20px;
    color: var(--nqep-muted);
    font-size: .82em;
}

.nqep-desk__study-interval-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.nqep-desk__study-interval-metrics > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid #dae5ec;
    border-radius: 12px;
    background: rgba(255, 255, 255, .88);
}

.nqep-desk__study-interval-metrics span,
.nqep-desk__study-interval-metrics strong {
    display: block;
}

.nqep-desk__study-interval-metrics span {
    color: var(--nqep-muted);
    font-size: .68em;
    font-weight: 700;
}

.nqep-desk__study-interval-metrics strong {
    margin-top: 5px;
    color: var(--nqep-ink);
    font-size: 1.15em;
}

.nqep-desk__study-interval-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
    gap: 14px;
}

.nqep-desk__study-interval-layout > div,
.nqep-desk__study-interval-layout > aside {
    min-width: 0;
    padding: 17px;
    border: 1px solid #dae5ec;
    border-radius: 13px;
    background: rgba(255, 255, 255, .9);
}

.nqep-desk__study-interval-layout h4 {
    margin: 0 0 13px;
    color: var(--nqep-ink);
    font-size: .8em;
}

.nqep-desk__study-interval-buckets {
    display: grid;
    gap: 11px;
}

.nqep-desk__study-interval-bucket > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--nqep-muted);
    font-size: .72em;
}

.nqep-desk__study-interval-bucket strong {
    color: var(--nqep-ink);
}

.nqep-desk__study-interval-bucket > p {
    height: 7px;
    margin: 5px 0 0;
    overflow: hidden;
    border-radius: 999px;
    background: #e9eff3;
}

.nqep-desk__study-interval-bucket > p span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #4aa9ae, #236fbd);
}

.nqep-desk__study-interval-layout aside {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
}

.nqep-desk__study-interval-layout aside strong {
    color: var(--nqep-ink);
    font-size: .9em;
}

.nqep-desk__study-interval-layout aside p {
    margin: 7px 0 12px;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.75;
}

.nqep-desk__study-interval-layout aside span {
    padding: 5px 8px;
    border-radius: 8px;
    color: #287a81;
    background: #e6f4f3;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__study-interval-note {
    margin: 14px 0 0;
    color: var(--nqep-muted);
    font-size: .67em;
    line-height: 1.7;
}

/* ---- 学習セッション・集中量 ---- */
.nqep-desk__panel--study-session {
    grid-column: 1 / -1;
    padding: 28px;
    overflow: hidden;
    border: 1px solid #ded6ea;
    background:
        radial-gradient(circle at 94% 2%, rgba(116, 80, 159, .12), transparent 30%),
        linear-gradient(145deg, #ffffff 0%, #fbf9fd 100%);
}

.nqep-desk__study-session-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__study-session-head p {
    margin: 0 0 5px;
    color: #72519a;
    font-size: .7em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__study-session-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.25em;
}

.nqep-desk__study-session-status {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    color: #62546f;
    background: #eee9f3;
    font-size: .7em;
    font-weight: 800;
}

.nqep-desk__study-session-status--ready {
    color: #17664e;
    background: #dff3e9;
}

.nqep-desk__study-session-status--starting,
.nqep-desk__study-session-status--building {
    color: #765a10;
    background: #fff1c9;
}

.nqep-desk__study-session-lead {
    margin: 12px 0 20px;
    color: var(--nqep-muted);
    font-size: .82em;
}

.nqep-desk__study-session-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.nqep-desk__study-session-metrics > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid #e3ddea;
    border-radius: 12px;
    background: rgba(255, 255, 255, .9);
}

.nqep-desk__study-session-metrics span,
.nqep-desk__study-session-metrics strong {
    display: block;
}

.nqep-desk__study-session-metrics span {
    color: var(--nqep-muted);
    font-size: .68em;
    font-weight: 700;
}

.nqep-desk__study-session-metrics strong {
    margin-top: 5px;
    color: var(--nqep-ink);
    font-size: 1.15em;
}

.nqep-desk__study-session-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
    gap: 14px;
}

.nqep-desk__study-session-layout > div,
.nqep-desk__study-session-layout > aside {
    min-width: 0;
    padding: 17px;
    border: 1px solid #e3ddea;
    border-radius: 13px;
    background: rgba(255, 255, 255, .92);
}

.nqep-desk__study-session-layout h4 {
    margin: 0 0 13px;
    color: var(--nqep-ink);
    font-size: .8em;
}

.nqep-desk__study-session-buckets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.nqep-desk__study-session-bucket {
    position: relative;
    min-width: 0;
    padding: 12px;
    border: 1px solid #ece7f1;
    border-radius: 11px;
    background: #fcfbfd;
}

.nqep-desk__study-session-bucket > div {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__study-session-bucket > div span,
.nqep-desk__study-session-bucket > div strong,
.nqep-desk__study-session-bucket > div small {
    display: block;
}

.nqep-desk__study-session-bucket > div strong {
    color: var(--nqep-ink);
    font-size: .75em;
}

.nqep-desk__study-session-bucket > div small {
    margin-top: 2px;
    color: var(--nqep-muted);
    font-size: .63em;
}

.nqep-desk__study-session-bucket > div b {
    color: #72519a;
    font-size: .78em;
    white-space: nowrap;
}

.nqep-desk__study-session-bucket > p {
    height: 7px;
    margin: 10px 0 0;
    overflow: hidden;
    border-radius: 999px;
    background: #eeeaf2;
}

.nqep-desk__study-session-bucket > p span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #9170b7, #4a77b3);
}

.nqep-desk__study-session-bucket > em {
    display: block;
    margin-top: 5px;
    color: var(--nqep-muted);
    font-size: .62em;
    font-style: normal;
    text-align: right;
}

.nqep-desk__study-session-layout aside {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
}

.nqep-desk__study-session-layout aside strong {
    color: var(--nqep-ink);
    font-size: .9em;
}

.nqep-desk__study-session-layout aside p {
    margin: 7px 0 12px;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.75;
}

.nqep-desk__study-session-layout aside span {
    padding: 5px 8px;
    border-radius: 8px;
    color: #72519a;
    background: #f0eaf6;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__study-session-note {
    margin: 14px 0 0;
    color: var(--nqep-muted);
    font-size: .67em;
    line-height: 1.7;
}

/* ---- 弱点の改善トレンド ---- */
.nqep-desk__panel--trend {
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .12), transparent 28%),
        #fff;
}

.nqep-desk__trend-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.nqep-desk__trend-head .nqep-desk__eyebrow {
    margin-bottom: 7px;
}

.nqep-desk__trend-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.12em;
    line-height: 1.45;
}

.nqep-desk__trend-head p {
    max-width: 650px;
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.75;
}

.nqep-desk__trend-count {
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid #cfe5e4;
    border-radius: 999px;
    color: #176a66;
    background: #eef9f7;
    font-size: .67em;
    font-weight: 800;
}

.nqep-desk__trend-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nqep-desk__trend-card {
    position: relative;
    padding: 17px;
    border: 1px solid var(--nqep-line);
    border-radius: 15px;
    background: rgba(251, 252, 253, .94);
}

.nqep-desk__trend-card::before {
    position: absolute;
    top: 0;
    left: 16px;
    width: 44px;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: #8ca4bd;
    content: "";
}

.nqep-desk__trend-card--improving::before {
    background: #2d9b70;
}

.nqep-desk__trend-card--declining::before {
    background: #c65d55;
}

.nqep-desk__trend-card--baseline::before,
.nqep-desk__trend-card--preparing::before {
    background: #d5a447;
}

.nqep-desk__trend-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__trend-card-head h4 {
    min-width: 0;
    margin: 0;
    color: var(--nqep-ink);
    font-size: .86em;
    line-height: 1.45;
}

.nqep-desk__trend-card-head span {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    color: #49647e;
    background: #edf2f7;
    font-size: .61em;
    font-weight: 800;
}

.nqep-desk__trend-card--improving .nqep-desk__trend-card-head span {
    color: #19734b;
    background: #e8f7ef;
}

.nqep-desk__trend-card--declining .nqep-desk__trend-card-head span {
    color: #a33f39;
    background: #fff0ed;
}

.nqep-desk__trend-card--baseline .nqep-desk__trend-card-head span,
.nqep-desk__trend-card--preparing .nqep-desk__trend-card-head span {
    color: #865f17;
    background: #fff6df;
}

.nqep-desk__trend-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 15px 0;
}

.nqep-desk__trend-metrics > div {
    min-width: 0;
    padding: 8px 7px;
    border: 1px solid var(--nqep-soft-line);
    border-radius: 9px;
    background: #fff;
    text-align: center;
}

.nqep-desk__trend-metrics dt {
    color: var(--nqep-muted);
    font-size: .56em;
    line-height: 1.45;
}

.nqep-desk__trend-metrics dd {
    margin: 2px 0 0;
    color: var(--nqep-ink);
    font-size: .81em;
    font-weight: 850;
}

.nqep-desk__trend-metrics dd.is-improving {
    color: #19734b;
}

.nqep-desk__trend-metrics dd.is-declining {
    color: var(--nqep-danger);
}

.nqep-desk__trend-chart {
    padding: 10px 10px 7px;
    border-radius: 11px;
    background: linear-gradient(180deg, #f4f8fb, #fbfcfd);
}

.nqep-desk__trend-bars {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    align-items: end;
    gap: 5px;
    height: 78px;
    padding: 4px 3px 0;
    border-bottom: 1px solid #d8e2ec;
    background:
        linear-gradient(to bottom, transparent 49%, rgba(183, 198, 213, .35) 50%, transparent 51%);
}

.nqep-desk__trend-bar {
    display: flex;
    height: 100%;
    align-items: flex-end;
}

.nqep-desk__trend-bar i {
    display: block;
    width: 100%;
    height: var(--nqep-trend-height);
    min-height: 3px;
    border-radius: 4px 4px 1px 1px;
    background: linear-gradient(180deg, #58bdb6, #317f9f);
}

.nqep-desk__trend-card--declining .nqep-desk__trend-bar i {
    background: linear-gradient(180deg, #e29a82, #c65d55);
}

.nqep-desk__trend-bar.is-empty i {
    background: repeating-linear-gradient(90deg, #cbd6e1 0 2px, transparent 2px 4px);
    opacity: .75;
}

.nqep-desk__trend-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 4px;
    color: #8190a2;
    font-size: .54em;
}

.nqep-desk__trend-sample,
.nqep-desk__trend-note {
    color: var(--nqep-muted);
    font-size: .61em;
}

.nqep-desk__trend-sample {
    margin: 7px 0 0;
    text-align: right;
}

.nqep-desk__trend-note {
    margin: 13px 0 0;
    line-height: 1.7;
}

.nqep-desk__trend-empty {
    padding: 22px;
    border: 1px dashed #cbd8e4;
    border-radius: 14px;
    background: #f8fafc;
    text-align: center;
}

.nqep-desk__trend-empty strong {
    display: block;
    color: var(--nqep-ink);
    font-size: .86em;
}

.nqep-desk__trend-empty p {
    margin: 5px 0 0;
    color: var(--nqep-muted);
    font-size: .72em;
}

/* ---- 学習の達成バッジ ---- */
.nqep-desk__panel--achievements {
    background:
        radial-gradient(circle at 98% 0, rgba(218, 166, 66, .14), transparent 28%),
        #fff;
}

.nqep-desk__achievement-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.nqep-desk__achievement-head h3 {
    position: relative;
    margin: 0;
    padding-bottom: 12px;
    color: var(--nqep-ink);
    font-size: 1.06em;
}

.nqep-desk__achievement-head h3::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 38px;
    height: 3px;
    border-radius: 999px;
    background: #daa642;
    content: "";
}

.nqep-desk__achievement-head p {
    margin: 8px 0 0;
    color: var(--nqep-muted);
    font-size: .76em;
}

.nqep-desk__achievement-head > strong {
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid #ead8ad;
    border-radius: 999px;
    color: #7b5b16;
    background: #fff8e7;
    font-size: .78em;
}

.nqep-desk__achievement-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.nqep-desk__achievement {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 8px 10px;
    align-items: center;
    min-width: 0;
    padding: 13px;
    border: 1px solid #e3e8ed;
    border-radius: 13px;
    background: #fafbfc;
    opacity: .72;
}

.nqep-desk__achievement.is-unlocked {
    border-color: #ead8ad;
    background: linear-gradient(145deg, #fffdf7, #fff7dd);
    opacity: 1;
    box-shadow: 0 8px 18px rgba(121, 91, 24, .07);
}

.nqep-desk__achievement-icon {
    display: inline-grid;
    grid-row: 1;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid #d7dee6;
    border-radius: 50%;
    color: #8a96a3;
    background: #fff;
    font-weight: 900;
}

.nqep-desk__achievement.is-unlocked .nqep-desk__achievement-icon {
    border-color: #e1c979;
    color: #7b5b16;
    background: #fff3c4;
}

.nqep-desk__achievement h4 {
    margin: 0;
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .77em;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__achievement p {
    margin: 2px 0 0;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__achievement-bar {
    grid-column: 1 / -1;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9edf1;
}

.nqep-desk__achievement-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #9aa8b6;
}

.nqep-desk__achievement.is-unlocked .nqep-desk__achievement-bar > span {
    background: linear-gradient(90deg, #daa642, #e6c76d);
}

/* ---- 学習ペース・次の行動 ---- */
.nqep-desk__pace-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.nqep-desk__pace-metric {
    min-width: 0;
    padding: 13px 11px;
    border: 1px solid #dceaf2;
    border-radius: 12px;
    background: linear-gradient(145deg, #f8fbfd, var(--nqep-sky));
}

.nqep-desk__pace-metric strong,
.nqep-desk__pace-metric span {
    display: block;
}

.nqep-desk__pace-metric strong {
    color: var(--nqep-ink);
    font-size: 1.35em;
    line-height: 1.2;
}

.nqep-desk__pace-metric strong small {
    margin-left: 2px;
    font-size: .52em;
}

.nqep-desk__pace-metric span {
    margin-top: 4px;
    color: var(--nqep-muted);
    font-size: .68em;
    white-space: nowrap;
}

.nqep-desk__pace-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 20px 0 8px;
    color: var(--nqep-muted);
    font-size: .76em;
}

.nqep-desk__pace-head strong {
    color: var(--nqep-navy);
    font-size: 1.08em;
}

.nqep-desk__pace-chart {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 86px;
    padding: 8px 7px 0;
    border-bottom: 1px solid #d6e0ea;
    border-radius: 10px 10px 0 0;
    background:
        linear-gradient(to top, rgba(35, 111, 189, .07) 1px, transparent 1px) 0 0 / 100% 25%,
        linear-gradient(180deg, #fbfdff, #f5f9fc);
}

.nqep-desk__pace-day {
    flex: 1 1 0;
    min-width: 2px;
    border-radius: 4px 4px 1px 1px;
    background: #dce5ed;
}

.nqep-desk__pace-day.has-activity {
    background: linear-gradient(180deg, var(--nqep-cyan), var(--nqep-blue));
    box-shadow: 0 3px 8px rgba(35, 111, 189, .16);
}

.nqep-desk__pace-empty {
    display: flex;
    align-items: center;
    min-height: 86px;
    margin: 0;
    padding: 15px 17px;
    border: 1px dashed #cbd8e5;
    border-radius: 12px;
    color: var(--nqep-muted);
    background: #f8fbfd;
    font-size: .8em;
}

.nqep-desk__panel--week-compare {
    padding: 28px;
    border-color: #d5e4ee;
    background:
        radial-gradient(circle at 92% 0, rgba(56, 179, 193, .12), transparent 30%),
        linear-gradient(145deg, #fff, #f7fbfd);
}

.nqep-desk__week-compare-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__week-compare-head p,
.nqep-desk__week-compare-lead,
.nqep-desk__week-compare-note {
    margin: 0;
}

.nqep-desk__week-compare-head p {
    color: var(--nqep-blue);
    font-size: .72em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__week-compare-head h3 {
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.36em;
    line-height: 1.35;
}

.nqep-desk__week-compare-status {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    border: 1px solid #c5d9e7;
    border-radius: 999px;
    color: #315b75;
    background: #eef6fa;
    font-size: .72em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__week-compare-status--up,
.nqep-desk__week-compare-status--start {
    border-color: #b9dfd0;
    color: #14704c;
    background: #eaf8f1;
}

.nqep-desk__week-compare-status--down {
    border-color: #ead7b3;
    color: #8a5b15;
    background: #fff8e9;
}

.nqep-desk__week-compare-lead {
    margin-top: 9px;
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__week-compare-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    margin-top: 22px;
}

.nqep-desk__week-compare-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid #dbe5ed;
    border-radius: 15px;
    background: rgba(255, 255, 255, .88);
}

.nqep-desk__week-compare-card--current {
    border-color: #bcd9e8;
    box-shadow: 0 10px 24px rgba(31, 108, 159, .08);
}

.nqep-desk__week-compare-period {
    display: block;
    color: var(--nqep-muted);
    font-size: .74em;
    font-weight: 700;
}

.nqep-desk__week-compare-total {
    display: block;
    margin-top: 5px;
    color: var(--nqep-ink);
    font-size: 2em;
    line-height: 1.1;
}

.nqep-desk__week-compare-total small {
    margin-left: 3px;
    font-size: .42em;
}

.nqep-desk__week-compare-bar {
    height: 8px;
    margin: 14px 0;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef3;
}

.nqep-desk__week-compare-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #9fb4c2;
}

.nqep-desk__week-compare-card--current .nqep-desk__week-compare-bar span {
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
}

.nqep-desk__week-compare-card dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.nqep-desk__week-compare-card dl div {
    padding: 10px;
    border-radius: 10px;
    background: #f4f8fa;
}

.nqep-desk__week-compare-card dt,
.nqep-desk__week-compare-card dd {
    margin: 0;
}

.nqep-desk__week-compare-card dt {
    color: var(--nqep-muted);
    font-size: .65em;
}

.nqep-desk__week-compare-card dd {
    margin-top: 3px;
    color: var(--nqep-navy);
    font-size: .9em;
    font-weight: 800;
}

.nqep-desk__week-compare-change {
    min-width: 92px;
    text-align: center;
}

.nqep-desk__week-compare-change span,
.nqep-desk__week-compare-change strong {
    display: block;
}

.nqep-desk__week-compare-change span {
    color: var(--nqep-muted);
    font-size: .64em;
}

.nqep-desk__week-compare-change strong {
    margin-top: 4px;
    color: var(--nqep-blue);
    font-size: 1.12em;
}

.nqep-desk__week-compare-summary {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 17px;
    padding: 13px 15px;
    border-left: 4px solid var(--nqep-cyan);
    border-radius: 0 10px 10px 0;
    background: rgba(228, 245, 246, .72);
    font-size: .78em;
}

.nqep-desk__week-compare-summary strong {
    flex: 0 0 auto;
    color: var(--nqep-navy);
}

.nqep-desk__week-compare-summary span {
    color: #436075;
}

.nqep-desk__week-compare-note {
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__panel--weekday-rhythm {
    padding: 28px;
    border-color: #d9e3eb;
    background:
        radial-gradient(circle at 4% 0, rgba(33, 72, 125, .08), transparent 30%),
        #fff;
}

.nqep-desk__weekday-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__weekday-head p,
.nqep-desk__weekday-lead,
.nqep-desk__weekday-note {
    margin: 0;
}

.nqep-desk__weekday-head p {
    color: var(--nqep-blue);
    font-size: .72em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__weekday-head h3 {
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.36em;
    line-height: 1.35;
}

.nqep-desk__weekday-pattern {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    border: 1px solid #cbd9e4;
    border-radius: 999px;
    color: #365d79;
    background: #f0f6fa;
    font-size: .72em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__weekday-pattern--balanced {
    border-color: #b9dfd0;
    color: #14704c;
    background: #eaf8f1;
}

.nqep-desk__weekday-pattern--focused {
    border-color: #ead7b3;
    color: #8a5b15;
    background: #fff8e9;
}

.nqep-desk__weekday-lead {
    margin-top: 9px;
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__weekday-insights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.nqep-desk__weekday-insights div {
    padding: 13px 15px;
    border: 1px solid #e0e7ed;
    border-radius: 12px;
    background: #f8fafc;
}

.nqep-desk__weekday-insights span,
.nqep-desk__weekday-insights strong {
    display: block;
}

.nqep-desk__weekday-insights span {
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__weekday-insights strong {
    margin-top: 4px;
    color: var(--nqep-navy);
    font-size: .9em;
}

.nqep-desk__weekday-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.nqep-desk__weekday {
    min-width: 0;
    padding: 12px 9px;
    border: 1px solid #e0e7ed;
    border-radius: 12px;
    background: #fbfcfd;
    text-align: center;
}

.nqep-desk__weekday.is-best {
    border-color: #add8d6;
    background: linear-gradient(180deg, #f4fbfb, #fff);
    box-shadow: 0 8px 18px rgba(32, 135, 142, .08);
}

.nqep-desk__weekday.is-gap {
    border-style: dashed;
}

.nqep-desk__weekday-chart {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 76px;
    margin-bottom: 9px;
    padding: 0 9px;
    border-bottom: 1px solid #d9e2e9;
    background: linear-gradient(to top, rgba(31, 91, 141, .05) 1px, transparent 1px) 0 0 / 100% 25%;
}

.nqep-desk__weekday-chart span {
    display: block;
    width: min(30px, 66%);
    min-height: 2px;
    border-radius: 7px 7px 2px 2px;
    background: #a8bac7;
}

.nqep-desk__weekday.is-best .nqep-desk__weekday-chart span {
    background: linear-gradient(180deg, var(--nqep-cyan), var(--nqep-blue));
}

.nqep-desk__weekday strong,
.nqep-desk__weekday > span,
.nqep-desk__weekday small {
    display: block;
}

.nqep-desk__weekday strong {
    color: var(--nqep-ink);
    font-size: .86em;
}

.nqep-desk__weekday > span {
    margin-top: 3px;
    color: var(--nqep-navy);
    font-size: .76em;
    font-weight: 800;
}

.nqep-desk__weekday small {
    margin-top: 2px;
    color: var(--nqep-muted);
    font-size: .62em;
}

.nqep-desk__weekday-summary {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 17px;
    padding: 13px 15px;
    border-left: 4px solid var(--nqep-blue);
    border-radius: 0 10px 10px 0;
    background: #f1f6fa;
    font-size: .78em;
}

.nqep-desk__weekday-summary strong {
    flex: 0 0 auto;
    color: var(--nqep-navy);
}

.nqep-desk__weekday-summary span {
    color: #436075;
}

.nqep-desk__weekday-note {
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__panel--time-band {
    padding: 28px;
    border-color: #d8e4df;
    background:
        radial-gradient(circle at 100% 0, rgba(45, 145, 117, .1), transparent 31%),
        linear-gradient(145deg, #fff, #f9fcfb);
}

.nqep-desk__time-band-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__time-band-title p,
.nqep-desk__time-band-lead,
.nqep-desk__time-band-note,
.nqep-desk__time-band-summary,
.nqep-desk__time-band > p {
    margin: 0;
}

.nqep-desk__time-band-title p {
    color: #26785f;
    font-size: .72em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__time-band-title h3 {
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.36em;
    line-height: 1.35;
}

.nqep-desk__time-band-status {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    border: 1px solid #c8ddd5;
    border-radius: 999px;
    color: #2d6f5a;
    background: #edf8f4;
    font-size: .72em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__time-band-status--sparse {
    border-color: #ead7b3;
    color: #8a5b15;
    background: #fff8e9;
}

.nqep-desk__time-band-lead {
    margin-top: 9px;
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__time-band-insights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.nqep-desk__time-band-insights div {
    padding: 13px 15px;
    border: 1px solid #dfe9e5;
    border-radius: 12px;
    background: rgba(248, 252, 250, .92);
}

.nqep-desk__time-band-insights span,
.nqep-desk__time-band-insights strong {
    display: block;
}

.nqep-desk__time-band-insights span {
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__time-band-insights strong {
    margin-top: 4px;
    color: var(--nqep-navy);
    font-size: .9em;
}

.nqep-desk__time-band-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 11px;
    margin-top: 18px;
}

.nqep-desk__time-band {
    min-width: 0;
    padding: 15px;
    border: 1px solid #dde8e3;
    border-radius: 13px;
    background: #fff;
}

.nqep-desk__time-band.is-volume-best {
    border-color: #acd5c7;
    box-shadow: 0 8px 20px rgba(35, 120, 91, .08);
}

.nqep-desk__time-band.is-accuracy-best {
    background: linear-gradient(180deg, #f2fbf7, #fff);
}

.nqep-desk__time-band-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.nqep-desk__time-band-head strong,
.nqep-desk__time-band-head small {
    display: block;
}

.nqep-desk__time-band-head strong {
    color: var(--nqep-ink);
    font-size: .9em;
}

.nqep-desk__time-band-head small {
    margin-top: 2px;
    color: var(--nqep-muted);
    font-size: .58em;
}

.nqep-desk__time-band-head > span {
    color: #24745b;
    font-size: .76em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__time-band-bar {
    height: 7px;
    margin: 13px 0;
    overflow: hidden;
    border-radius: 999px;
    background: #edf3f0;
}

.nqep-desk__time-band-bar span {
    display: block;
    min-width: 2px;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #66b89e, #26785f);
}

.nqep-desk__time-band dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.nqep-desk__time-band dl div {
    padding: 9px;
    border-radius: 9px;
    background: #f7faf9;
}

.nqep-desk__time-band dt,
.nqep-desk__time-band dd {
    margin: 0;
}

.nqep-desk__time-band dt {
    color: var(--nqep-muted);
    font-size: .59em;
}

.nqep-desk__time-band dd {
    margin-top: 3px;
    color: var(--nqep-navy);
    font-size: .8em;
    font-weight: 800;
}

.nqep-desk__time-band > p {
    margin-top: 10px;
    color: #87601d;
    font-size: .6em;
    font-weight: 700;
}

.nqep-desk__time-band > p.is-reliable {
    color: #24745b;
}

.nqep-desk__time-band-summary {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 17px;
    padding: 13px 15px;
    border-left: 4px solid #3a9678;
    border-radius: 0 10px 10px 0;
    background: #eff8f4;
    font-size: .78em;
}

.nqep-desk__time-band-summary strong {
    flex: 0 0 auto;
    color: var(--nqep-navy);
}

.nqep-desk__time-band-summary span {
    color: #43675b;
}

.nqep-desk__time-band-note {
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__panel--weekly-trend {
    padding: 28px;
    border-color: #d5e1ea;
    background:
        radial-gradient(circle at 96% 0, rgba(50, 137, 190, .1), transparent 30%),
        linear-gradient(145deg, #fff, #f8fbfd);
}

.nqep-desk__weekly-trend-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__weekly-trend-head p,
.nqep-desk__weekly-trend-lead,
.nqep-desk__weekly-trend-note {
    margin: 0;
}

.nqep-desk__weekly-trend-head p {
    color: var(--nqep-blue);
    font-size: .72em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__weekly-trend-head h3 {
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.36em;
    line-height: 1.35;
}

.nqep-desk__weekly-trend-status {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    border: 1px solid #c8d9e5;
    border-radius: 999px;
    color: #315b75;
    background: #eef6fa;
    font-size: .72em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__weekly-trend-status--up,
.nqep-desk__weekly-trend-status--start {
    border-color: #b9dfd0;
    color: #14704c;
    background: #eaf8f1;
}

.nqep-desk__weekly-trend-status--down {
    border-color: #ead7b3;
    color: #8a5b15;
    background: #fff8e9;
}

.nqep-desk__weekly-trend-lead {
    margin-top: 9px;
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__weekly-trend-insights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.nqep-desk__weekly-trend-insights div {
    padding: 13px 15px;
    border: 1px solid #dee7ed;
    border-radius: 12px;
    background: rgba(248, 251, 253, .9);
}

.nqep-desk__weekly-trend-insights span,
.nqep-desk__weekly-trend-insights strong {
    display: block;
}

.nqep-desk__weekly-trend-insights span {
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__weekly-trend-insights strong {
    margin-top: 4px;
    color: var(--nqep-navy);
    font-size: .9em;
}

.nqep-desk__weekly-trend-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 7px;
    margin-top: 18px;
}

.nqep-desk__weekly-bar {
    min-width: 0;
    padding: 9px 5px;
    border: 1px solid #e0e7ed;
    border-radius: 10px;
    background: #fbfcfd;
    text-align: center;
}

.nqep-desk__weekly-bar.is-best {
    border-color: #add8d6;
    background: #f3fbfa;
}

.nqep-desk__weekly-bar.is-current {
    border-style: dashed;
    border-color: #9eb9cf;
    background: #f4f8fb;
}

.nqep-desk__weekly-bar > div {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 78px;
    margin-bottom: 8px;
    padding: 0 5px;
    border-bottom: 1px solid #d9e2e9;
    background: linear-gradient(to top, rgba(31, 91, 141, .05) 1px, transparent 1px) 0 0 / 100% 25%;
}

.nqep-desk__weekly-bar > div span {
    display: block;
    width: min(22px, 70%);
    min-height: 2px;
    border-radius: 6px 6px 2px 2px;
    background: #a7b9c6;
}

.nqep-desk__weekly-bar.is-best > div span {
    background: linear-gradient(180deg, var(--nqep-cyan), var(--nqep-blue));
}

.nqep-desk__weekly-bar.is-current > div span {
    background: linear-gradient(180deg, #7e9fba, var(--nqep-navy));
}

.nqep-desk__weekly-bar strong,
.nqep-desk__weekly-bar > span,
.nqep-desk__weekly-bar small {
    display: block;
}

.nqep-desk__weekly-bar strong {
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .66em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__weekly-bar > span {
    margin-top: 3px;
    color: var(--nqep-navy);
    font-size: .67em;
    font-weight: 800;
}

.nqep-desk__weekly-bar small {
    margin-top: 2px;
    color: var(--nqep-muted);
    font-size: .58em;
}

.nqep-desk__weekly-trend-summary {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 17px;
    padding: 13px 15px;
    border-left: 4px solid var(--nqep-blue);
    border-radius: 0 10px 10px 0;
    background: #eff6fa;
    font-size: .78em;
}

.nqep-desk__weekly-trend-summary strong {
    flex: 0 0 auto;
    color: var(--nqep-navy);
}

.nqep-desk__weekly-trend-summary span {
    color: #436075;
}

.nqep-desk__weekly-trend-note {
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__panel--weekly-accuracy {
    padding: 28px;
    border-color: #dcdce9;
    background:
        radial-gradient(circle at 100% 0, rgba(99, 102, 241, .1), transparent 31%),
        linear-gradient(145deg, #fff, #fafaff);
}

.nqep-desk__weekly-accuracy-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.nqep-desk__weekly-accuracy-head p,
.nqep-desk__weekly-accuracy-lead,
.nqep-desk__weekly-accuracy-note {
    margin: 0;
}

.nqep-desk__weekly-accuracy-head p {
    margin-bottom: 6px;
    color: #5359a6;
    font-size: .7em;
    font-weight: 800;
    letter-spacing: .06em;
}

.nqep-desk .nqep-desk__weekly-accuracy-head h3 {
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.36em;
    line-height: 1.35;
}

.nqep-desk__weekly-accuracy-status {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 31px;
    padding: 5px 12px;
    border: 1px solid #d9dcef;
    border-radius: 999px;
    color: #4f568a;
    background: #f5f5ff;
    font-size: .7em;
    font-weight: 800;
}

.nqep-desk__weekly-accuracy-status--up {
    border-color: #bfe1d1;
    color: #176b50;
    background: #edf9f3;
}

.nqep-desk__weekly-accuracy-status--down,
.nqep-desk__weekly-accuracy-status--preparing,
.nqep-desk__weekly-accuracy-status--baseline {
    border-color: #ead7ad;
    color: #71531b;
    background: #fff9eb;
}

.nqep-desk__weekly-accuracy-status--empty {
    color: #526273;
    background: #f5f7fa;
}

.nqep-desk__weekly-accuracy-lead {
    margin-top: 12px;
    color: #46576a;
    font-size: .82em;
    line-height: 1.7;
}

.nqep-desk__weekly-accuracy-insights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.nqep-desk__weekly-accuracy-insights > div {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    min-width: 0;
    padding: 14px 15px;
    border: 1px solid #e1e3ef;
    border-radius: 12px;
    background: rgba(255, 255, 255, .82);
}

.nqep-desk__weekly-accuracy-insights span {
    grid-column: 1 / -1;
    margin-bottom: 5px;
    color: #667386;
    font-size: .66em;
    font-weight: 700;
}

.nqep-desk__weekly-accuracy-insights strong {
    min-width: 0;
    color: #263860;
    font-size: 1.05em;
    line-height: 1.25;
}

.nqep-desk__weekly-accuracy-insights small {
    color: #7b8492;
    font-size: .62em;
}

.nqep-desk__weekly-accuracy-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.nqep-desk__weekly-accuracy-bar {
    min-width: 0;
    padding: 8px 5px 9px;
    border: 1px solid #e2e4ed;
    border-radius: 11px;
    background: rgba(255, 255, 255, .78);
    text-align: center;
}

.nqep-desk__weekly-accuracy-bar > div {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 118px;
    margin-bottom: 8px;
    border-bottom: 1px solid #d8ddea;
    background:
        linear-gradient(to top, transparent 24%, rgba(91, 99, 168, .055) 25%, transparent 26%),
        linear-gradient(to top, transparent 49%, rgba(91, 99, 168, .055) 50%, transparent 51%),
        linear-gradient(to top, transparent 74%, rgba(91, 99, 168, .055) 75%, transparent 76%);
}

.nqep-desk__weekly-accuracy-bar > div span {
    width: 68%;
    min-height: 2px;
    border-radius: 7px 7px 2px 2px;
    background: linear-gradient(180deg, #766fd0, #426bb3);
}

.nqep-desk__weekly-accuracy-bar strong,
.nqep-desk__weekly-accuracy-bar > span,
.nqep-desk__weekly-accuracy-bar small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__weekly-accuracy-bar strong {
    color: #31425f;
    font-size: .69em;
}

.nqep-desk__weekly-accuracy-bar > span {
    margin-top: 3px;
    color: #293b63;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__weekly-accuracy-bar small {
    margin-top: 3px;
    color: #7b8492;
    font-size: .58em;
}

.nqep-desk__weekly-accuracy-bar.is-best {
    border-color: #b9bce6;
    background: #f6f5ff;
    box-shadow: inset 0 0 0 1px rgba(99, 102, 241, .08);
}

.nqep-desk__weekly-accuracy-bar.is-best > div span {
    background: linear-gradient(180deg, #55bfa6, #287f91);
}

.nqep-desk__weekly-accuracy-bar.is-current {
    border-style: dashed;
    border-color: #9fa7c8;
    background: #fbfbff;
}

.nqep-desk__weekly-accuracy-bar.is-small-sample {
    opacity: .68;
}

.nqep-desk__weekly-accuracy-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 15px;
    padding: 12px 14px;
    border-left: 3px solid #686dc1;
    border-radius: 0 10px 10px 0;
    background: #f2f3fb;
    font-size: .74em;
    line-height: 1.6;
}

.nqep-desk__weekly-accuracy-summary strong {
    flex: 0 0 auto;
    color: #303873;
}

.nqep-desk__weekly-accuracy-summary span {
    color: #4f5c70;
}

.nqep-desk__weekly-accuracy-note {
    margin-top: 10px;
    color: var(--nqep-muted);
    font-size: .66em;
}

.nqep-desk__panel--next {
    position: relative;
    overflow: hidden;
    border-color: rgba(35, 111, 189, .2);
    background:
        radial-gradient(circle at 105% -5%, rgba(78, 182, 178, .24), transparent 36%),
        linear-gradient(145deg, #f9fcff, #eef7fb);
}

.nqep-desk__panel--next::after {
    position: absolute;
    right: -38px;
    bottom: -58px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(35, 111, 189, .12);
    border-radius: 50%;
    content: "";
}

.nqep-desk__next-eyebrow {
    display: inline-flex;
    position: relative;
    z-index: 1;
    margin-bottom: 7px;
    padding: 3px 9px;
    border-radius: 999px;
    color: #16634b;
    background: #dff5eb;
    font-size: .67em;
    font-weight: 800;
}

.nqep-desk__panel--next > h3 {
    position: relative;
    z-index: 1;
    margin-bottom: 15px;
}

.nqep-desk__next-task {
    display: block;
    position: relative;
    z-index: 1;
    color: var(--nqep-ink);
    font-size: clamp(1.08em, 2.2vw, 1.28em);
    line-height: 1.55;
}

.nqep-desk__panel--next > p {
    position: relative;
    z-index: 1;
    margin: 10px 0 17px;
    color: var(--nqep-muted);
    font-size: .79em;
}

.nqep-desk__next-button {
    display: inline-flex;
    position: relative;
    z-index: 1;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid var(--nqep-navy);
    border-radius: 9px;
    color: #fff;
    background: linear-gradient(135deg, var(--nqep-navy), var(--nqep-blue));
    font: inherit;
    font-size: .78em;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(22, 53, 104, .17);
}

.nqep-desk__next-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 11px 22px rgba(22, 53, 104, .23);
}

.nqep-desk__next-note {
    display: inline-flex;
    position: relative;
    z-index: 1;
    align-items: center;
    min-height: 34px;
    padding: 6px 11px;
    border: 1px solid rgba(35, 111, 189, .14);
    border-radius: 9px;
    color: var(--nqep-navy);
    background: rgba(255, 255, 255, .7);
    font-size: .7em;
    font-weight: 700;
}

/* ---- 学習ロードマップ ---- */
.nqep-desk__panel--roadmap {
    overflow: hidden;
    border-color: rgba(22, 53, 104, .2);
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .14), transparent 28%),
        linear-gradient(150deg, #fff, #f7faff);
}

.nqep-desk__roadmap-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 17px;
}

.nqep-desk__roadmap-head span {
    display: block;
    margin-bottom: 5px;
    color: var(--nqep-blue);
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .06em;
}

.nqep-desk__roadmap-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.1em;
    line-height: 1.5;
}

.nqep-desk__roadmap-head > strong {
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid #b9cce2;
    border-radius: 999px;
    color: var(--nqep-navy);
    background: rgba(255, 255, 255, .84);
    font-size: .78em;
}

.nqep-desk__roadmap-current {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid #c9e5df;
    border-radius: 12px;
    color: var(--nqep-ink);
    background: #f1faf7;
}

.nqep-desk__roadmap-current small {
    padding: 3px 8px;
    border-radius: 999px;
    color: #12603e;
    background: #d9f2e8;
    font-size: .65em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__roadmap-current strong {
    font-size: .85em;
}

.nqep-desk__roadmap-current span {
    margin-left: auto;
    color: var(--nqep-muted);
    font-size: .72em;
    font-weight: 700;
    white-space: nowrap;
}

.nqep-desk__roadmap-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.nqep-desk__roadmap-step {
    display: flex;
    position: relative;
    flex-direction: column;
    min-width: 0;
    min-height: 210px;
    padding: 15px;
    border: 1px solid #dce3eb;
    border-radius: 14px;
    background: rgba(255, 255, 255, .8);
}

.nqep-desk__roadmap-step.is-current {
    border-color: #6ebdb3;
    background: linear-gradient(145deg, #fff, #eef9f6);
    box-shadow: 0 9px 22px rgba(34, 113, 102, .1);
}

.nqep-desk__roadmap-step.is-complete {
    border-color: #bfd6ef;
    background: linear-gradient(145deg, #fff, #f2f7fc);
}

.nqep-desk__roadmap-step-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.nqep-desk__roadmap-step-head > span {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #fff;
    background: #a6b0bb;
    font-size: .72em;
    font-weight: 900;
}

.nqep-desk__roadmap-step.is-current .nqep-desk__roadmap-step-head > span {
    background: #2b8e7f;
}

.nqep-desk__roadmap-step.is-complete .nqep-desk__roadmap-step-head > span {
    background: var(--nqep-blue);
}

.nqep-desk__roadmap-step-head small {
    color: var(--nqep-muted);
    font-size: .62em;
    font-weight: 800;
}

.nqep-desk__roadmap-step.is-current .nqep-desk__roadmap-step-head small {
    color: #19734b;
}

.nqep-desk__roadmap-step h4 {
    margin: 13px 0 7px;
    color: var(--nqep-ink);
    font-size: .82em;
    line-height: 1.45;
}

.nqep-desk__roadmap-step p {
    flex: 1;
    margin: 0 0 13px;
    color: var(--nqep-muted);
    font-size: .68em;
    line-height: 1.65;
}

.nqep-desk__roadmap-progress {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8edf2;
}

.nqep-desk__roadmap-progress > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #8a99a8, #b3bec8);
}

.nqep-desk__roadmap-step.is-current .nqep-desk__roadmap-progress > span {
    background: linear-gradient(90deg, #2b8e7f, var(--nqep-cyan));
}

.nqep-desk__roadmap-step.is-complete .nqep-desk__roadmap-progress > span {
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
}

.nqep-desk__roadmap-step > strong {
    margin-top: 8px;
    color: var(--nqep-ink);
    font-size: .72em;
}

.nqep-desk__roadmap-note {
    margin: 13px 0 0;
    color: var(--nqep-muted);
    font-size: .66em;
    text-align: right;
}

/* ---- 資格別・学習データ充実度 ---- */
.nqep-desk__panel--readiness {
    overflow: hidden;
    border-color: rgba(91, 86, 161, .2);
    background:
        radial-gradient(circle at 94% 8%, rgba(118, 104, 199, .14), transparent 28%),
        radial-gradient(circle at 4% 100%, rgba(48, 182, 186, .1), transparent 30%),
        linear-gradient(145deg, #fff, #f8f8ff);
}

.nqep-desk__readiness-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 118px;
    gap: 24px;
    align-items: center;
}

.nqep-desk__readiness-head > div:first-child > span {
    display: block;
    margin-bottom: 5px;
    color: #6258a8;
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .06em;
}

.nqep-desk__readiness-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.1em;
    line-height: 1.5;
}

.nqep-desk__readiness-head p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .75em;
    line-height: 1.75;
}

.nqep-desk__readiness-score {
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 112px;
    height: 112px;
    margin-left: auto;
    border-radius: 50%;
    background: conic-gradient(#6f63bc var(--nqep-readiness), #e5e7f2 0);
    color: var(--nqep-ink);
}

.nqep-desk__readiness-score::before {
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(91, 86, 161, .1);
    border-radius: inherit;
    background: rgba(255, 255, 255, .94);
    content: "";
}

.nqep-desk__readiness-score > div,
.nqep-desk__readiness-score > small {
    position: relative;
    z-index: 1;
}

.nqep-desk__readiness-score strong {
    font-size: 1.55em;
    line-height: 1;
}

.nqep-desk__readiness-score span {
    margin-left: 2px;
    color: #6258a8;
    font-size: .72em;
    font-weight: 800;
}

.nqep-desk__readiness-score small {
    margin-top: 7px;
    color: var(--nqep-muted);
    font-size: .58em;
    font-weight: 800;
}

.nqep-desk__readiness-next {
    display: grid;
    grid-template-columns: auto minmax(120px, auto) minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    margin: 18px 0 14px;
    padding: 12px 14px;
    border: 1px solid #d8d3ed;
    border-radius: 12px;
    background: rgba(255, 255, 255, .78);
}

.nqep-desk__readiness-next > span {
    padding: 4px 8px;
    border-radius: 999px;
    color: #53488f;
    background: #ebe8f8;
    font-size: .64em;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__readiness-next strong {
    color: var(--nqep-ink);
    font-size: .78em;
}

.nqep-desk__readiness-next p {
    margin: 0;
    color: var(--nqep-muted);
    font-size: .68em;
    line-height: 1.55;
}

.nqep-desk__readiness-next em {
    color: #6258a8;
    font-size: .68em;
    font-style: normal;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__readiness-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
}

.nqep-desk__readiness-item {
    min-width: 0;
    padding: 13px;
    border: 1px solid #e0e2ea;
    border-radius: 12px;
    background: rgba(255, 255, 255, .75);
}

.nqep-desk__readiness-item.is-complete {
    border-color: #c4e2da;
    background: rgba(243, 251, 248, .9);
}

.nqep-desk__readiness-item-head {
    min-height: 87px;
}

.nqep-desk__readiness-item-head strong,
.nqep-desk__readiness-item-head span {
    display: block;
}

.nqep-desk__readiness-item-head strong {
    color: var(--nqep-ink);
    font-size: .75em;
}

.nqep-desk__readiness-item-head span {
    margin-top: 5px;
    color: var(--nqep-muted);
    font-size: .61em;
    line-height: 1.55;
}

.nqep-desk__readiness-item-head em {
    display: block;
    margin-top: 8px;
    color: #6258a8;
    font-size: .65em;
    font-style: normal;
    font-weight: 800;
}

.nqep-desk__readiness-item.is-complete .nqep-desk__readiness-item-head em {
    color: #19734b;
}

.nqep-desk__readiness-bar {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8e9f0;
}

.nqep-desk__readiness-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #8c80c8, #6f63bc);
}

.nqep-desk__readiness-item.is-complete .nqep-desk__readiness-bar > span {
    background: linear-gradient(90deg, #2b8e7f, var(--nqep-cyan));
}

.nqep-desk__readiness-note {
    margin: 13px 0 0;
    color: var(--nqep-muted);
    font-size: .65em;
    line-height: 1.65;
    text-align: right;
}

/* ---- 資格別・難易度分析 ---- */
.nqep-desk__panel--difficulty {
    position: relative;
    overflow: hidden;
    border-color: rgba(24, 49, 83, .2);
    background:
        radial-gradient(circle at 98% 0, rgba(48, 182, 186, .16), transparent 34%),
        linear-gradient(145deg, #f7fbff, #fff 58%, #f5fbf9);
}

.nqep-desk__panel--difficulty::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background: linear-gradient(180deg, var(--nqep-navy), var(--nqep-cyan));
    content: "";
}

.nqep-desk__difficulty-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .78fr);
    gap: 24px;
    align-items: stretch;
}

.nqep-desk__difficulty-head > div:first-child > span {
    display: block;
    margin-bottom: 5px;
    color: #287a86;
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .07em;
}

.nqep-desk__difficulty-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.1em;
    line-height: 1.5;
}

.nqep-desk__difficulty-head > div:first-child > p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .75em;
    line-height: 1.75;
}

.nqep-desk__difficulty-focus {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 5px 11px;
    align-content: center;
    padding: 14px 16px;
    border: 1px solid #c9dce8;
    border-radius: 13px;
    background: rgba(255, 255, 255, .82);
}

.nqep-desk__difficulty-focus > span {
    grid-column: 1 / -1;
    color: var(--nqep-muted);
    font-size: .63em;
    font-weight: 800;
    letter-spacing: .04em;
}

.nqep-desk__difficulty-focus strong {
    align-self: start;
    padding: 5px 9px;
    border-radius: 999px;
    color: #fff;
    background: var(--nqep-navy);
    font-size: .72em;
    text-align: center;
    white-space: nowrap;
}

.nqep-desk__difficulty-focus p {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .68em;
    line-height: 1.6;
}

.nqep-desk__difficulty-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.nqep-desk__difficulty-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid #dbe4eb;
    border-radius: 14px;
    background: rgba(255, 255, 255, .88);
}

.nqep-desk__difficulty-card--review {
    border-color: #efc8b9;
    background: rgba(255, 249, 246, .94);
}

.nqep-desk__difficulty-card--strong {
    border-color: #c4e2da;
    background: rgba(246, 252, 249, .94);
}

.nqep-desk__difficulty-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.nqep-desk__difficulty-card-head span,
.nqep-desk__difficulty-card-head strong {
    display: block;
}

.nqep-desk__difficulty-card-head span {
    margin-bottom: 4px;
    color: #5a748b;
    font-size: .6em;
    font-weight: 800;
}

.nqep-desk__difficulty-card--review .nqep-desk__difficulty-card-head span {
    color: #a65035;
}

.nqep-desk__difficulty-card--strong .nqep-desk__difficulty-card-head span {
    color: #19734b;
}

.nqep-desk__difficulty-card-head strong {
    color: var(--nqep-ink);
    font-size: .88em;
}

.nqep-desk__difficulty-card-head em {
    color: var(--nqep-muted);
    font-size: .67em;
    font-style: normal;
    font-weight: 800;
    white-space: nowrap;
}

.nqep-desk__difficulty-score {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 15px;
}

.nqep-desk__difficulty-score strong {
    color: var(--nqep-ink);
    font-size: 1.6em;
    line-height: 1;
}

.nqep-desk__difficulty-score span {
    color: var(--nqep-muted);
    font-size: .62em;
}

.nqep-desk__difficulty-bar {
    height: 7px;
    margin-top: 11px;
    overflow: hidden;
    border-radius: 999px;
    background: #e5ebef;
}

.nqep-desk__difficulty-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
}

.nqep-desk__difficulty-card--review .nqep-desk__difficulty-bar > span {
    background: linear-gradient(90deg, #d16a49, #e6a56c);
}

.nqep-desk__difficulty-card dl {
    margin: 13px 0 0;
}

.nqep-desk__difficulty-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding-top: 8px;
    border-top: 1px solid #edf1f4;
}

.nqep-desk__difficulty-card dl > div + div {
    margin-top: 8px;
}

.nqep-desk__difficulty-card dt,
.nqep-desk__difficulty-card dd {
    margin: 0;
    font-size: .62em;
    line-height: 1.55;
}

.nqep-desk__difficulty-card dt {
    color: var(--nqep-muted);
    white-space: nowrap;
}

.nqep-desk__difficulty-card dd {
    color: var(--nqep-ink);
    font-weight: 700;
    text-align: right;
}

.nqep-desk__difficulty-note {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 12px;
    margin: 13px 0 0;
    color: var(--nqep-muted);
    font-size: .65em;
    line-height: 1.65;
    text-align: right;
}

.nqep-desk__difficulty-note span {
    color: #8a5b36;
    font-weight: 700;
}

/* ---- 資格別・模擬／演習の成績推移 ---- */
.nqep-desk__panel--attempt-performance {
    position: relative;
    overflow: hidden;
    border-color: rgba(64, 62, 142, .22);
    background:
        radial-gradient(circle at 98% 2%, rgba(118, 104, 216, .15), transparent 35%),
        linear-gradient(145deg, #f8f8ff, #fff 56%, #f5fbff);
}

.nqep-desk__panel--attempt-performance::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #554ba8, var(--nqep-blue), var(--nqep-cyan));
    content: "";
}

.nqep-desk__attempt-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, .8fr);
    gap: 24px;
    align-items: stretch;
}

.nqep-desk__attempt-head > div:first-child > span {
    display: block;
    margin-bottom: 5px;
    color: #6256b1;
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .07em;
}

.nqep-desk__attempt-head h3 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: 1.1em;
    line-height: 1.5;
}

.nqep-desk__attempt-head > div:first-child > p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .75em;
    line-height: 1.75;
}

.nqep-desk__attempt-focus {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 5px 11px;
    align-content: center;
    padding: 14px 16px;
    border: 1px solid #d8d4ef;
    border-radius: 13px;
    background: rgba(255, 255, 255, .86);
}

.nqep-desk__attempt-focus > span {
    grid-column: 1 / -1;
    color: var(--nqep-muted);
    font-size: .63em;
    font-weight: 800;
    letter-spacing: .04em;
}

.nqep-desk__attempt-focus strong {
    align-self: start;
    padding: 5px 9px;
    border-radius: 999px;
    color: #fff;
    background: #6156af;
    font-size: .7em;
    text-align: center;
    white-space: nowrap;
}

.nqep-desk__attempt-focus--improving strong {
    background: #16734a;
}

.nqep-desk__attempt-focus--declining strong {
    background: #b24e40;
}

.nqep-desk__attempt-focus p {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .68em;
    line-height: 1.6;
}

.nqep-desk__attempt-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 11px;
    margin-top: 18px;
}

.nqep-desk__attempt-metric {
    min-width: 0;
    padding: 14px 15px;
    border: 1px solid #e0e2ec;
    border-radius: 13px;
    background: rgba(255, 255, 255, .9);
}

.nqep-desk__attempt-metric > span,
.nqep-desk__attempt-metric > strong,
.nqep-desk__attempt-metric > small {
    display: block;
}

.nqep-desk__attempt-metric > span {
    color: var(--nqep-muted);
    font-size: .61em;
    font-weight: 800;
}

.nqep-desk__attempt-metric > strong {
    margin-top: 7px;
    overflow-wrap: anywhere;
    color: var(--nqep-ink);
    font-size: 1.25em;
    line-height: 1.25;
}

.nqep-desk__attempt-metric > small {
    margin-top: 5px;
    color: #718093;
    font-size: .58em;
    line-height: 1.5;
}

.nqep-desk__attempt-mode-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
}

.nqep-desk__attempt-mode-head h4 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .82em;
}

.nqep-desk__attempt-mode-head span {
    max-width: 480px;
    color: var(--nqep-muted);
    font-size: .58em;
    line-height: 1.55;
    text-align: right;
}

.nqep-desk__attempt-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin-top: 11px;
}

.nqep-desk__attempt-mode {
    min-width: 0;
    padding: 15px 17px;
    border: 1px solid #d9e2ef;
    border-top: 4px solid #3d86b8;
    border-radius: 13px;
    background: rgba(255, 255, 255, .9);
}

.nqep-desk__attempt-mode--mock {
    border-top-color: #6559b2;
}

.nqep-desk__attempt-mode header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.nqep-desk__attempt-mode header span {
    color: var(--nqep-ink);
    font-size: .73em;
    font-weight: 800;
}

.nqep-desk__attempt-mode header strong {
    padding: 4px 9px;
    border-radius: 999px;
    color: #245f85;
    background: #eaf4fa;
    font-size: .65em;
    white-space: nowrap;
}

.nqep-desk__attempt-mode--mock header strong {
    color: #584c9a;
    background: #f0eefb;
}

.nqep-desk__attempt-mode dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 13px 0 0;
}

.nqep-desk__attempt-mode dl > div {
    min-width: 0;
    padding: 10px;
    border-radius: 10px;
    background: #f6f9fc;
}

.nqep-desk__attempt-mode dt,
.nqep-desk__attempt-mode dd {
    margin: 0;
}

.nqep-desk__attempt-mode dt {
    color: var(--nqep-muted);
    font-size: .54em;
    font-weight: 700;
}

.nqep-desk__attempt-mode dd {
    margin-top: 5px;
    overflow-wrap: anywhere;
    color: var(--nqep-ink);
    font-size: .85em;
    font-weight: 800;
}

.nqep-desk__attempt-mode > p {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .62em;
    line-height: 1.6;
}

.nqep-desk__attempt-mode-note {
    margin: 9px 0 0;
    color: #7c688d;
    font-size: .6em;
    line-height: 1.6;
}

.nqep-desk__attempt-history-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-top: 21px;
}

.nqep-desk__attempt-history-head h4 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .82em;
}

.nqep-desk__attempt-history-head span {
    color: var(--nqep-muted);
    font-size: .58em;
    line-height: 1.55;
    text-align: right;
}

.nqep-desk__attempt-chart {
    display: grid;
    grid-auto-columns: minmax(54px, 1fr);
    grid-auto-flow: column;
    gap: 8px;
    height: 185px;
    margin: 12px 0 0;
    padding: 15px 12px 10px;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid #e2e4ee;
    border-radius: 14px;
    background:
        linear-gradient(to top, rgba(91, 92, 151, .08) 1px, transparent 1px) 0 0 / 100% 25%,
        rgba(255, 255, 255, .84);
    list-style: none;
}

.nqep-desk__attempt-point {
    display: grid;
    grid-template-rows: 21px minmax(80px, 1fr) 20px 18px;
    min-width: 0;
    text-align: center;
}

.nqep-desk__attempt-point-score {
    color: var(--nqep-ink);
    font-size: .61em;
    font-weight: 800;
}

.nqep-desk__attempt-point-bar {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 0;
}

.nqep-desk__attempt-point-bar i {
    display: block;
    width: min(26px, 72%);
    min-height: 4px;
    border-radius: 6px 6px 2px 2px;
    background: linear-gradient(180deg, #4e81ca, #315d9d);
}

.nqep-desk__attempt-point--passed .nqep-desk__attempt-point-bar i {
    background: linear-gradient(180deg, #44b983, #1a7951);
}

.nqep-desk__attempt-point--failed .nqep-desk__attempt-point-bar i {
    background: linear-gradient(180deg, #df7c6b, #af443b);
}

.nqep-desk__attempt-point time,
.nqep-desk__attempt-point em {
    overflow: hidden;
    color: var(--nqep-muted);
    font-size: .54em;
    font-style: normal;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__attempt-point em {
    font-weight: 700;
}

.nqep-desk__attempt-point--passed em {
    color: #19734b;
}

.nqep-desk__attempt-point--failed em {
    color: #a8463d;
}

.nqep-desk__attempt-empty {
    margin: 12px 0 0;
    padding: 20px;
    border: 1px dashed #ccd0df;
    border-radius: 13px;
    color: var(--nqep-muted);
    background: rgba(255, 255, 255, .72);
    font-size: .7em;
    text-align: center;
}

.nqep-desk__attempt-note {
    margin: 13px 0 0;
    color: var(--nqep-muted);
    font-size: .65em;
    line-height: 1.65;
    text-align: right;
}

/* ---- 資格別・今週の学習プラン ---- */
.nqep-desk__panel--study-plan {
    position: relative;
    overflow: hidden;
    padding: 28px;
    border-color: #c8dbea;
    background:
        radial-gradient(circle at 100% 0, rgba(48, 182, 186, .13), transparent 34%),
        linear-gradient(145deg, #f7fbff 0%, #fff 58%, #f5fbf8 100%);
}

.nqep-desk__panel--study-plan::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: linear-gradient(180deg, var(--nqep-cyan), #4b79b7);
    content: "";
}

.nqep-desk__study-plan-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}

.nqep-desk__study-plan-head > div {
    min-width: 0;
}

.nqep-desk__study-plan-head span {
    display: block;
    margin-bottom: 6px;
    color: #287a86;
    font-size: .73em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__study-plan-head h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: transparent;
    box-shadow: none;
    font-size: clamp(1.18em, 2.5vw, 1.55em);
    line-height: 1.45;
    word-break: auto-phrase;
}

.nqep-desk .nqep-desk__study-plan-head h3::before,
.nqep-desk .nqep-desk__study-plan-head h3::after {
    display: none;
}

.nqep-desk__study-plan-head p {
    max-width: 720px;
    margin: 8px 0 0;
    color: var(--nqep-muted);
    font-size: .84em;
    line-height: 1.75;
}

.nqep-desk__study-plan-head > strong {
    flex: 0 0 auto;
    padding: 9px 14px;
    border: 1px solid #a8d8d5;
    border-radius: 999px;
    color: #176c65;
    background: #e8f7f3;
    font-size: .78em;
    white-space: nowrap;
}

.nqep-desk__study-plan-tasks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
}

.nqep-desk__study-plan-task {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    gap: 0 11px;
    min-width: 0;
    min-height: 184px;
    padding: 19px;
    border: 1px solid #d9e4ec;
    border-radius: 14px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 22px rgba(24, 49, 83, .055);
}

.nqep-desk__study-plan-task::after {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 54px;
    height: 54px;
    border-radius: 54px 0 14px 0;
    background: rgba(64, 177, 182, .07);
    content: "";
}

.nqep-desk__study-plan-number {
    display: grid;
    grid-row: 1 / span 2;
    place-items: center;
    width: 29px;
    height: 29px;
    border-radius: 9px;
    color: #fff;
    background: #347c9d;
    font-size: .74em;
    font-weight: 800;
}

.nqep-desk__study-plan-task small {
    display: block;
    margin: 1px 0 3px;
    color: #78909f;
    font-size: .65em;
    font-weight: 700;
}

.nqep-desk .nqep-desk__study-plan-task h4 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: transparent;
    box-shadow: none;
    font-size: .96em;
    line-height: 1.5;
    word-break: auto-phrase;
}

.nqep-desk .nqep-desk__study-plan-task h4::before,
.nqep-desk .nqep-desk__study-plan-task h4::after {
    display: none;
}

.nqep-desk__study-plan-task p {
    margin: 8px 0 0;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.7;
}

.nqep-desk__study-plan-task-foot {
    z-index: 1;
    grid-column: 2;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    align-self: end;
    margin-top: 14px;
}

.nqep-desk__study-plan-task-foot > strong {
    color: var(--nqep-navy);
    font-size: 1.25em;
}

.nqep-desk__study-plan-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 7px 11px;
    border: 1px solid #b8cedd;
    border-radius: 9px;
    color: #155f8f;
    background: #f4f9fc;
    font: inherit;
    font-size: .68em;
    font-weight: 800;
    line-height: 1.35;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.nqep-desk__study-plan-action:hover,
.nqep-desk__study-plan-action:focus-visible {
    border-color: #4a97bd;
    color: #0d4f7a;
    background: #eaf5fa;
    text-decoration: none;
    transform: translateY(-1px);
}

.nqep-desk__study-plan-action.is-disabled {
    color: #657887;
    background: #f4f6f7;
    cursor: default;
}

.nqep-desk__study-plan-action.is-disabled:hover {
    border-color: #b8cedd;
    color: #657887;
    background: #f4f6f7;
    transform: none;
}

.nqep-desk__study-plan-task--review .nqep-desk__study-plan-number {
    background: #b56d48;
}

.nqep-desk__study-plan-task--mock .nqep-desk__study-plan-number {
    background: #635aa8;
}

.nqep-desk__study-plan-task--coverage .nqep-desk__study-plan-number {
    background: #27866d;
}

.nqep-desk__study-plan-note {
    margin: 15px 0 0;
    color: var(--nqep-muted);
    font-size: .74em;
    line-height: 1.7;
}

/* ---- 学習分析 ---- */
.nqep-desk__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.nqep-desk__metric {
    min-height: 96px;
    padding: 18px 14px;
    border: 1px solid #dceaf2;
    border-radius: 13px;
    background: linear-gradient(145deg, #f4f9fd, var(--nqep-sky));
    text-align: left;
}

.nqep-desk__metric-value {
    display: block;
    color: var(--nqep-ink);
    font-size: 1.45em;
    font-weight: 800;
    line-height: 1.2;
}

.nqep-desk__metric-label {
    display: block;
    margin-top: 7px;
    color: var(--nqep-muted);
    font-size: .73em;
}

.nqep-desk__sample-note {
    margin: -8px 0 12px;
    font-size: .78em;
}

.nqep-desk__field-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nqep-desk__field-row {
    padding: 12px 0;
    border-bottom: 1px solid var(--nqep-soft-line);
}

.nqep-desk__field-row:last-child {
    border-bottom: 0;
}

.nqep-desk__field-head,
.nqep-desk__field-detail {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nqep-desk__field-head {
    justify-content: space-between;
}

.nqep-desk__field-head strong {
    color: var(--nqep-ink);
}

.nqep-desk__field-detail {
    justify-content: flex-end;
    color: var(--nqep-muted);
    font-size: .74em;
}

.nqep-desk__classification {
    padding: 3px 9px;
    border: 1px solid var(--nqep-line);
    border-radius: 999px;
    font-size: .68em;
    font-weight: 700;
    white-space: nowrap;
}

.nqep-desk__classification--strength {
    border-color: #acdcca;
    color: #12603e;
    background: var(--nqep-mint);
}

.nqep-desk__classification--weakness {
    border-color: #efc1c1;
    color: #963838;
    background: #fff3f3;
}

.nqep-desk__classification--steady {
    border-color: #b8cce6;
    color: var(--nqep-navy);
    background: #f1f6fb;
}

.nqep-desk__classification--insufficient {
    color: var(--nqep-muted);
    background: #f8f8f8;
}

.nqep-desk__accuracy-bar {
    height: 7px;
    margin-top: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #eef2f6;
}

.nqep-desk__accuracy-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--nqep-blue), var(--nqep-cyan));
}

/* ---- 分野別・学習優先度マップ ---- */
.nqep-desk .nqep-desk__priority-head h3 {
    margin: 3px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.18em;
    line-height: 1.35;
}

.nqep-desk__priority-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.nqep-desk__priority-head > div > p {
    margin: 0;
    color: var(--nqep-blue);
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__priority-head > p {
    max-width: 420px;
    margin: 0;
    color: var(--nqep-muted);
    font-size: .76em;
    line-height: 1.65;
}

.nqep-desk__priority-map {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.nqep-desk__priority-lane {
    min-width: 0;
    padding: 13px;
    border: 1px solid var(--nqep-line);
    border-top: 4px solid #9eacb8;
    border-radius: 13px;
    background: #fbfcfd;
}

.nqep-desk__priority-lane--repair {
    border-top-color: #dc5353;
    background: #fff8f7;
}

.nqep-desk__priority-lane--practice {
    border-top-color: #d58b25;
    background: #fffbf3;
}

.nqep-desk__priority-lane--collect {
    border-top-color: #6c8297;
}

.nqep-desk__priority-lane--maintain {
    border-top-color: #29986b;
    background: #f5fbf8;
}

.nqep-desk__priority-lane > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--nqep-ink);
    font-size: .78em;
    font-weight: 800;
}

.nqep-desk__priority-lane > header strong {
    display: inline-grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 999px;
    color: var(--nqep-navy);
    background: #eaf1f7;
    font-size: .9em;
}

.nqep-desk__priority-lane > p {
    min-height: 36px;
    margin: 5px 0 11px;
    color: var(--nqep-muted);
    font-size: .64em;
    line-height: 1.45;
}

.nqep-desk__priority-lane > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.nqep-desk__priority-card {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(203, 213, 222, .8);
    border-radius: 10px;
    background: rgba(255, 255, 255, .86);
}

.nqep-desk__priority-card > strong {
    display: block;
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .74em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__priority-card > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: 5px;
}

.nqep-desk__priority-card > div span {
    color: var(--nqep-navy);
    font-size: 1em;
    font-weight: 800;
}

.nqep-desk__priority-card > div small {
    color: var(--nqep-muted);
    font-size: .62em;
}

.nqep-desk__priority-card > p {
    margin: 4px 0 0;
    color: var(--nqep-muted);
    font-size: .6em;
}

.nqep-desk__priority-card > p.is-up {
    color: #19734b;
}

.nqep-desk__priority-card > p.is-down {
    color: #a54040;
}

.nqep-desk__priority-empty {
    margin: 0;
    padding: 13px 8px;
    border: 1px dashed #cfd9e1;
    border-radius: 9px;
    color: var(--nqep-muted);
    text-align: center;
    font-size: .66em;
}

.nqep-desk__priority-focus {
    display: grid;
    grid-template-columns: auto minmax(120px, auto) 1fr;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    padding: 13px 15px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(120deg, var(--nqep-navy), var(--nqep-blue));
}

.nqep-desk__priority-focus > span {
    padding: 4px 8px;
    border-radius: 999px;
    color: var(--nqep-navy);
    background: #fff;
    font-size: .64em;
    font-weight: 800;
}

.nqep-desk__priority-focus > strong {
    font-size: .82em;
}

.nqep-desk__priority-focus > p {
    margin: 0;
    color: rgba(255, 255, 255, .85);
    font-size: .68em;
    text-align: right;
}

.nqep-desk__priority-focus.is-balanced {
    grid-template-columns: auto 1fr;
    background: linear-gradient(120deg, #1c7454, #29986b);
}

.nqep-desk__priority-note {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .64em;
    line-height: 1.6;
}

/* ---- 復習進捗・定着ダッシュボード ---- */
.nqep-desk .nqep-desk__review-progress-head h3 {
    margin: 3px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.18em;
    line-height: 1.35;
}

.nqep-desk__review-progress-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.nqep-desk__review-progress-head > div > p {
    margin: 0;
    color: var(--nqep-blue);
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__review-progress-head > span {
    padding: 5px 10px;
    border-radius: 999px;
    color: #1c6b4d;
    background: #e6f6ee;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__review-progress-head > span.is-queued {
    color: #9a482f;
    background: #fff0e9;
}

.nqep-desk__review-progress-head > span.is-empty {
    color: var(--nqep-muted);
    background: #eef2f5;
}

.nqep-desk__review-progress-layout {
    display: grid;
    grid-template-columns: minmax(300px, 5fr) minmax(420px, 7fr);
    gap: 15px;
}

.nqep-desk__review-progress-summary,
.nqep-desk__review-fields {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--nqep-line);
    border-radius: 15px;
}

.nqep-desk__review-progress-summary {
    color: #fff;
    background: linear-gradient(145deg, var(--nqep-navy), #174f89);
}

.nqep-desk__review-progress-ring {
    display: grid;
    width: 132px;
    height: 132px;
    margin: 0 auto 17px;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--nqep-cyan) var(--nqep-review-progress), rgba(255, 255, 255, .15) 0);
}

.nqep-desk__review-progress-ring::before {
    grid-area: 1 / 1;
    width: 102px;
    height: 102px;
    border-radius: 50%;
    background: var(--nqep-navy);
    content: "";
}

.nqep-desk__review-progress-ring > div {
    z-index: 1;
    grid-area: 1 / 1;
    text-align: center;
}

.nqep-desk__review-progress-ring strong,
.nqep-desk__review-progress-ring span {
    display: block;
}

.nqep-desk__review-progress-ring strong {
    font-size: 1.5em;
    line-height: 1;
}

.nqep-desk__review-progress-ring span {
    margin-top: 5px;
    color: rgba(255, 255, 255, .72);
    font-size: .66em;
}

.nqep-desk__review-progress-summary dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
}

.nqep-desk__review-progress-summary dl > div {
    padding: 10px 7px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
    text-align: center;
}

.nqep-desk__review-progress-summary dt {
    color: rgba(255, 255, 255, .68);
    font-size: .62em;
}

.nqep-desk__review-progress-summary dd {
    margin: 2px 0 0;
    color: #fff;
    font-size: .86em;
    font-weight: 800;
}

.nqep-desk__review-progress-insights {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.nqep-desk__review-progress-insights > div {
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
}

.nqep-desk__review-progress-insights span,
.nqep-desk__review-progress-insights strong,
.nqep-desk__review-progress-insights p {
    display: block;
}

.nqep-desk__review-progress-insights span {
    color: rgba(255, 255, 255, .64);
    font-size: .6em;
}

.nqep-desk__review-progress-insights strong {
    margin-top: 2px;
    font-size: .75em;
}

.nqep-desk__review-progress-insights p {
    margin: 2px 0 0;
    color: rgba(255, 255, 255, .75);
    font-size: .62em;
}

.nqep-desk__review-progress-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 41px;
    margin-top: 11px;
    border: 1px solid #fff;
    border-radius: 10px;
    color: var(--nqep-navy);
    background: #fff;
    font: inherit;
    font-size: .7em;
    font-weight: 800;
    cursor: pointer;
}

.nqep-desk .nqep-desk__review-fields h4 {
    margin: 0 0 13px;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: .84em;
}

.nqep-desk__review-fields > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.nqep-desk__review-field {
    padding: 12px;
    border: 1px solid var(--nqep-soft-line);
    border-radius: 11px;
    background: #fbfcfd;
}

.nqep-desk__review-field-head,
.nqep-desk__review-field > p {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__review-field-head strong {
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .72em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__review-field-head > span {
    color: var(--nqep-blue);
    font-size: .76em;
    font-weight: 800;
}

.nqep-desk__review-field-bar {
    height: 7px;
    margin-top: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8edf2;
}

.nqep-desk__review-field-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--nqep-cyan), #43ad7d);
}

.nqep-desk__review-field > p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .6em;
}

.nqep-desk__review-progress-note {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .64em;
    line-height: 1.6;
}

.nqep-desk__review-progress-empty {
    padding: 24px;
    border: 1px dashed #cbd8e1;
    border-radius: 13px;
    background: #f8fafb;
    text-align: center;
}

.nqep-desk__review-progress-empty strong {
    color: var(--nqep-ink);
    font-size: .8em;
}

.nqep-desk__review-progress-empty p {
    margin: 5px 0 0;
    color: var(--nqep-muted);
    font-size: .7em;
}

/* ---- 復習リピート分析 ---- */
.nqep-desk__panel--review-repeat {
    position: relative;
    overflow: hidden;
    border-color: #cddbec;
    background:
        radial-gradient(circle at 100% 0, rgba(86, 109, 190, .12), transparent 31%),
        linear-gradient(145deg, #fff, #f7f9fd);
}

.nqep-desk .nqep-desk__review-repeat-head h3 {
    margin: 3px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.16em;
    line-height: 1.4;
}

.nqep-desk__review-repeat-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.nqep-desk__review-repeat-head > div > p {
    margin: 0;
    color: #5b64a8;
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__review-repeat-head > span {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    color: #315d4d;
    background: #e3f4eb;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__review-repeat-head > span.is-untouched {
    color: #925034;
    background: #fff0e9;
}

.nqep-desk__review-repeat-head > span.is-deep {
    color: #6e3c6d;
    background: #f6eaf6;
}

.nqep-desk__review-repeat-head > span.is-empty {
    color: var(--nqep-muted);
    background: #edf1f5;
}

.nqep-desk__review-repeat-lead {
    margin: 8px 0 17px;
    color: var(--nqep-muted);
    font-size: .72em;
    line-height: 1.65;
}

.nqep-desk__review-repeat-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 13px;
}

.nqep-desk__review-repeat-metrics > div {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #dce4ed;
    border-radius: 12px;
    background: rgba(255, 255, 255, .8);
}

.nqep-desk__review-repeat-metrics span,
.nqep-desk__review-repeat-metrics strong {
    display: block;
}

.nqep-desk__review-repeat-metrics span {
    color: var(--nqep-muted);
    font-size: .63em;
}

.nqep-desk__review-repeat-metrics strong {
    margin-top: 3px;
    overflow: hidden;
    color: var(--nqep-ink);
    font-size: .91em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__review-repeat-layout {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(260px, 5fr);
    gap: 13px;
}

.nqep-desk__review-repeat-buckets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.nqep-desk__review-repeat-bucket {
    min-width: 0;
    padding: 14px;
    border: 1px solid #dce4ed;
    border-radius: 13px;
    background: rgba(255, 255, 255, .86);
}

.nqep-desk__review-repeat-bucket > div:first-child {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__review-repeat-bucket > div span {
    color: var(--nqep-ink);
    font-size: .7em;
    font-weight: 800;
}

.nqep-desk__review-repeat-bucket > div strong {
    color: #3d5687;
    font-size: .82em;
}

.nqep-desk__review-repeat-bar {
    height: 7px;
    margin-top: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9edf3;
}

.nqep-desk__review-repeat-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #8d9aad, #aeb8c4);
}

.nqep-desk__review-repeat-bucket.is-once .nqep-desk__review-repeat-bar > span {
    background: linear-gradient(90deg, #4f93c5, #5eb9c6);
}

.nqep-desk__review-repeat-bucket.is-repeat .nqep-desk__review-repeat-bar > span {
    background: linear-gradient(90deg, #4a78bd, #6e71c1);
}

.nqep-desk__review-repeat-bucket.is-intensive .nqep-desk__review-repeat-bar > span {
    background: linear-gradient(90deg, #7358a5, #a35f99);
}

.nqep-desk__review-repeat-bucket > p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .59em;
    line-height: 1.55;
}

.nqep-desk__review-repeat-insight {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 18px;
    border-radius: 14px;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0, rgba(90, 205, 188, .18), transparent 35%),
        linear-gradient(145deg, #192f58, #284f85);
}

.nqep-desk__review-repeat-insight > div > span,
.nqep-desk__review-repeat-insight > div > strong,
.nqep-desk__review-repeat-insight > div > p {
    display: block;
}

.nqep-desk__review-repeat-insight > div > span {
    color: rgba(255, 255, 255, .67);
    font-size: .62em;
}

.nqep-desk__review-repeat-insight > div > strong {
    margin-top: 4px;
    font-size: .9em;
    line-height: 1.45;
}

.nqep-desk__review-repeat-insight > div > p {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, .74);
    font-size: .64em;
}

.nqep-desk__review-repeat-insight dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin: auto 0 0;
    padding-top: 15px;
}

.nqep-desk__review-repeat-insight dl > div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
}

.nqep-desk__review-repeat-insight dt {
    color: rgba(255, 255, 255, .63);
    font-size: .58em;
}

.nqep-desk__review-repeat-insight dd {
    margin: 3px 0 0;
    color: #fff;
    font-size: .75em;
    font-weight: 800;
}

.nqep-desk__review-repeat-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 40px;
    margin-top: 11px;
    border: 1px solid #fff;
    border-radius: 10px;
    color: #18345e;
    background: #fff;
    font: inherit;
    font-size: .69em;
    font-weight: 800;
    cursor: pointer;
}

.nqep-desk__review-repeat-action:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(4, 22, 53, .2);
}

.nqep-desk__review-repeat-note {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .64em;
    line-height: 1.65;
}

.nqep-desk__review-repeat-empty {
    margin-top: 17px;
    padding: 23px;
    border: 1px dashed #cbd8e1;
    border-radius: 13px;
    background: rgba(255, 255, 255, .72);
    text-align: center;
}

.nqep-desk__review-repeat-empty strong {
    color: var(--nqep-ink);
    font-size: .8em;
}

.nqep-desk__review-repeat-empty p {
    margin: 5px 0 0;
    color: var(--nqep-muted);
    font-size: .7em;
}

/* ---- 集中再クイズ履歴 ---- */
.nqep-desk__panel--review-sessions {
    grid-column: 1 / -1;
    position: relative;
    overflow: hidden;
    border-color: #c9d9f0;
    background:
        radial-gradient(circle at 92% 4%, rgba(78, 121, 213, .14), transparent 34%),
        linear-gradient(145deg, #fff 0%, #f6f9ff 100%);
}

.nqep-desk .nqep-desk__review-session-head h3 {
    margin: 3px 0 0;
    color: #102d58;
    font-size: clamp(21px, 2.4vw, 29px);
    line-height: 1.35;
}

.nqep-desk__review-session-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__review-session-head > div > p {
    margin: 0;
    color: #3569b7;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.nqep-desk__review-session-head > span {
    flex: 0 0 auto;
    padding: 7px 11px;
    border: 1px solid #bfd0ec;
    border-radius: 999px;
    background: rgba(255, 255, 255, .82);
    color: #32598f;
    font-size: 12px;
    font-weight: 800;
}

.nqep-desk__review-session-lead {
    max-width: 760px;
    margin: 14px 0 0;
    color: #52627a;
    line-height: 1.8;
}

.nqep-desk__review-session-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.nqep-desk__review-session-metrics > div {
    min-width: 0;
    padding: 14px 15px;
    border: 1px solid rgba(186, 204, 232, .85);
    border-radius: 13px;
    background: rgba(255, 255, 255, .86);
}

.nqep-desk__review-session-metrics span,
.nqep-desk__review-session-metrics strong {
    display: block;
}

.nqep-desk__review-session-metrics span {
    color: #68778d;
    font-size: 12px;
    font-weight: 700;
}

.nqep-desk__review-session-metrics strong {
    margin-top: 5px;
    color: #153a72;
    font-size: 22px;
    line-height: 1.25;
}

.nqep-desk__review-session-trend {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #cbd9ee;
    border-radius: 16px;
    background:
        radial-gradient(circle at 100% 0, rgba(74, 143, 197, .11), transparent 32%),
        rgba(255, 255, 255, .9);
}

.nqep-desk__review-session-trend-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__review-session-trend-head span,
.nqep-desk__review-session-trend-head h4 {
    display: block;
}

.nqep-desk__review-session-trend-head span {
    color: #4772aa;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__review-session-trend-head h4 {
    margin: 4px 0 0;
    color: #153764;
    font-size: 18px;
    line-height: 1.4;
}

.nqep-desk__review-session-trend-head > strong {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    color: #4e6380;
    background: #edf2f8;
    font-size: 11px;
    font-weight: 800;
}

.nqep-desk__review-session-trend-head > strong.is-improving {
    color: #176d4d;
    background: #e6f6ef;
}

.nqep-desk__review-session-trend-head > strong.is-steady {
    color: #315f91;
    background: #eaf2fb;
}

.nqep-desk__review-session-trend-head > strong.is-attention {
    color: #9a4b38;
    background: #fff0eb;
}

.nqep-desk__review-session-trend-head > strong.is-baseline {
    color: #84621b;
    background: #fff6dc;
}

.nqep-desk__review-session-trend > p {
    margin: 8px 0 0;
    color: #62728a;
    font-size: 12px;
    line-height: 1.7;
}

.nqep-desk__review-session-months {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 16px;
}

.nqep-desk__review-session-months > div {
    min-width: 0;
    padding: 12px;
    border: 1px solid #dce5f2;
    border-radius: 11px;
    background: #f9fbfe;
}

.nqep-desk__review-session-months span,
.nqep-desk__review-session-months strong,
.nqep-desk__review-session-months small {
    display: block;
}

.nqep-desk__review-session-months span {
    color: #718096;
    font-size: 11px;
    font-weight: 700;
}

.nqep-desk__review-session-months strong {
    margin-top: 4px;
    color: #173f73;
    font-size: 19px;
    line-height: 1.3;
}

.nqep-desk__review-session-months small {
    margin-top: 3px;
    overflow: hidden;
    color: #718096;
    font-size: 10px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__review-session-weeks {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    align-items: end;
    gap: 8px;
    margin-top: 18px;
    padding: 14px 12px 10px;
    border: 1px solid #e1e8f3;
    border-radius: 13px;
    background:
        linear-gradient(to top, rgba(199, 213, 232, .32) 1px, transparent 1px) 0 0 / 100% 25%,
        #f8fafe;
}

.nqep-desk__review-session-week {
    min-width: 0;
    text-align: center;
}

.nqep-desk__review-session-week > strong,
.nqep-desk__review-session-week > time,
.nqep-desk__review-session-week > small {
    display: block;
}

.nqep-desk__review-session-week > strong {
    min-height: 18px;
    color: #8793a5;
    font-size: 10px;
}

.nqep-desk__review-session-week > div {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 76px;
    margin: 4px auto 7px;
}

.nqep-desk__review-session-week > div > span {
    display: block;
    width: min(28px, 64%);
    min-height: 2px;
    border-radius: 6px 6px 2px 2px;
    background: #dce5f1;
}

.nqep-desk__review-session-week.has-data > strong {
    color: #245689;
}

.nqep-desk__review-session-week.has-data > div > span {
    background: linear-gradient(180deg, #4d80c7, #55a58e);
    box-shadow: 0 4px 10px rgba(59, 107, 165, .16);
}

.nqep-desk__review-session-week > time {
    color: #4f6077;
    font-size: 10px;
    font-weight: 750;
}

.nqep-desk__review-session-week > small {
    margin-top: 2px;
    overflow: hidden;
    color: #8a96a7;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nqep-desk__review-session-trend .nqep-desk__review-session-trend-note {
    margin-top: 12px;
    color: #7a879a;
    font-size: 11px;
}

.nqep-desk__review-session-fields {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #cfe0d9;
    border-radius: 16px;
    background:
        radial-gradient(circle at 0 0, rgba(54, 154, 126, .1), transparent 34%),
        rgba(255, 255, 255, .92);
}

.nqep-desk__review-session-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.nqep-desk__review-session-field-head span,
.nqep-desk__review-session-field-head h4 {
    display: block;
}

.nqep-desk__review-session-field-head span {
    color: #2f806d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__review-session-field-head h4 {
    margin: 4px 0 0;
    color: #153764;
    font-size: 18px;
    line-height: 1.4;
}

.nqep-desk__review-session-field-head > strong {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    color: #1f6c58;
    background: #e7f6f0;
    font-size: 11px;
    font-weight: 800;
}

.nqep-desk__review-session-field-lead {
    margin: 8px 0 0;
    color: #62728a;
    font-size: 12px;
    line-height: 1.7;
}

.nqep-desk__review-session-field-insights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 15px;
}

.nqep-desk__review-session-field-insights > div {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid #d9e7e2;
    border-radius: 12px;
    background: #f8fcfa;
}

.nqep-desk__review-session-field-insights span,
.nqep-desk__review-session-field-insights strong,
.nqep-desk__review-session-field-insights small {
    display: block;
}

.nqep-desk__review-session-field-insights span {
    color: #6d7d78;
    font-size: 10px;
    font-weight: 750;
}

.nqep-desk__review-session-field-insights strong {
    margin-top: 3px;
    overflow-wrap: anywhere;
    color: #184d41;
    font-size: 15px;
}

.nqep-desk__review-session-field-insights small {
    margin-top: 2px;
    color: #2f806d;
    font-size: 11px;
    font-weight: 800;
}

.nqep-desk__review-session-field-insights > .is-attention {
    border-color: #f0ddd7;
    background: #fff9f7;
}

.nqep-desk__review-session-field-insights > .is-attention strong,
.nqep-desk__review-session-field-insights > .is-attention small {
    color: #914b3b;
}

.nqep-desk__review-session-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 15px;
}

.nqep-desk__review-session-field {
    min-width: 0;
    padding: 14px;
    border: 1px solid #d9e5e1;
    border-radius: 13px;
    background: rgba(255, 255, 255, .94);
}

.nqep-desk__review-session-field-label {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__review-session-field-label strong,
.nqep-desk__review-session-field-label span {
    display: block;
}

.nqep-desk__review-session-field-label strong {
    overflow-wrap: anywhere;
    color: #173766;
    font-size: 14px;
    line-height: 1.45;
}

.nqep-desk__review-session-field-label span {
    margin-top: 3px;
    color: #738095;
    font-size: 11px;
}

.nqep-desk__review-session-field-label em {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    color: #526a87;
    background: #eef3f8;
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
}

.nqep-desk__review-session-field.is-improving .nqep-desk__review-session-field-label em {
    color: #176d4d;
    background: #e6f6ef;
}

.nqep-desk__review-session-field.is-attention .nqep-desk__review-session-field-label em {
    color: #9a4b38;
    background: #fff0eb;
}

.nqep-desk__review-session-field.is-steady .nqep-desk__review-session-field-label em {
    color: #315f91;
    background: #eaf2fb;
}

.nqep-desk__review-session-field-score {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 13px;
}

.nqep-desk__review-session-field-score span,
.nqep-desk__review-session-field-score strong {
    display: block;
}

.nqep-desk__review-session-field-score span {
    color: #768399;
    font-size: 10px;
}

.nqep-desk__review-session-field-score strong {
    margin-top: 2px;
    color: #174d7d;
    font-size: 16px;
    line-height: 1.35;
}

.nqep-desk__review-session-field-bar {
    height: 8px;
    margin-top: 11px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7edf3;
}

.nqep-desk__review-session-field-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #326cba, #4da58c);
}

.nqep-desk__review-session-field-note {
    margin: 13px 0 0;
    color: #78869a;
    font-size: 11px;
    line-height: 1.7;
}

.nqep-desk__review-session-field-empty {
    margin-top: 15px;
    padding: 16px;
    border: 1px dashed #b9d5cc;
    border-radius: 12px;
    background: rgba(248, 252, 250, .88);
}

.nqep-desk__review-session-field-empty strong {
    color: #184d41;
    font-size: 14px;
}

.nqep-desk__review-session-field-empty p {
    margin: 6px 0 0;
    color: #68798c;
    font-size: 12px;
    line-height: 1.7;
}

.nqep-desk__review-session-list {
    display: grid;
    gap: 9px;
    margin-top: 18px;
}

.nqep-desk__review-session-item {
    display: grid;
    grid-template-columns: minmax(150px, 1.2fr) minmax(140px, 2fr) minmax(86px, .65fr) minmax(100px, .7fr);
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid #dce5f3;
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
}

.nqep-desk__review-session-label strong,
.nqep-desk__review-session-label span,
.nqep-desk__review-session-score strong,
.nqep-desk__review-session-score span {
    display: block;
}

.nqep-desk__review-session-label strong {
    color: #173766;
    font-size: 14px;
}

.nqep-desk__review-session-label span,
.nqep-desk__review-session-score span,
.nqep-desk__review-session-item time {
    margin-top: 3px;
    color: #6a778b;
    font-size: 12px;
}

.nqep-desk__review-session-bar {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7edf7;
}

.nqep-desk__review-session-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #336bc0, #51a58d);
}

.nqep-desk__review-session-score {
    text-align: right;
}

.nqep-desk__review-session-score strong {
    color: #164d82;
    font-size: 18px;
}

.nqep-desk__review-session-item time {
    margin: 0;
    text-align: right;
}

.nqep-desk__review-session-note {
    margin: 14px 0 0;
    color: #718097;
    font-size: 12px;
    line-height: 1.7;
}

.nqep-desk__review-session-empty {
    margin-top: 18px;
    padding: 20px;
    border: 1px dashed #b9cce8;
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.nqep-desk__review-session-empty strong {
    color: #173b70;
    font-size: 16px;
}

.nqep-desk__review-session-empty p {
    margin: 7px 0 0;
    color: #596982;
    line-height: 1.75;
}

/* ---- 再挑戦・正答変化 ---- */
.nqep-desk__panel--retry-change {
    position: relative;
    overflow: hidden;
    border-color: #c8ddd8;
    background:
        radial-gradient(circle at 0 0, rgba(40, 169, 142, .1), transparent 32%),
        linear-gradient(150deg, #fff, #f6fbfa);
}

.nqep-desk__retry-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.nqep-desk__retry-head > div > p {
    margin: 0;
    color: #17836f;
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk .nqep-desk__retry-head h3 {
    margin: 3px 0 0;
    padding: 0;
    border: 0;
    color: var(--nqep-ink);
    background: none;
    font-size: 1.16em;
    line-height: 1.4;
}

.nqep-desk__retry-head > span {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    color: #25694f;
    background: #ddf3e9;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__retry-head > span.is-steady {
    color: #475f7d;
    background: #e9eff5;
}

.nqep-desk__retry-head > span.is-attention {
    color: #954e3e;
    background: #fce9e4;
}

.nqep-desk__retry-head > span.is-empty {
    color: var(--nqep-muted);
    background: #edf1f5;
}

.nqep-desk__retry-lead {
    margin: 8px 0 17px;
    color: var(--nqep-muted);
    font-size: .72em;
    line-height: 1.65;
}

.nqep-desk__retry-comparison {
    display: grid;
    grid-template-columns: 1.25fr 1fr auto 1fr 1fr;
    align-items: stretch;
    gap: 9px;
    margin-bottom: 13px;
}

.nqep-desk__retry-comparison > div:not(.nqep-desk__retry-arrow) {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #d8e6e2;
    border-radius: 12px;
    background: rgba(255, 255, 255, .82);
}

.nqep-desk__retry-comparison span,
.nqep-desk__retry-comparison strong,
.nqep-desk__retry-comparison small {
    display: block;
}

.nqep-desk__retry-comparison span {
    color: var(--nqep-muted);
    font-size: .62em;
}

.nqep-desk__retry-comparison strong {
    margin-top: 3px;
    color: var(--nqep-ink);
    font-size: .91em;
}

.nqep-desk__retry-comparison strong.is-up {
    color: #168060;
}

.nqep-desk__retry-comparison strong.is-down {
    color: #b45645;
}

.nqep-desk__retry-comparison small {
    margin-top: 2px;
    color: #7b8794;
    font-size: .55em;
}

.nqep-desk__retry-arrow {
    align-self: center;
    color: #36a78f;
    font-size: 1.15em;
    font-weight: 800;
}

.nqep-desk__retry-layout {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(260px, 5fr);
    gap: 13px;
}

.nqep-desk__retry-outcomes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.nqep-desk__retry-outcome {
    min-width: 0;
    padding: 14px;
    border: 1px solid #d8e6e2;
    border-radius: 13px;
    background: rgba(255, 255, 255, .88);
}

.nqep-desk__retry-outcome > div:first-child {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.nqep-desk__retry-outcome > div span {
    color: var(--nqep-ink);
    font-size: .7em;
    font-weight: 800;
}

.nqep-desk__retry-outcome > div strong {
    color: #315d58;
    font-size: .82em;
}

.nqep-desk__retry-outcome-bar {
    height: 7px;
    margin-top: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9efed;
}

.nqep-desk__retry-outcome-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.nqep-desk__retry-outcome.is-improved .nqep-desk__retry-outcome-bar > span {
    background: linear-gradient(90deg, #24a77e, #55c49f);
}

.nqep-desk__retry-outcome.is-maintained .nqep-desk__retry-outcome-bar > span {
    background: linear-gradient(90deg, #4f8fac, #6bb7bd);
}

.nqep-desk__retry-outcome.is-remaining .nqep-desk__retry-outcome-bar > span {
    background: linear-gradient(90deg, #d47c50, #e1a05f);
}

.nqep-desk__retry-outcome.is-regressed .nqep-desk__retry-outcome-bar > span {
    background: linear-gradient(90deg, #bb5860, #d37b79);
}

.nqep-desk__retry-outcome > p {
    margin: 7px 0 0;
    color: var(--nqep-muted);
    font-size: .59em;
    line-height: 1.55;
}

.nqep-desk__retry-insights {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 17px;
    border-radius: 14px;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0, rgba(103, 218, 185, .2), transparent 36%),
        linear-gradient(145deg, #153d3a, #24675d);
}

.nqep-desk__retry-insights > div {
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
}

.nqep-desk__retry-insights > div + div {
    margin-top: 8px;
}

.nqep-desk__retry-insights span,
.nqep-desk__retry-insights strong,
.nqep-desk__retry-insights p {
    display: block;
}

.nqep-desk__retry-insights span {
    color: rgba(255, 255, 255, .65);
    font-size: .59em;
}

.nqep-desk__retry-insights strong {
    margin-top: 3px;
    font-size: .82em;
}

.nqep-desk__retry-insights p {
    margin: 3px 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: .61em;
}

.nqep-desk__retry-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 40px;
    margin-top: auto;
    padding: 0 10px;
    border: 1px solid #fff;
    border-radius: 10px;
    color: #1b554d;
    background: #fff;
    font: inherit;
    font-size: .69em;
    font-weight: 800;
    cursor: pointer;
}

.nqep-desk__retry-action:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(4, 35, 30, .2);
}

.nqep-desk__retry-note {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .64em;
    line-height: 1.65;
}

.nqep-desk__retry-empty {
    margin-top: 17px;
    padding: 23px;
    border: 1px dashed #bdd9d2;
    border-radius: 13px;
    background: rgba(255, 255, 255, .72);
    text-align: center;
}

.nqep-desk__retry-empty strong {
    color: var(--nqep-ink);
    font-size: .8em;
}

.nqep-desk__retry-empty p {
    margin: 5px 0 0;
    color: var(--nqep-muted);
    font-size: .7em;
}

/* ---- 復習カード ---- */
.nqep-desk__review-print {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    margin: 0 0 18px;
    padding: 19px;
    border: 1px solid #d9c991;
    border-radius: 14px;
    background:
        radial-gradient(circle at 100% 0, rgba(218, 166, 66, .17), transparent 44%),
        linear-gradient(145deg, #fffdf7, #fff);
}

.nqep-desk__review-print-copy p,
.nqep-desk__review-print-copy h4,
.nqep-desk__review-print-copy span,
.nqep-desk__review-print-action strong,
.nqep-desk__review-print-action span {
    display: block;
}

.nqep-desk__review-print-copy p {
    margin: 0 0 3px;
    color: #806019;
    font-size: .67em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__review-print-copy h4 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .98em;
    line-height: 1.45;
}

.nqep-desk__review-print-copy span {
    margin-top: 7px;
    color: var(--nqep-muted);
    font-size: .7em;
    line-height: 1.7;
}

.nqep-desk__review-print-action {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    justify-content: center;
    min-width: 174px;
}

.nqep-desk__review-print-action strong {
    margin-bottom: 7px;
    color: #806019;
    font-size: .68em;
}

.nqep-desk__review-print-action button {
    width: 100%;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #856113;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(135deg, #9b731d, #765414);
    box-shadow: 0 7px 16px rgba(118, 84, 20, .16);
    font-size: .75em;
    font-weight: 800;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease;
}

.nqep-desk__review-print-action button:hover:not(:disabled) {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 9px 20px rgba(118, 84, 20, .22);
}

.nqep-desk__review-print-action button:disabled {
    border-color: #cfc7b5;
    color: #81796b;
    background: #ece8df;
    box-shadow: none;
    cursor: not-allowed;
}

.nqep-desk__review-print-action span {
    max-width: 220px;
    min-height: 1.5em;
    margin-top: 6px;
    color: var(--nqep-muted);
    font-size: .61em;
    line-height: 1.5;
    text-align: right;
}

.nqep-desk__review-schedule {
    margin: 0 0 18px;
    padding: 18px;
    border: 1px solid #c9dbe7;
    border-radius: 14px;
    background:
        radial-gradient(circle at 100% 0, rgba(78, 182, 178, .16), transparent 42%),
        linear-gradient(145deg, #f8fcfd, #fff);
}

.nqep-desk__review-schedule--due {
    border-color: rgba(35, 111, 189, .36);
}

.nqep-desk__review-schedule--scheduled {
    border-color: rgba(44, 135, 93, .28);
}

.nqep-desk__review-schedule-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.nqep-desk__review-schedule-head p {
    margin: 0 0 3px;
    color: var(--nqep-blue);
    font-size: .67em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__review-schedule-head h4 {
    margin: 0;
    color: var(--nqep-ink);
    font-size: .98em;
    line-height: 1.45;
}

.nqep-desk__review-schedule-head > span {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    color: #12603e;
    background: #e4f5ed;
    font-size: .67em;
    font-weight: 800;
}

.nqep-desk__review-schedule-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 15px 0 0;
}

.nqep-desk__review-schedule-grid div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid rgba(185, 207, 220, .72);
    border-radius: 10px;
    background: rgba(255, 255, 255, .82);
}

.nqep-desk__review-schedule-grid dt {
    color: var(--nqep-muted);
    font-size: .68em;
    font-weight: 700;
}

.nqep-desk__review-schedule-grid dd {
    margin: 3px 0 0;
    color: var(--nqep-navy);
    font-size: .9em;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.nqep-desk__review-schedule-note {
    margin: 11px 0 0;
    color: var(--nqep-muted);
    font-size: .67em;
    line-height: 1.65;
}

.nqep-desk__runner-setup,
.nqep-desk__runner-result {
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid #d5e2ee;
    border-radius: 16px;
    background:
        radial-gradient(circle at 100% 0, rgba(46, 116, 181, .11), transparent 38%),
        linear-gradient(145deg, #fff, #f7fbff);
}

.nqep-desk__runner-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.nqep-desk__runner-head p,
.nqep-desk__runner-result > p:first-child {
    margin: 0 0 4px;
    color: var(--nqep-blue);
    font-size: .68em;
    font-weight: 800;
    letter-spacing: .08em;
}

.nqep-desk__runner-head h4,
.nqep-desk__runner-result h4 {
    margin: 0;
    color: var(--nqep-navy);
    font-size: clamp(1.1em, 2vw, 1.35em);
    line-height: 1.45;
}

.nqep-desk__runner-head > span {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    color: #12603e;
    background: #e4f5ed;
    font-size: .68em;
    font-weight: 800;
}

.nqep-desk__runner-lead {
    max-width: 680px;
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .84em;
    line-height: 1.75;
}

.nqep-desk__runner-cert {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-top: 18px;
    padding: 12px 14px;
    border: 1px solid rgba(185, 207, 220, .72);
    border-radius: 10px;
    background: rgba(255, 255, 255, .82);
}

.nqep-desk__runner-cert span {
    color: var(--nqep-muted);
    font-size: .7em;
    font-weight: 700;
}

.nqep-desk__runner-cert strong {
    color: var(--nqep-navy);
    font-size: .88em;
}

.nqep-desk__runner-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(130px, .55fr) minmax(210px, .8fr);
    align-items: end;
    gap: 12px;
    margin-top: 14px;
}

.nqep-desk__runner-form label {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.nqep-desk__runner-form label > span {
    color: var(--nqep-muted);
    font-size: .7em;
    font-weight: 700;
}

.nqep-desk__runner-form select {
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 8px 34px 8px 12px;
    border: 1px solid #c6d5e3;
    border-radius: 9px;
    color: var(--nqep-ink);
    background-color: #fff;
    font: inherit;
    font-size: .8em;
}

.nqep-desk__runner-form select:focus {
    border-color: var(--nqep-blue);
    outline: 3px solid rgba(46, 116, 181, .14);
}

.nqep-desk__runner-start {
    display: grid;
    justify-items: stretch;
    gap: 6px;
}

.nqep-desk__runner-start > strong {
    color: var(--nqep-blue);
    font-size: .7em;
    text-align: right;
}

.nqep-desk .nqep-desk__runner-start .nqep-desk__btn {
    min-height: 44px;
    margin: 0;
}

.nqep-desk__runner-note,
.nqep-desk__runner-result > p:not(:first-child) {
    margin: 12px 0 0;
    color: var(--nqep-muted);
    font-size: .68em;
    line-height: 1.65;
}

.nqep-desk__runner-result {
    text-align: center;
}

.nqep-desk__runner-result-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0 0;
}

.nqep-desk__runner-result-grid > div {
    display: grid;
    gap: 5px;
    padding: 15px 10px;
    border: 1px solid rgba(185, 207, 220, .72);
    border-radius: 11px;
    background: rgba(255, 255, 255, .86);
}

.nqep-desk__runner-result-grid span {
    color: var(--nqep-muted);
    font-size: .68em;
    font-weight: 700;
}

.nqep-desk__runner-result-grid strong {
    color: var(--nqep-navy);
    font-size: 1.15em;
}

.nqep-desk .nqep-desk__runner-result .nqep-desk__btn {
    margin: 18px 0 0;
}

.nqep-desk__deck {
    min-height: 150px;
}

.nqep-desk__card {
    padding: clamp(18px, 3vw, 28px);
    border: 1px solid #d9e4ee;
    border-radius: 16px;
    background: linear-gradient(145deg, #fff, #fbfdff);
}

.nqep-desk__card-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 18px;
}

.nqep-desk__card-prog {
    color: var(--nqep-blue);
    font-size: .78em;
    font-weight: 800;
}

.nqep-desk__card-badges {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.nqep-desk__badge {
    padding: 3px 9px;
    border: 1px solid var(--nqep-line);
    border-radius: 999px;
    color: var(--nqep-muted);
    background: #fff;
    font-size: .68em;
    white-space: nowrap;
}

.nqep-desk__badge--diff {
    border-color: #b8cce6;
    color: var(--nqep-navy);
    background: #f2f6fb;
}

.nqep-desk__question {
    margin: 0 0 18px;
    color: var(--nqep-ink);
    font-size: 1.02em;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.nqep-desk__question p {
    margin: 0 0 7px;
}

.nqep-desk__retry-quiz {
    margin-top: 18px;
}

.nqep-desk__retry-quiz fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.nqep-desk__retry-quiz legend {
    margin-bottom: 11px;
    color: var(--nqep-navy);
    font-size: .86em;
    font-weight: 800;
}

.nqep-desk__retry-choices {
    display: grid;
    gap: 9px;
}

.nqep-desk__retry-choice {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-height: 50px;
    padding: 10px 13px;
    border: 1px solid #cfdae6;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.nqep-desk__retry-choice:hover {
    border-color: #86a8cc;
    box-shadow: 0 5px 14px rgba(22, 53, 104, .08);
}

.nqep-desk__retry-choice:has(input:focus-visible) {
    outline: 3px solid rgba(35, 126, 183, .24);
    outline-offset: 2px;
}

.nqep-desk__retry-choice:has(input:checked) {
    border-color: var(--nqep-blue);
    background: #f2f8fd;
}

.nqep-desk__retry-choice.is-correct {
    border-color: #4caa79;
    background: #effaf4;
}

.nqep-desk__retry-choice.is-incorrect {
    border-color: #d66c6c;
    background: #fff3f3;
}

.nqep-desk__retry-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nqep-desk__retry-choice-mark {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid #b8c8d9;
    border-radius: 50%;
    color: var(--nqep-muted);
    background: #fff;
    font-size: .76em;
    font-weight: 800;
}

.nqep-desk__retry-choice:has(input:checked) .nqep-desk__retry-choice-mark {
    border-color: var(--nqep-blue);
    color: #fff;
    background: var(--nqep-blue);
}

.nqep-desk__retry-choice.is-correct .nqep-desk__retry-choice-mark {
    border-color: #19734b;
    color: #fff;
    background: #19734b;
}

.nqep-desk__retry-choice.is-incorrect .nqep-desk__retry-choice-mark {
    border-color: #b93c3c;
    color: #fff;
    background: #b93c3c;
}

.nqep-desk__retry-choice-text {
    min-width: 0;
    overflow-wrap: anywhere;
}

.nqep-desk__retry-note {
    margin: 10px 0 13px;
    color: var(--nqep-muted);
    font-size: .74em;
}

.nqep-desk__grade-status {
    margin-bottom: 14px;
    padding: 11px 14px;
    border-radius: 9px;
    font-weight: 800;
}

.nqep-desk__grade-status.is-correct {
    color: #12603e;
    background: #e8f7ef;
}

.nqep-desk__grade-status.is-correct::before {
    content: "\2713 ";
}

.nqep-desk__grade-status.is-incorrect {
    color: #923131;
    background: #fff0f0;
}

.nqep-desk__grade-status.is-incorrect::before {
    content: "\21BB ";
}

.nqep-desk__answer {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px dashed #cdd9e5;
}

.nqep-desk__answers {
    margin: 0 0 12px;
}

.nqep-desk__row {
    display: flex;
    gap: 12px;
    padding: 6px 0;
    overflow-wrap: anywhere;
}

.nqep-desk__row dt {
    flex: 0 0 92px;
    color: var(--nqep-muted);
    font-size: .8em;
    font-weight: 700;
}

.nqep-desk__row dd {
    margin: 0;
}

.nqep-desk__correct {
    font-weight: 700;
}

.nqep-desk__correct::before {
    color: #19734b;
    content: "\2713 ";
}

.nqep-desk__keypoint {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-left: 4px solid var(--nqep-cyan);
    border-radius: 0 9px 9px 0;
    background: var(--nqep-mint);
}

.nqep-desk__keypoint-label {
    display: block;
    margin-bottom: 3px;
    color: #12603e;
    font-size: .74em;
    font-weight: 800;
}

/* ---- ボタン ---- */
.nqep-desk__btn {
    min-height: 44px;
    padding: 9px 18px;
    border: 1px solid var(--nqep-navy);
    border-radius: 9px;
    background: #fff;
    color: var(--nqep-navy);
    font: inherit;
    font-size: .88em;
    font-weight: 700;
    cursor: pointer;
}

.nqep-desk__btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(22, 53, 104, .12);
}

.nqep-desk__btn--reveal {
    margin-top: 2px;
    background: var(--nqep-navy);
    color: #fff;
}

.nqep-desk__btn--submit,
.nqep-desk__btn--next {
    border-color: var(--nqep-navy);
    background: var(--nqep-navy);
    color: #fff;
}

.nqep-desk__btn:disabled {
    opacity: .58;
    cursor: wait;
    transform: none;
    box-shadow: none;
}

.nqep-desk__card-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.nqep-desk__btn--learned {
    border-color: #19734b;
    background: #19734b;
    color: #fff;
}

.nqep-desk__btn--learned::before {
    content: "\2713 ";
}

.nqep-desk__btn--again::before {
    content: "\21BB ";
}

.nqep-desk__empty {
    margin: 0;
    padding: 28px;
    border: 1px dashed #cbd7e3;
    border-radius: 13px;
    color: var(--nqep-muted);
    background: #fbfcfd;
    text-align: center;
}

/* ---- 分野別の弱点 ---- */
.nqep-desk__weak-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nqep-desk__weak {
    margin: 0 0 14px;
}

.nqep-desk__weak:last-child {
    margin-bottom: 0;
}

.nqep-desk__weak-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
    color: var(--nqep-ink);
    font-size: .82em;
}

.nqep-desk__weak-count {
    color: var(--nqep-muted);
    font-size: .9em;
    white-space: nowrap;
}

.nqep-desk__weak-bar {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #f1f3f6;
}

.nqep-desk__weak-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #e07150, #e9ad64);
}

/* ---- 受験履歴 ---- */
.nqep-desk__hist-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nqep-desk__hist {
    display: grid;
    grid-template-columns: minmax(190px, 1.5fr) minmax(125px, .8fr) minmax(130px, .8fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px 0;
    border-bottom: 1px solid var(--nqep-soft-line);
}

.nqep-desk__hist:last-child {
    border-bottom: 0;
}

.nqep-desk__hist-title {
    color: var(--nqep-ink);
    font-weight: 700;
}

.nqep-desk__hist-score {
    color: var(--nqep-blue);
    font-weight: 700;
}

.nqep-desk__hist-date {
    color: var(--nqep-muted);
    font-size: .8em;
}

.nqep-desk__sheet-link {
    justify-self: end;
    padding: 6px 10px;
    border: 1px solid #b8cce6;
    border-radius: 8px;
    color: var(--nqep-navy);
    background: #f5f8fc;
    font-size: .78em;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 860px) {
    .nqep-desk--guest,
    .nqep-desk--upgrade {
        grid-template-columns: 1fr;
    }

    .nqep-desk__offer-features {
        grid-template-columns: 1fr;
    }

    .nqep-desk__offer-feature {
        min-height: 0;
    }

    .nqep-desk__exam-plan {
        grid-template-columns: 1fr;
    }

    .nqep-desk__panel--analytics,
    .nqep-desk__panel--activity,
    .nqep-desk__panel--week-compare,
    .nqep-desk__panel--weekly-trend,
    .nqep-desk__panel--weekly-accuracy,
    .nqep-desk__panel--weekday-rhythm,
    .nqep-desk__panel--time-band,
    .nqep-desk__panel--study-interval,
    .nqep-desk__panel--study-session,
    .nqep-desk__panel--goal,
    .nqep-desk__panel--calendar,
    .nqep-desk__panel--next,
    .nqep-desk__panel--study-plan,
    .nqep-desk__panel--roadmap,
    .nqep-desk__panel--readiness,
    .nqep-desk__panel--difficulty,
    .nqep-desk__panel--attempt-performance,
    .nqep-desk__panel--fields,
    .nqep-desk__panel--field-priority,
    .nqep-desk__panel--review-progress,
    .nqep-desk__panel--review-repeat,
    .nqep-desk__panel--review-sessions,
    .nqep-desk__panel--retry-change,
    .nqep-desk__deck-wrap,
    .nqep-desk__panel--weakness {
        grid-column: 1 / -1;
    }

    .nqep-desk__roadmap-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__readiness-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__readiness-next {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .nqep-desk__readiness-next p {
        grid-column: 1 / -1;
    }

    .nqep-desk__difficulty-head {
        grid-template-columns: 1fr;
    }

    .nqep-desk__attempt-head {
        grid-template-columns: 1fr;
    }

    .nqep-desk__attempt-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__study-plan-tasks {
        grid-template-columns: 1fr;
    }

    .nqep-desk__study-plan-task {
        min-height: 0;
    }

    .nqep-desk__study-plan-task-foot {
        flex-wrap: wrap;
    }

    .nqep-desk__cert-overview-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-item {
        grid-template-columns: 48px minmax(130px, .75fr) minmax(180px, 1.25fr) auto;
        gap: 10px;
    }
}

@media (max-width: 640px) {
    .nqep-desk__runner-form {
        grid-template-columns: 1fr;
    }

    .nqep-desk__runner-start > strong {
        text-align: left;
    }

    .nqep-desk__runner-result-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk .nqep-desk__runner-result .nqep-desk__btn {
        width: 100%;
    }

    .nqep-desk__review-print {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-print-action {
        align-items: stretch;
        min-width: 0;
    }

    .nqep-desk__review-print-action span {
        max-width: none;
        text-align: left;
    }

    .nqep-desk__exam-countdown {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 20px;
    }

    .nqep-desk .nqep-desk__exam-countdown h3 {
        display: block;
    }

    .nqep-desk__exam-countdown h3 span {
        display: block;
        margin-top: 5px;
    }

    .nqep-desk__exam-countdown button {
        width: 100%;
    }

    .nqep-desk__exam-plan {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .nqep-desk__exam-plan dl {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .nqep-desk .nqep-desk__exam-plan-action {
        width: 100%;
    }

    .nqep-desk__panel--exam-schedule {
        padding: 22px 20px;
    }

    .nqep-desk__exam-editor-head,
    .nqep-desk__exam-form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .nqep-desk__exam-editor-head > p {
        text-align: left;
    }

    .nqep-desk__exam-form-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .nqep-desk {
        font-size: 15px;
    }

    .nqep-desk__hero {
        align-items: flex-start;
        padding: 24px 20px;
    }

    .nqep-desk__hero-note {
        flex-basis: 104px;
        padding: 13px 9px;
    }

    .nqep-desk__summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nqep-desk__cert-nav {
        display: block;
        padding: 13px;
    }

    .nqep-desk__cert-label {
        display: block;
        margin-bottom: 8px;
    }

    .nqep-desk__panel--cert-overview {
        padding: 22px 18px;
    }

    .nqep-desk__cert-overview-head {
        display: block;
    }

    .nqep-desk__cert-overview-head > p {
        max-width: none;
        margin-top: 8px;
        text-align: left;
    }

    .nqep-desk__priority {
        padding: 16px;
    }

    .nqep-desk__priority-head {
        display: block;
    }

    .nqep-desk__priority-head > p {
        max-width: none;
        margin-top: 7px;
        text-align: left;
    }

    .nqep-desk__priority-item {
        grid-template-columns: 42px 1fr;
        gap: 8px 12px;
    }

    .nqep-desk__priority-rank {
        grid-row: 1 / 3;
    }

    .nqep-desk__priority-item p,
    .nqep-desk__priority-action {
        grid-column: 2;
    }

    .nqep-desk__priority-action a,
    .nqep-desk__priority-action button {
        width: 100%;
    }

    .nqep-desk__cert-overview-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .nqep-desk__cert-overview-metrics div:first-child {
        grid-column: 1 / -1;
    }

    .nqep-desk__cert-overview-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .nqep-desk__panel--week-compare {
        padding: 22px 18px;
    }

    .nqep-desk__panel--weekly-trend {
        padding: 22px 18px;
    }

    .nqep-desk__panel--weekly-accuracy {
        padding: 22px 18px;
    }

    .nqep-desk__panel--weekday-rhythm {
        padding: 22px 18px;
    }

    .nqep-desk__panel--time-band {
        padding: 22px 18px;
    }

    .nqep-desk__panel--study-interval {
        padding: 22px 18px;
    }

    .nqep-desk__panel--study-session {
        padding: 22px 18px;
    }

    .nqep-desk__week-compare-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .nqep-desk__week-compare-change {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-width: 0;
        padding: 0 5px;
        text-align: left;
    }

    .nqep-desk__week-compare-change strong {
        margin: 0;
    }

    .nqep-desk__week-compare-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nqep-desk__weekly-trend-insights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__weekly-trend-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .nqep-desk__weekly-trend-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nqep-desk__weekly-accuracy-insights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__weekly-accuracy-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .nqep-desk__weekly-accuracy-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nqep-desk__weekday-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .nqep-desk__weekday-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nqep-desk__time-band-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__time-band-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nqep-desk__study-interval-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__study-interval-layout {
        grid-template-columns: 1fr;
    }

    .nqep-desk__study-session-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__study-session-layout {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .nqep-desk__priority-map {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-focus {
        grid-template-columns: auto 1fr;
    }

    .nqep-desk__priority-focus > p {
        grid-column: 1 / -1;
        text-align: left;
    }

    .nqep-desk__review-progress-layout {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-repeat-layout {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-session-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__review-session-months {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__review-session-weeks {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .nqep-desk__review-session-field-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-session-item {
        grid-template-columns: minmax(140px, 1fr) minmax(120px, 1.5fr) minmax(80px, .6fr);
    }

    .nqep-desk__review-session-item time {
        grid-column: 1 / -1;
        text-align: left;
    }

    .nqep-desk__retry-comparison {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__retry-arrow {
        display: none;
    }

    .nqep-desk__retry-layout {
        grid-template-columns: 1fr;
    }

    .nqep-desk__stat {
        min-height: 100px;
        padding: 18px 14px 14px;
    }

    .nqep-desk__panel {
        padding: 20px 16px;
    }

    .nqep-desk__review-schedule-grid {
        grid-template-columns: 1fr 1fr;
    }

    .nqep-desk__review-schedule-grid div:last-child {
        grid-column: 1 / -1;
    }

    .nqep-desk__panel--study-plan {
        padding: 22px 18px;
    }

    .nqep-desk__study-plan-head {
        display: block;
    }

    .nqep-desk__study-plan-head > strong {
        display: inline-block;
        margin-top: 13px;
    }

    .nqep-desk__hist {
        grid-template-columns: 1fr auto;
    }

    .nqep-desk__hist-title,
    .nqep-desk__hist-date {
        grid-column: 1;
    }

    .nqep-desk__hist-score,
    .nqep-desk__sheet-link {
        grid-column: 2;
        grid-row: auto;
    }

    .nqep-desk__row dt {
        flex-basis: 78px;
    }

    .nqep-desk__card-actions .nqep-desk__btn {
        flex: 1;
    }

}

@media (max-width: 430px) {
    .nqep-desk__hero {
        display: block;
    }

    .nqep-desk__hero-note {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        margin-top: 18px;
        text-align: left;
    }

    .nqep-desk__hero-note::before {
        flex: 0 0 30px;
        width: 30px;
        height: 30px;
        margin: 0;
        font-size: 17px;
        line-height: 30px;
        text-align: center;
    }

    .nqep-desk__metrics {
        grid-template-columns: 1fr;
    }

    .nqep-desk__pace-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__week-compare-head {
        display: block;
    }

    .nqep-desk__week-compare-status {
        margin-top: 12px;
    }

    .nqep-desk__week-compare-card {
        padding: 17px;
    }

    .nqep-desk__weekday-head {
        display: block;
    }

    .nqep-desk__weekday-pattern {
        margin-top: 12px;
    }

    .nqep-desk__weekday-insights {
        grid-template-columns: 1fr;
    }

    .nqep-desk__weekly-trend-head {
        display: block;
    }

    .nqep-desk__weekly-trend-status {
        margin-top: 12px;
    }

    .nqep-desk__weekly-trend-insights {
        grid-template-columns: 1fr;
    }

    .nqep-desk__weekly-trend-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .nqep-desk__weekly-accuracy-head {
        display: block;
    }

    .nqep-desk__weekly-accuracy-status {
        margin-top: 12px;
    }

    .nqep-desk__weekly-accuracy-insights {
        grid-template-columns: 1fr;
    }

    .nqep-desk__weekly-accuracy-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .nqep-desk__weekday-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__time-band-title {
        display: block;
    }

    .nqep-desk__time-band-status {
        margin-top: 12px;
    }

    .nqep-desk__time-band-insights,
    .nqep-desk__time-band-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__study-interval-head {
        display: block;
    }

    .nqep-desk__study-interval-status {
        display: inline-block;
        margin-top: 12px;
    }

    .nqep-desk__study-interval-metrics {
        grid-template-columns: 1fr;
    }

    .nqep-desk__study-session-head {
        display: block;
    }

    .nqep-desk__study-session-status {
        display: inline-block;
        margin-top: 12px;
    }

    .nqep-desk__study-session-metrics,
    .nqep-desk__study-session-buckets {
        grid-template-columns: 1fr;
    }

    .nqep-desk__trend-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__trend-head {
        display: block;
    }

    .nqep-desk__trend-count {
        display: inline-flex;
        margin-top: 11px;
    }

    .nqep-desk__trend-card {
        padding: 15px;
    }

    .nqep-desk__priority-map {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-lane > p {
        min-height: 0;
    }

    .nqep-desk__priority-lane > div {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-focus,
    .nqep-desk__priority-focus.is-balanced {
        grid-template-columns: 1fr;
    }

    .nqep-desk__priority-focus > span {
        justify-self: start;
    }

    .nqep-desk__review-progress-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__review-repeat-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__review-repeat-metrics {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-repeat-buckets {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-session-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__review-session-metrics {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-session-trend {
        padding: 16px 13px;
    }

    .nqep-desk__review-session-trend-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__review-session-months {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nqep-desk__review-session-fields {
        padding: 16px 13px;
    }

    .nqep-desk__review-session-field-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__review-session-field-insights {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-session-weeks {
        gap: 6px;
        padding-inline: 8px;
    }

    .nqep-desk__review-session-item {
        grid-template-columns: 1fr auto;
    }

    .nqep-desk__review-session-bar {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .nqep-desk__review-session-score {
        text-align: right;
    }

    .nqep-desk__review-session-item time {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .nqep-desk__retry-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .nqep-desk__retry-comparison,
    .nqep-desk__retry-outcomes {
        grid-template-columns: 1fr;
    }

    .nqep-desk__review-fields > div {
        grid-template-columns: 1fr;
    }

    .nqep-desk__achievement-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__roadmap-current {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .nqep-desk__roadmap-current span {
        width: 100%;
        margin-left: 0;
    }

    .nqep-desk__roadmap-steps {
        grid-template-columns: 1fr;
    }

    .nqep-desk__roadmap-step {
        min-height: 0;
    }

    .nqep-desk__readiness-head {
        grid-template-columns: minmax(0, 1fr) 94px;
        gap: 14px;
    }

    .nqep-desk__readiness-score {
        width: 90px;
        height: 90px;
    }

    .nqep-desk__readiness-grid,
    .nqep-desk__readiness-next {
        grid-template-columns: 1fr;
    }

    .nqep-desk__difficulty-grid {
        grid-template-columns: 1fr;
    }

    .nqep-desk__difficulty-focus {
        grid-template-columns: 1fr;
    }

    .nqep-desk__difficulty-focus strong {
        justify-self: start;
    }

    .nqep-desk__attempt-focus {
        grid-template-columns: 1fr;
    }

    .nqep-desk__attempt-focus strong {
        justify-self: start;
    }

    .nqep-desk__attempt-metrics {
        grid-template-columns: 1fr;
    }

    .nqep-desk__attempt-mode-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .nqep-desk__attempt-mode-head span {
        text-align: left;
    }

    .nqep-desk__attempt-modes {
        grid-template-columns: 1fr;
    }

    .nqep-desk__attempt-history-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .nqep-desk__attempt-history-head span,
    .nqep-desk__attempt-note {
        text-align: left;
    }

    .nqep-desk__readiness-next > span,
    .nqep-desk__readiness-next em {
        justify-self: start;
    }

    .nqep-desk__readiness-item-head {
        min-height: 0;
        margin-bottom: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nqep-desk a,
    .nqep-desk button {
        transition: none;
    }
}
