.workspace-page{background:#f5f7f9;color:#172033}.workspace-main{min-height:760px;padding-top:79px}.workspace-hero{padding:42px 0;background:linear-gradient(135deg,#0f766e,#115e59);color:#fff}.workspace-hero .ws-row{display:flex;align-items:center;justify-content:space-between;gap:24px}.workspace-hero h1{margin:7px 0 9px;font-size:34px;font-weight:850;letter-spacing:-.6px}.workspace-hero p{max-width:720px;margin:0;color:#d9fffa;font-size:15px;line-height:1.65}.ws-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#bff7f0}.ws-content{padding:34px 0 72px}.ws-card{border:1px solid #e4e9ed;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.045)}.ws-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 19px;border-bottom:1px solid #edf0f2}.ws-toolbar h2,.ws-card-head h2{margin:0;color:#172033;font-size:19px;font-weight:800}.ws-toolbar p,.ws-card-head p{margin:4px 0 0;color:#64748b;font-size:14px}.ws-actions,.ws-filters,.ws-tabs{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ws-btn{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:0 15px;border:1px solid #d8e0e5;border-radius:9px;color:#334155;background:#fff;font-size:14px;font-weight:700;cursor:pointer}.ws-btn:hover{color:#0f766e;border-color:#81c9c2}.ws-btn.primary{border-color:#0f766e;color:#fff;background:#0f766e}.ws-btn.danger{border-color:#fecaca;color:#b91c1c;background:#fff7f7}.ws-btn.small{min-height:34px;padding:0 11px;font-size:13px}.ws-tabs{padding:0 19px;border-bottom:1px solid #e8edef;background:#fff}.ws-tab{position:relative;padding:17px 3px 14px;border:0;color:#64748b;background:none;font-size:14px;font-weight:750;cursor:pointer}.ws-tab+.ws-tab{margin-left:20px}.ws-tab.active{color:#0f766e}.ws-tab.active:after{position:absolute;right:0;bottom:-1px;left:0;height:3px;border-radius:3px 3px 0 0;background:#0f766e;content:""}.ws-pane{display:none}.ws-pane.active{display:block}.ws-card-body{padding:20px}.ws-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.ws-stat{padding:18px}.ws-stat span{display:block;color:#64748b;font-size:13px}.ws-stat strong{display:block;margin-top:6px;font-size:25px;font-weight:850}.ws-stat i{float:right;color:#0f766e;font-size:21px}.ws-filterbar{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;padding:16px 19px;border-bottom:1px solid #edf0f2}.ws-input,.ws-select,.ws-textarea{width:100%;border:1px solid #dce3e8;border-radius:9px;color:#263247;background:#fff;font:inherit;font-size:14px;outline:none}.ws-input,.ws-select{height:42px;line-height:42px;padding:0 12px}.ws-textarea{min-height:105px;padding:11px 12px;resize:vertical}.ws-input:focus,.ws-select:focus,.ws-textarea:focus{border-color:#42a79e;box-shadow:0 0 0 3px rgba(15,118,110,.1)}.ws-table-wrap{overflow:auto}.ws-table{width:100%;min-width:830px;border-collapse:collapse}.ws-table th{padding:12px 16px;color:#64748b;background:#f8fafb;font-size:12px;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.04em}.ws-table td{padding:15px 16px;border-top:1px solid #edf0f2;color:#334155;font-size:14px;vertical-align:middle}.ws-table td strong{display:block;color:#172033;font-size:14px}.ws-table td small{display:block;margin-top:4px;color:#718096;font-size:12px}.ws-person{display:flex;align-items:center;gap:10px}.ws-person img{width:38px;height:38px;border-radius:50%;object-fit:cover}.ws-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:750}.ws-badge.green{color:#047857;background:#ecfdf5}.ws-badge.orange{color:#c2410c;background:#fff7ed}.ws-badge.blue{color:#1d4ed8;background:#eff6ff}.ws-badge.gray{color:#475569;background:#f1f5f9}.ws-badge.red{color:#b91c1c;background:#fef2f2}.ws-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:18px;border-top:1px solid #edf0f2}.ws-pagination button{width:36px;height:36px;border:1px solid #dce3e8;border-radius:8px;color:#475569;background:#fff;font-size:13px;font-weight:700}.ws-pagination button.active{border-color:#0f766e;color:#fff;background:#0f766e}.ws-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:20px}.ws-card-head{padding:18px 20px;border-bottom:1px solid #edf0f2}.ws-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.ws-field{display:flex;flex-direction:column;gap:7px}.ws-field.full{grid-column:1/-1}.ws-field label{color:#334155;font-size:13px;font-weight:750}.ws-calendar{display:grid;grid-template-columns:72px repeat(5,1fr);border:1px solid #e5eaed;border-radius:12px;overflow:hidden}.ws-calendar>*{min-height:48px;padding:9px;border-right:1px solid #edf0f2;border-bottom:1px solid #edf0f2;font-size:12px}.ws-calendar .head{min-height:auto;color:#64748b;background:#f8fafb;font-weight:800;text-align:center}.ws-calendar .slot{cursor:pointer}.ws-calendar .slot.available{background:#f0fdfa}.ws-calendar .slot.busy{color:#94a3b8;background:#f8fafc}.ws-calendar .slot.selected{color:#fff;background:#0f766e}.ws-check-list{display:grid;gap:10px}.ws-check{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;border:1px solid #e6ebee;border-radius:10px}.ws-check h3{margin:0 0 4px;font-size:14px}.ws-check p{margin:0;color:#64748b;font-size:13px;line-height:1.5}.ws-empty{padding:45px 20px;text-align:center;color:#64748b}.ws-empty i{display:block;margin-bottom:10px;color:#94a3b8;font-size:35px}.ws-modal{position:fixed;z-index:2000;inset:0;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.58)}.ws-modal.show{display:flex}.ws-dialog{width:min(620px,100%);max-height:90vh;overflow:auto;border-radius:16px;background:#fff;box-shadow:0 25px 70px rgba(0,0,0,.25)}.ws-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #e9edef}.ws-dialog-head h2{margin:0;font-size:19px;font-weight:800}.ws-close{border:0;background:none;font-size:23px}.ws-toast{position:fixed;z-index:2200;right:24px;bottom:24px;padding:13px 17px;border-radius:10px;color:#fff;background:#172033;font-size:14px;opacity:0;transform:translateY(12px);transition:.2s}.ws-toast.show{opacity:1;transform:none}.ws-cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.ws-cert{overflow:hidden}.ws-cert-cover{display:grid;height:170px;place-items:center;color:#fff;background:linear-gradient(135deg,#0f766e,#1d4ed8)}.ws-cert-cover i{font-size:50px}.ws-cert-body{padding:17px}.ws-cert-body h3{margin:0 0 8px;font-size:16px;font-weight:800;line-height:1.4}.ws-cert-body p{margin:0 0 13px;color:#64748b;font-size:13px;line-height:1.55}.ws-verify{max-width:760px;margin:0 auto;text-align:center}.ws-verify-icon{display:grid;width:84px;height:84px;margin:0 auto 18px;place-items:center;border-radius:50%;color:#047857;background:#d1fae5;font-size:42px}.ws-verify h2{font-size:25px;font-weight:850}.ws-detail-list{margin:22px 0;text-align:left}.ws-detail-list div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #edf0f2;font-size:14px}.ws-detail-list span{color:#64748b}.ws-detail-list strong{text-align:right}.ws-stars{color:#f59e0b;font-size:22px;letter-spacing:3px}.dashboard-extra{margin-top:22px}.dashboard-extra .ws-tabs{border:1px solid #e4e9ed;border-radius:14px 14px 0 0}.dashboard-extra .ws-pane{border:1px solid #e4e9ed;border-top:0;border-radius:0 0 14px 14px;background:#fff}.dashboard-extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px}.dashboard-extra-item{padding:16px;border:1px solid #e6ebee;border-radius:11px}.dashboard-extra-item h3{margin:9px 0 6px;font-size:15px;font-weight:800}.dashboard-extra-item p{margin:0 0 13px;color:#64748b;font-size:13px;line-height:1.55}@media(max-width:991px){.ws-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ws-layout{grid-template-columns:1fr}.ws-filterbar{grid-template-columns:1fr 1fr}.ws-cert-grid,.dashboard-extra-grid{grid-template-columns:1fr 1fr}}@media(max-width:767px){.workspace-hero .ws-row{align-items:flex-start;flex-direction:column}.workspace-hero h1{font-size:28px}.ws-grid,.ws-filterbar,.ws-form-grid,.ws-cert-grid,.dashboard-extra-grid{grid-template-columns:1fr}.ws-field.full{grid-column:auto}.ws-toolbar{align-items:flex-start;flex-direction:column}.ws-tabs{overflow:auto;flex-wrap:nowrap}.ws-tab{white-space:nowrap}.ws-calendar{grid-template-columns:55px repeat(5,110px);overflow:auto}}

/* Blazor MainLayout: header sticky — không chừa 79px như mockup */
.workspace-page .workspace-main,
.workspace-main {
    padding-top: 0;
    min-height: 0;
}

/* Study group manage: tabs as links */
a.ws-tab{text-decoration:none;color:#64748b}
a.ws-tab:hover{color:#0f766e}
a.ws-tab.active{color:#0f766e}

/* Group avatar picker (manage page) */
.ws-avatar-picker{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px}.ws-avatar-preview{position:relative;width:132px;height:132px;overflow:hidden;border:1px solid #e4e9ed;border-radius:18px;background:#f4f7f8;box-shadow:0 8px 20px rgba(15,23,42,.06)}.ws-avatar-preview img{display:block;width:100%;height:100%;object-fit:cover}.ws-avatar-placeholder{display:grid;width:100%;height:100%;place-items:center;gap:6px;color:#94a3b8;text-align:center;font-size:12px;font-weight:650}.ws-avatar-placeholder i{font-size:28px;color:#0f766e}.ws-avatar-overlay{position:absolute;inset:auto 8px 8px 8px;display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:6px;padding:0 10px;border-radius:999px;color:#fff;background:rgba(15,23,42,.72);font-size:12px;font-weight:750;cursor:pointer;backdrop-filter:blur(4px)}.ws-avatar-overlay:hover{background:rgba(15,118,110,.92)}.ws-avatar-meta{flex:1;min-width:200px}.ws-avatar-hint{margin:0 0 8px;color:#64748b;font-size:13px;line-height:1.5}.ws-avatar-filename{margin:0 0 10px;color:#0f766e;font-size:13px;font-weight:700}.ws-avatar-remove{display:inline-flex;align-items:center;gap:8px;margin:0;color:#b42318;font-size:13px;font-weight:650;cursor:pointer}.ws-avatar-remove input{width:16px;height:16px;accent-color:#b42318}
@media (max-width:640px){.ws-avatar-picker{flex-direction:column}.ws-avatar-preview{width:112px;height:112px}}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Nhiều .ws-card/.ws-grid xếp chồng trực tiếp trong cùng 1 trang (vd InstructorPayouts.razor) không có
   khoảng cách mặc định — trước giờ mọi trang khác chỉ dùng 1 .ws-card/.ws-layout nên chưa lộ ra.
   BUG THẬT đã gặp: ":not(.ws-stat)" bắt buộc — .ws-stat cũng mang class .ws-card (dùng trong .ws-grid,
   "ws-card ws-stat"), nếu không loại trừ thì margin-top này đè lên chính 2 ô thống kê NẰM CẠNH NHAU
   trong .ws-grid (chúng là "sibling .ws-card" theo đúng nghĩa CSS), đẩy lệch 1 ô xuống trong lưới
   thay vì canh hàng ngang — nhìn như 2 card cao/thấp khác nhau, không phải lỗi chiều rộng. */
.ws-grid + .ws-card,
.ws-card:not(.ws-stat) + .ws-card:not(.ws-stat){margin-top:20px}
