/* Student pages reuse admin-console navigation, pm controls and the shared color policy. */
.mock-form .mock-booking-candidate{display:flex;margin:8px 0;gap:12px}.mock-form .mock-booking-candidate input{flex:0 0 18px;width:18px;padding:0}.mock-booking-candidate span{min-width:0;overflow-wrap:anywhere}
.mock-console-tabs{max-width:100%;box-sizing:border-box}.mock-console-tabs+ .sc-folder-body{min-width:0}[data-mock-pane][hidden]{display:none}.mock-result-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:18px 0}.mock-result-filters label{display:grid;gap:6px;min-width:0}.mock-result-filters input,.mock-result-filters select{padding:9px;border:1px solid #cad5e5;border-radius:8px;font:inherit;max-width:100%;box-sizing:border-box}.mock-attendance-form{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0}.mock-attendance-form label{display:grid;gap:6px}.mock-attendance-form select{padding:10px;font:inherit;border:1px solid #cad5e5;border-radius:8px}.mock-attendance-form [role=alert],.mock-score-form [role=alert]{color:#b42318}.mock-band-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(85px,1fr));gap:12px;margin:16px 0}.mock-band-grid>div{display:grid;gap:6px;padding:12px;background:#f2f5fb;border-radius:8px}.mock-band-grid strong{font-size:23px;color:#173f9f}.mock-score-form{max-width:100%}.mock-score-form fieldset{display:grid;gap:10px;border:1px solid #dce5f3;border-radius:10px;padding:14px;min-width:0}.mock-analysis{white-space:pre-wrap;overflow-wrap:anywhere}.mock-card summary{cursor:pointer;font-weight:600}.mock-card{margin-bottom:12px}.mock-closure-note{padding:10px;border-radius:8px;background:#fff1e2;color:#864b00}
.lp-intro{padding:22px;border-radius:12px;background:linear-gradient(120deg,#edf3ff,#fff9e6);margin-bottom:20px}.lp-intro h3{font-size:24px;margin:8px 0}.lp-intro p{margin:0}.lp-filter{display:block;max-width:360px;margin-bottom:24px}.lp-section{border:1px solid #e0e7f4;border-radius:14px;padding:22px;margin:20px 0;background:#fff;min-width:0}.lp-section-head{display:flex;justify-content:space-between;align-items:start;gap:18px;flex-wrap:wrap}.lp-section-head p{font-size:13px;color:#526581;margin:0 0 18px}.lp-section-head label{min-width:140px}.lp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 24px}.lp-stats>div{background:#f5f7fc;border-radius:10px;padding:16px}.lp-stats span{display:block;font-size:12px;color:#526581}.lp-stats strong{display:block;font-size:22px;margin-top:8px;color:#073593;overflow-wrap:anywhere}.lp-chart-scroll,.lp-table-scroll{overflow-x:auto;max-width:100%}.lp-chart{display:block;width:100%;height:auto}.lp-chart text{font-size:12px;fill:#3f5474;font-family:inherit}.lp-empty{text-align:center;border:1px dashed #dce5f3;border-radius:12px;padding:40px 16px;color:#526581}.lp-empty p{font-size:13px}.lp-details{margin-top:18px}.lp-details summary,.lp-attendance>summary{cursor:pointer;font-weight:700;padding:12px 0}.lp-details table{border-collapse:collapse;width:100%;font-size:13px}.lp-details th,.lp-details td{text-align:left;padding:12px;border-bottom:1px solid #e4eaf3}.lp-details caption{text-align:left;padding:12px}.lp-attendance{margin-top:26px;border-top:1px solid #e4eaf3;padding-top:12px}[data-score-form]{display:grid;gap:10px;margin-top:16px}[data-score-form] label{display:grid;gap:6px}[data-score-form] input,[data-score-form] select{min-width:0;width:100%;box-sizing:border-box}[data-score-list] p{overflow-wrap:anywhere}
@media(max-width:620px){.lp-section{padding:16px}.lp-stats{grid-template-columns:1fr;gap:8px}.lp-stats>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px}.lp-stats strong{font-size:19px;margin:0}.lp-section-head label{width:100%}.lp-intro{padding:18px}}
.lp-chart{min-width:600px}.lp-chart-scroll{border-radius:8px}.lp-chart-scroll:focus-visible{outline:3px solid #ffbd00;outline-offset:3px}@media(max-width:620px){.lp-chart-scroll:after{content:'เลื่อนซ้าย–ขวาเพื่อดูกราฟทั้งหมด';display:block;font-size:12px;color:#526581;margin-top:8px}}
.mock-form{display:grid;gap:14px;max-width:600px;margin:18px 0}.mock-form label{display:grid;gap:6px}.mock-form input,.mock-form select,.mock-form textarea{width:100%;min-width:0;box-sizing:border-box;padding:10px;border:1px solid #cad5e5;border-radius:8px;font:inherit}.mock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin:16px 0}.mock-card{padding:18px;border:1px solid #dce5f3;border-radius:12px;overflow-wrap:anywhere}.mock-card p{margin:8px 0}
.mock-booking-calendar{margin:24px 0;padding:18px;border:1px solid #dce5f3;border-radius:14px;min-width:0}.mock-booking-calendar .sw-calendar-tools{flex-wrap:wrap}.mock-booking-calendar .sw-calendar-tools label{display:flex;align-items:center;gap:8px;font-size:13px}.mock-calendar .sw-calendar-day{padding:0;min-width:0}.mock-calendar-date{display:block;width:100%;min-height:110px;height:100%;border:2px solid transparent;border-radius:6px;background:#fff;color:#17345f;padding:6px;text-align:left;font:inherit;cursor:pointer}.mock-calendar-date[aria-pressed=true]{border-color:#1748b4;background:#f0f5ff}.mock-calendar-date:focus-visible{outline:3px solid #ffbd00;outline-offset:-3px}.mock-calendar-slot{display:grid;gap:3px;background:#edf3ff;border-left:3px solid #1748b4;padding:6px 5px;margin-top:6px;border-radius:4px;overflow-wrap:anywhere;font-size:12px}.mock-calendar-slot.is-full{background:#fff3df;border-color:#b77300}.mock-calendar-slot strong{font-size:11px}.mock-calendar-slot small{font-size:11px}.mock-roster{list-style:none;padding:0;margin:12px 0}.mock-roster li{display:flex;flex-wrap:wrap;gap:6px 14px;border-top:1px solid #e4eaf3;padding:12px 0;overflow-wrap:anywhere}.mock-roster li span{font-size:13px}.mock-booking-calendar h4{margin:0}@media(max-width:620px){.mock-booking-calendar{padding:10px}.mock-calendar-date{padding:3px;min-height:85px}.mock-calendar-slot{font-size:10px;padding:4px 2px;border-left-width:2px}.mock-calendar-slot strong{font-size:9px}.mock-calendar-slot small{display:none}.mock-calendar .sw-calendar-day{min-height:85px}}
.auth-page #app:has(.student-workspace){max-width:1380px}
.student-workspace .sw-content{min-width:0}
.student-workspace .sw-mobile-nav{display:none}
.student-workspace h2{margin:0}
.student-workspace h3{font-size:18px;margin:0 0 12px}
.student-workspace .sw-welcome{padding:24px;border-radius:var(--pm-radius-card);background:var(--pm-color-primary-soft);margin-bottom:24px}
.student-workspace .sw-welcome h3{margin:8px 0;font-size:24px}
.student-workspace .sw-welcome p{margin-bottom:0;color:var(--pm-color-text)}
.student-workspace .sw-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:28px}
.student-workspace .sw-stats>div{padding:20px;border:1px solid var(--pm-color-border);border-radius:var(--pm-radius-card)}
.student-workspace .sw-stats strong{display:block;font-size:30px;color:var(--pm-color-primary)}
.student-workspace .sw-stats span{font-size:14px;color:var(--pm-color-text)}
.student-workspace .sw-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),280px));justify-content:start;gap:16px}
.student-workspace .sw-course{display:flex;flex-direction:column;min-width:0;border:1px solid var(--pm-color-border);border-radius:12px;overflow:hidden;background:#fff}
.student-workspace .sw-course-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;min-height:96px;box-sizing:border-box}
.student-workspace .sw-course-heading>div{min-width:0}
.student-workspace .sw-course-heading h3{font-size:15px;line-height:1.45;margin:0 0 6px;color:inherit;overflow-wrap:anywhere}
.student-workspace .sw-course-heading small{display:block;font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.student-workspace .sw-course-heading img{flex:0 0 48px;width:48px;height:48px;padding:3px;background:#fff;border-radius:50%;object-fit:contain;box-sizing:border-box}
.student-workspace .sw-course-body{flex:1;padding:14px 16px;min-height:92px;box-sizing:border-box}
.student-workspace .sw-course-body p{font-size:12px;line-height:1.6;margin:10px 0 0}
.student-workspace .sw-course-footer{border-top:1px solid var(--pm-color-border);padding:8px 12px;display:flex;justify-content:flex-end;align-items:center;min-height:60px;box-sizing:border-box}
.student-workspace .sw-course-footer .pm-button{font-size:12px;padding:6px 10px;background:transparent}
.student-workspace .sw-course-footer .pm-button:hover{background:var(--pm-color-primary-soft)}
.student-workspace .sw-lesson{padding:0;overflow:hidden;border:1px solid var(--pm-color-border);border-radius:var(--pm-radius-card);margin:16px 0;background:#fff;overflow-wrap:anywhere}
.student-workspace .sw-lesson-heading{padding:12px 18px}
.student-workspace .sw-lesson-heading h3{margin:0;color:inherit;font-size:16px;line-height:1.45}
.student-workspace .sw-lesson-body{padding:12px 18px;display:grid;gap:6px;line-height:1.5}
.student-workspace .sw-lesson-body p{margin:0;line-height:1.5}
.student-workspace .sw-lesson-body .pill{justify-self:start;line-height:1.4}
.student-workspace .sw-lesson p:last-child{margin-bottom:0}
.student-workspace .sw-empty{padding:32px 20px;text-align:center;color:var(--pm-color-text);border:1px dashed var(--pm-color-border);border-radius:var(--pm-radius-card);margin:16px 0}
.student-workspace .sw-empty h3{margin-top:16px}
.student-workspace .toolbar{margin-bottom:24px}
@media(max-width:800px){.student-workspace{grid-template-columns:1fr}.student-workspace>.admin-sidebar{display:none}.student-workspace .sw-mobile-nav{display:block;margin:0 0 16px}.student-workspace .pm-panel{padding:18px}.student-workspace .sw-welcome{padding:18px}.student-workspace .sw-welcome h3{font-size:21px}.student-workspace .sw-stats{gap:10px}.student-workspace .sw-stats>div{padding:14px}.student-workspace .sw-stats span{font-size:12px}}

.student-workspace .sw-calendar-tools{display:flex;align-items:center;gap:12px;margin:24px 0 16px;flex-wrap:wrap}
.student-workspace .sw-calendar-tools h3{flex:1;margin:0;text-align:center;font-size:18px}
.student-workspace .sw-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--pm-color-border);border-left:1px solid var(--pm-color-border);border-radius:12px;overflow:hidden}
.student-workspace .sw-weekday{text-align:center;padding:10px 0;font-size:12px;background:var(--pm-color-primary-soft)}
.student-workspace .sw-calendar-day,.student-workspace .sw-calendar-blank,.student-workspace .sw-weekday{border-right:1px solid var(--pm-color-border);border-bottom:1px solid var(--pm-color-border);min-width:0;box-sizing:border-box}
.student-workspace .sw-calendar-day,.student-workspace .sw-calendar-blank{min-height:104px;padding:6px}
.student-workspace .sw-calendar-blank{background:var(--pm-color-surface-soft)}
.student-workspace .sw-day-number{display:block;font-size:12px;margin-bottom:6px;color:var(--pm-color-muted)}
.student-workspace .sw-calendar-day.is-today>.sw-day-number{color:var(--pm-color-primary);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.student-workspace .sw-calendar-event{display:flex;align-items:center;gap:6px;justify-content:center;width:100%;min-height:44px;padding:6px 3px;margin:4px 0;border:1px solid transparent;border-radius:8px;background:var(--sw-event-color);color:var(--sw-event-ink);font:inherit;cursor:pointer}
.student-workspace .sw-calendar-event strong{font-size:14px}.student-workspace .sw-calendar-event span{font-size:10px}
.student-workspace .sw-calendar-event[aria-pressed=true]{outline:2px solid var(--pm-color-primary);outline-offset:1px}
.student-workspace .sw-calendar-event[data-state=pending]{border-style:dashed;border-color:currentColor}
.student-workspace .sw-calendar-event[data-state=cancelled]{text-decoration:line-through;opacity:.65}
.student-workspace .sw-calendar-event:focus-visible{outline:3px solid var(--pm-color-accent);outline-offset:1px}
.student-workspace .sw-calendar-hint{font-size:12px;line-height:1.7}
@media(max-width:1100px){.student-workspace .sw-calendar-event{flex-direction:column;gap:2px}}
@media(max-width:620px){.student-workspace .sw-calendar-day,.student-workspace .sw-calendar-blank{min-height:76px;padding:3px}.student-workspace .sw-calendar-event span{display:none}.student-workspace .sw-calendar-tools{gap:8px}.student-workspace .sw-calendar-tools h3{font-size:15px}.student-workspace .sw-calendar-tools [data-today]{width:100%}.student-workspace .sw-calendar-event{min-height:44px}}
.mock-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #dce5f3;border-left:1px solid #dce5f3;border-radius:8px;overflow:hidden}.mock-calendar .sw-calendar-day,.mock-calendar .sw-weekday,.mock-calendar .sw-calendar-blank{border-right:1px solid #dce5f3;border-bottom:1px solid #dce5f3;min-width:0;box-sizing:border-box}.mock-calendar .sw-weekday{text-align:center;padding:10px 0;font-size:12px;background:#edf3ff}.mock-calendar .sw-calendar-blank{background:#f7f9fc}.mock-booking-calendar .sw-calendar-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.mock-booking-calendar .sw-calendar-tools h3{flex:1;text-align:center;margin:0;font-size:18px}.mock-booking-calendar .sw-calendar-tools input{max-width:160px}.mock-calendar-date .sw-day-number{display:block;font-weight:700}
.sw-material-tabs{margin:0 0 0;border-bottom:1px solid #ccd9f3}.sw-material-panel{padding-top:14px}.sw-homework-list .tc-homework-name{text-decoration:none}.sw-homework-list .tc-homework-name>span{font-weight:600}.sw-homework-status{font-weight:600}.sw-homework-status[data-tone=done]{color:#08783e}.sw-homework-status[data-tone=late]{color:#b45309}.sw-homework-status[data-tone=todo]{color:#173f9f}.sw-homework-feedback{font-size:12px;font-weight:600;color:#173f9f;white-space:nowrap}.sw-homework-score{min-width:78px;text-align:center;align-items:center}.sw-homework-score strong{color:#08783e}
.sw-homework-list .tc-homework-name>span,.sw-homework-list .tc-homework-name>small{white-space:normal;overflow:visible;text-overflow:clip}
.student-workspace [data-section]{position:relative}.sw-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:999px;background:#d92d20;color:#fff;font-size:12px;font-weight:700;line-height:1;vertical-align:middle;box-shadow:0 0 0 2px #fff}.student-workspace [data-section] .sw-badge{position:absolute;top:50%;right:12px;transform:translateY(-50%);margin:0}.student-workspace [data-section][aria-current=page] .sw-badge{box-shadow:0 0 0 2px #0d2c91}.sw-homework-alert{display:grid;gap:10px;margin:0 0 18px;padding:16px 18px;border:1px solid #f4c7c3;border-left:4px solid #d92d20;border-radius:12px;background:#fff6f5}.sw-homework-alert-head{display:flex;align-items:center;gap:10px;color:#7a1d14}.sw-homework-alert-head .sw-badge{margin:0}.sw-homework-alert ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.sw-homework-alert li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;color:#112b67;font-weight:500}.sw-homework-alert li small{color:#526581}.sw-homework-alert .pm-button{justify-self:start}.sw-homework-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sw-homework-action{min-height:36px;padding:8px 14px;font-size:13px;white-space:nowrap;text-decoration:none}
.sw-dot{display:inline-block;width:9px;height:9px;margin-left:8px;border-radius:50%;background:#d92d20;box-shadow:0 0 0 2px #fff;vertical-align:middle}.sw-feedback-alert{border-color:#c9e7d3;border-left-color:#08783e;background:#f2fbf5}.sw-feedback-alert .sw-homework-alert-head{color:#0b5a32}.sw-feedback-alert li{align-items:center}
.mock-student-calendar .mock-calendar-date:disabled{background:#f6f7fa;color:#7a8596;cursor:default;opacity:.7}.mock-student-calendar .mock-calendar-date>small{display:block;font-size:11px;margin-top:4px}.mock-slot-options{border:0;padding:0;margin:20px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.mock-slot-options legend{font-weight:700;margin-bottom:12px}.mock-slot-choice{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #cad5e5;border-radius:10px;cursor:pointer}.mock-slot-choice:has(input:checked){border-color:#1748b4;background:#edf3ff}.mock-slot-choice:has(input:disabled){opacity:.6;cursor:default}.mock-slot-choice input{width:18px;height:18px;accent-color:#1748b4}.mock-slot-choice span{display:grid;gap:6px}.mock-slot-choice small{color:#526581}@media(max-width:620px){.mock-student-calendar .mock-calendar-date>small{font-size:9px}}
