.v2-page { display:flex; flex-direction:column; gap:18px; }
.v2-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; }
.v2-toolbar .form-group { margin:0; min-width:145px; }
.v2-toolbar .form-control { min-width:0; }
.v2-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:12px; margin:14px 0; }
.v2-stat { padding:15px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.v2-stat span { display:block; font-size:12px; color:var(--muted); margin-bottom:8px; }
.v2-stat strong { font-size:21px; font-variant-numeric:tabular-nums; }
.v2-note { padding:12px 15px; background:var(--amber-soft); border-left:3px solid var(--amber); border-radius:7px; line-height:1.6; font-size:13px; }
.v2-table-wrap { max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.v2-table { width:100%; border-collapse:collapse; font-size:13px; }
.v2-table th { background:var(--background); color:var(--muted); font-size:12px; text-align:left; white-space:nowrap; }
.v2-table th,.v2-table td { padding:12px; border-bottom:1px solid var(--line); vertical-align:top; }
.v2-table td { max-width:350px; overflow-wrap:anywhere; }
.v2-table td:last-child { min-width:120px; }
.v2-table small { display:block; color:var(--muted); margin-top:5px; }
.v2-table tr:last-child td { border-bottom:0; }
.v2-link { padding:0; border:0; background:none; color:var(--blue); text-align:left; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.v2-progress { display:flex; gap:8px; align-items:center; min-width:110px; }
.v2-progress progress { width:70px; height:8px; accent-color:var(--green); }
.v2-detail { display:grid; gap:14px; }
.v2-detail h3 { font-size:16px; margin:8px 0; }
.v2-form { display:grid; gap:14px; }
.v2-form .form-grid { gap:14px; }
.v2-error { color:var(--red); background:var(--red-soft); padding:12px; border-radius:8px; }
.v2-subtle { color:var(--muted); font-size:12px; line-height:1.6; }
.v2-badge { display:inline-block; padding:4px 8px; margin:2px; border-radius:20px; background:var(--blue-soft); font-size:11px; color:var(--ink); white-space:nowrap; }
.v2-empty { padding:24px; text-align:center; color:var(--muted); }
.v2-check { display:flex; align-items:center; gap:8px; line-height:1.5; font-size:13px; }
.v2-actions { display:flex; flex-wrap:wrap; gap:7px; }
.v2-detail details { border:1px solid var(--line); padding:12px; border-radius:10px; }
.v2-detail summary { cursor:pointer; font-weight:600; }
.v2-roster-select { min-width:160px; }
.v2-toolbar button:focus-visible,.v2-link:focus-visible,.v2-table select:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
@media(max-width:600px){.v2-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v2-stat{padding:12px}.v2-stat strong{font-size:17px}.v2-toolbar>*{flex:1 1 135px}.v2-toolbar .form-group{min-width:0}.v2-table th,.v2-table td{padding:10px}.v2-page{gap:12px}.v2-form .form-grid{grid-template-columns:1fr}.v2-actions .btn{flex:1 1 auto}}

.v2-table th:first-child,.v2-table td:first-child { min-width:120px; }
.v2-table td small { overflow-wrap:normal; }

.mgmt-teacher-section{margin-top:24px}.mgmt-teacher-section>h3{margin:0 0 14px}.mgmt-roster-options{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:12px}.mgmt-roster-option{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer}.mgmt-roster-option[hidden]{display:none}.mgmt-roster-option input{width:20px;height:20px;flex:0 0 20px}.mgmt-roster-option small{display:block;margin-top:4px;color:var(--muted)}.mgmt-teacher-section .group-card-actions{flex-wrap:wrap}.mgmt-teacher-section .group-card-head h3{overflow-wrap:anywhere}.filters .form-group{margin:0}.filters{align-items:end}

.directory-filters{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px}
.directory-filters>.filters{padding:0;box-shadow:none;margin:0}
.directory-filters .form-group{flex:1 1 170px;min-width:0}
.directory-more-filters{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.directory-more-filters>summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}
.directory-more-filters .filters{box-shadow:none;padding:12px 0 0;margin:0}
.directory-result-count{color:var(--muted);font-size:13px;margin:0 0 12px}
.directory-card{display:flex;flex-direction:column}
.directory-card .group-card-head>div{min-width:0}
.directory-card .group-card-head h3{font-size:16px;overflow-wrap:anywhere}
.directory-card .group-card-head p{font-size:12px;overflow-wrap:anywhere}
.directory-badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px}
.directory-number{color:var(--muted);font-size:12px}
.directory-card .group-facts strong{white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.5}
.directory-card .group-facts small{font-size:10px}
.directory-card .group-card-actions{flex-wrap:wrap;margin-top:auto;padding-top:16px;gap:8px}
.directory-card .group-card-actions .btn{min-height:38px}
.directory-delete{color:var(--red)!important}
.directory-services{margin:0 0 12px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.directory-payment{display:grid;gap:5px;margin:0 0 8px}
.directory-payment>small{font-size:11px;color:var(--muted)}
.directory-group-list{display:grid;gap:8px;margin-bottom:8px}
.directory-group-link{display:block;border:1px solid var(--line);background:var(--surface);border-radius:10px;text-align:left;padding:10px;color:var(--ink);width:100%}
.directory-group-link strong,.directory-group-link small{display:block;overflow-wrap:anywhere}
.directory-group-link strong{font-size:13px;color:var(--red)}
.directory-group-link small{font-size:11px;color:var(--muted);margin-top:4px}
.directory-card button:focus-visible,.directory-filters summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(max-width:600px){.directory-card-grid{grid-template-columns:minmax(0,1fr)}.directory-card .group-card-actions .btn{flex:1 1 auto}.directory-filters .filters{display:flex;flex-wrap:wrap}.directory-filters .form-group{flex-basis:100%}}

/* Bulk enrolment */
.mgmt-group-summary{padding:16px;border:1px solid var(--line,#ebe3d2);border-radius:12px;margin:12px 0;background:var(--cream,#fff9ee)}
#mgmt-bulk-preview .v2-table-wrap{max-height:220px;overflow:auto;margin:12px 0}.mgmt-roster-options [hidden],#mgmt-new-students[hidden],#mgmt-existing-students[hidden]{display:none!important}#mgmt-selection-count{font-weight:600;margin-top:16px}.mgmt-group-summary strong{overflow-wrap:anywhere}
.mgmt-group-summary small{font-size:14px}.mgmt-group-summary strong{font-size:15px}.mgmt-group-summary{background:var(--background);border-color:var(--line)}[data-mgmt-form] .form-error:empty{display:none}

.daily-schedule{border:1px solid var(--line,#ebe3d2);border-radius:14px;padding:16px}.daily-schedule-row{display:grid;grid-template-columns:minmax(170px,1.4fr) 1fr 1fr;gap:12px;align-items:center;padding:8px 0}.daily-schedule-row>label{display:flex;gap:8px;align-items:center}.daily-schedule-row input[type=checkbox]{width:18px;height:18px;accent-color:#e31e24}.daily-schedule-row label{font-size:13px}.form-group[hidden],fieldset[hidden],[data-backdate-confirm][hidden]{display:none!important}.attendance-guide{padding:16px;border:1px solid #ebe3d2;border-radius:14px;background:#fff9ee;margin:12px 0}.attendance-guide p{margin:4px 0}@media(max-width:600px){.daily-schedule-row{grid-template-columns:1fr 1fr}.daily-schedule-row>label{grid-column:1/-1}}

/* Keep student search usable inside wide tables and narrow modal dialogs. */
.student-list-search .form-group{flex:1 1 220px;min-width:0}
.student-list-search .form-control{width:100%}
[data-student-search-scope] [hidden]{display:none!important}

.student-teacher-heading{grid-column:1/-1;margin:16px 0 0}.student-teacher-heading small{font-size:13px;color:var(--muted);font-weight:400}.student-status-date{display:block;margin:8px 0;color:var(--muted);font-size:13px}.student-previous-assignment{padding:12px;border:1px solid var(--line);border-radius:12px;margin:12px 0;background:var(--surface)}.student-previous-assignment>.group-facts{margin:10px 0}.student-previous-assignment>small{color:var(--muted)}
.flexible-plan {border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.flexible-plan legend {font-weight:700;padding:0 6px}
.flexible-plan-row {display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:12px;align-items:end;margin:12px 0}
.flexible-plan-row label {display:block;margin-bottom:6px}
.saved-plan-row {display:flex;flex-wrap:wrap;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.flexible-plan [hidden],.saved-plan-row[hidden],[data-return-options][hidden],[data-return-correction][hidden] {display:none!important}
.trial-follow-up {padding:12px;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}
[data-return-history] {margin:12px 0;line-height:1.6;overflow-wrap:anywhere}
.lifecycle-trend {overflow-x:auto;justify-content:space-around}
.lifecycle-trend-month {min-width:76px;flex:1}
@media(max-width:600px){.flexible-plan-row{grid-template-columns:1fr 1fr}.flexible-plan-row>div:first-child{grid-column:1/-1}.flexible-plan-row>button{grid-column:1/-1}.saved-plan-row{gap:8px 12px}}

.lifecycle-trend{display:flex;gap:12px}
.trend-legend .new,.trend-bars i.new{color:var(--amber)}
.trend-legend{font-size:12px;flex-wrap:wrap}
.trend-bars b{font-size:11px}
