/* 교육생 대시보드: 실제 진도와 무관한 표시를 제외하고 카드 폭을 통일합니다. */
.dashboard{display:block}
.dashboard-main{max-width:1500px;margin:auto;padding:38px 4vw 70px}
.welcome-emblem strong{font-size:23px}.welcome-emblem span{font-size:15px}
.live-notice div>strong{font-size:21px;line-height:1.45}
.live-notice small{font-size:15px;line-height:1.5}
.step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.step-grid article{min-width:0}
.step-icon{font-size:19px;line-height:1.2}
.step-grid h2{font-size:24px}
.step-grid p{font-size:16px}
.step-grid .tutor-card{grid-column:1/-1;min-height:175px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:24px;padding:28px}
.tutor-copy .eyebrow{font-size:11px}
.tutor-copy h2{font-size:24px;margin:8px 0 10px}
.tutor-copy p{margin:0}
.tutor-card .card-button{min-width:150px;flex:0 0 auto}
.summary-panel{display:block}
.summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.analysis-toggle{border:1px solid #bad6cf;background:#edf6f3;color:var(--teal);border-radius:999px;padding:10px 14px;font-weight:900;white-space:nowrap;cursor:pointer}
.analysis-toggle:hover{background:var(--teal);color:#fff}
.learning-analysis{margin-top:24px;border-top:1px solid var(--line);padding-top:22px}
.analysis-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.analysis-overview div{background:#f3f7f6;border-radius:12px;padding:16px}
.analysis-overview span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:6px}
.analysis-overview strong{font-size:20px;line-height:1.35}
.analysis-overview small{display:block;color:var(--muted);font-size:12px;margin-top:6px}
.analysis-table{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.analysis-row{display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(170px,.9fr) 90px minmax(180px,1fr);gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line);background:#fff}
.analysis-row:first-child{border-top:0}
.analysis-header{background:#f5f8f8;color:#60707a;font-size:12px;font-weight:900}
.analysis-category{display:flex;flex-direction:column;gap:4px}
.analysis-category small{color:var(--muted);font-size:12px}
.analysis-bar-wrap{position:relative;min-height:34px;background:#edf3f2;border-radius:999px;overflow:hidden;display:flex;align-items:center;padding:0 12px}
.analysis-bar-wrap i{position:absolute;inset:0 auto 0 0;background:#9fd3c5;border-radius:999px}
.analysis-bar-wrap b{position:relative;z-index:1;color:#07304f;font-size:13px}
.analysis-empty{margin:0;color:var(--muted)}
.personal-training-panel{margin-top:18px}
.training-list{margin-top:18px}
.weak-map-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.weak-map-mini div{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}
.weak-map-mini strong,.weak-map-mini span,.weak-map-mini b,.weak-map-mini small{position:relative;z-index:1;display:block}
.weak-map-mini strong{font-size:15px;margin-bottom:4px}
.weak-map-mini span{color:var(--muted);font-size:13px;line-height:1.4;min-height:36px}
.weak-map-mini b{font-size:22px;margin-top:8px;color:var(--teal)}
.weak-map-mini small{color:#667985;font-size:12px}
.weak-map-mini i{position:absolute;left:0;bottom:0;height:6px;background:#9fd3c5;border-radius:0 999px 999px 0}
.training-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.training-cards article{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;display:grid;gap:8px}
.training-cards strong{font-size:18px}
.training-cards span,.training-cards small{color:var(--muted);line-height:1.45}
.training-cards button,.training-runner-head button{border:0;border-radius:10px;background:var(--navy);color:#fff;font-weight:900;padding:10px 14px;cursor:pointer}
.training-runner{margin-top:18px;border-top:1px solid var(--line);padding-top:20px}
.training-runner-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.training-runner-head h3{font-size:24px;margin:6px 0 0}
.training-warning{background:#fff7df;border:1px solid #f0d27c;color:#7a5600;border-radius:12px;padding:12px 14px}
.training-result-card{background:#eef7f3;border:1px solid #abd7c9;border-radius:14px;padding:16px;margin-bottom:16px;display:grid;gap:6px}
.training-result-card strong{font-size:22px;color:#0b2f4c}
.training-result-card p{margin:0;font-size:17px;font-weight:900;color:#174234}
.training-result-card span,.training-result-card small{color:var(--muted);line-height:1.45}
.training-question-list{display:grid;gap:14px}
.training-question{border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px}
.training-question h3{font-size:20px;line-height:1.45;margin:12px 0}
.training-options{display:grid;gap:9px}
.training-options button{text-align:left;border:1px solid #cbd9e3;background:#fff;border-radius:10px;padding:13px 14px;font-size:17px;line-height:1.45;cursor:pointer}
.training-options button.picked{background:#e1f2ed;border-color:#267967;box-shadow:0 0 0 2px rgba(38,121,103,.14);font-weight:900}
.training-options button.answer{background:#e5f5ee;border-color:#32a56f;color:#0f6545;font-weight:900}
.training-options button.selected{background:#fff0f0;border-color:#df8c8c;color:#8d2727;font-weight:900}
.training-submit{display:flex;justify-content:flex-end;align-items:center;margin-top:16px}
@media(max-width:900px){.step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.summary-head{flex-direction:column}.analysis-toggle{width:100%}.analysis-overview{grid-template-columns:1fr}.analysis-table{border:0}.analysis-header{display:none}.analysis-row{grid-template-columns:1fr;border:1px solid var(--line);border-radius:12px;margin-top:10px}.analysis-row span:nth-child(3)::before{content:"복습 ";color:var(--muted);font-size:12px}.analysis-row span:nth-child(4)::before{content:"주요 소제목: ";color:var(--muted);font-size:12px}.weak-map-mini,.training-cards{grid-template-columns:1fr}.training-runner-head{flex-direction:column}.training-runner-head button{width:100%}.training-submit{justify-content:stretch}.training-submit .primary-button{width:100%}}
@media(max-width:600px){.dashboard-main{padding:18px 15px 90px}.welcome-emblem{display:none}.step-grid{grid-template-columns:1fr}.step-icon{font-size:18px}.step-grid h2{font-size:23px}.step-grid p{font-size:15px}.step-grid .tutor-card{display:flex;flex-direction:column;align-items:stretch;min-height:0}.tutor-card .card-button{width:100%}.live-notice div>strong{font-size:19px}.training-question h3{font-size:18px}.training-options button{font-size:16px}}

/* Voucher entry: label above the field, clear separation from the action. */
#access-code-panel>summary{cursor:pointer}
#access-code-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;max-width:620px;margin-top:22px}
#access-code-form label{display:flex;flex:1 1 240px;flex-direction:column;gap:9px;min-width:0;max-width:420px;font-size:15px;font-weight:600;line-height:1.5}
#access-code-input{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:11px 14px;border:1px solid #b9cdd5;border-radius:10px;background:#fff;color:#14202a;font:inherit;font-weight:400}
#access-code-input::placeholder{color:#687680}
#access-code-input:focus-visible,#access-code-form .card-button:focus-visible{outline:3px solid #c6a563;outline-offset:3px}
#access-code-form .card-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:48px;margin:0;padding:11px 20px;border:1px solid #d9eee7;border-radius:10px;background:#eaf4f1;color:#092a49;font-size:15px;font-weight:700;line-height:1.5;white-space:nowrap;cursor:pointer}
#access-code-form .card-button:hover{background:#d9eee7}
#access-code-status:empty{display:none}
@media(max-width:600px){#access-code-form{align-items:stretch;flex-direction:column;gap:14px;margin-top:18px}#access-code-form label{flex:0 1 auto;max-width:none}#access-code-form .card-button{width:100%}}

/* Mobile greeting: keep the sentence readable and truncate only the visual nickname. */
@media(max-width:700px){
 .welcome{padding:22px 12px}
 .welcome>div:first-child{min-width:0;width:100%}
 .welcome .welcome-greeting{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .18em;font-size:.875rem;line-height:1.55;letter-spacing:-.025em}
 .welcome-greeting .welcome-break{display:none}
 .welcome-greeting .welcome-person{display:inline-flex;flex:1 1 0;align-items:baseline;min-width:2.6em;max-width:10em}
 .welcome-person #welcome-name{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .welcome-person>span{flex:0 0 auto}
 .welcome-greeting .welcome-message{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}
}
