/* OSC Attendance Score Studio v1 */
#oscAttendanceScoreControls{margin:10px 0 16px}
.osc-score-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;background:linear-gradient(115deg,#fff,#fff8fb);border:1px solid #eddde5;border-radius:14px;padding:14px 16px}
.osc-score-header b{font-size:14px;color:#6f2849}
.osc-score-header p{margin:5px 0 0;color:#846a78;font-size:12px;max-width:480px;line-height:1.6}
.osc-score-action-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.osc-score-action-group button{min-height:35px;padding:7px 11px;border-radius:9px;cursor:pointer;font-size:12px}
.osc-score-action-group button:disabled{opacity:.45;cursor:not-allowed}
.osc-score-count{font-size:12px;color:#7e526b;font-weight:700}
.osc-score-grant{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;background:#f9edf3;border:1px solid #efd9e3;border-radius:10px;color:#753e5d;font-size:12px;font-weight:700;cursor:pointer}
.osc-score-grant input{accent-color:#783351;width:17px;height:17px}
#qltvTable .osc-score-stt{display:grid;gap:5px;justify-items:center;min-width:52px}
#qltvTable .osc-score-select{width:17px;height:17px;accent-color:#7e3152;cursor:pointer}
#qltvTable .osc-score-value{background:none;border:0;padding:5px 7px;color:#78294e;text-decoration:underline;text-underline-offset:3px;font-weight:800;cursor:pointer;border-radius:8px;white-space:nowrap}
#qltvTable .osc-score-value:hover{background:#fce9f2}
#qltvTable .osc-score-note{display:block;color:#96798a;font-size:10px;line-height:1.3}
.osc-score-overlay{position:fixed;inset:0;z-index:10090;display:flex;align-items:center;justify-content:center;padding:15px;background:rgba(28,10,20,.36);backdrop-filter:blur(3px)}
.osc-score-dialog{width:min(830px,100%);max-height:91vh;overflow:auto;background:#fff;border-radius:17px;border:1px solid #e9dce3;padding:20px;color:#4b3040;box-shadow:0 25px 85px rgba(28,9,20,.23)}
.osc-score-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.osc-score-dialog-head small{font-size:10px;color:#9b567a;font-weight:800;letter-spacing:.12em}
.osc-score-dialog-head h2{font-size:21px;margin:6px 0 4px;color:#702e4d}
.osc-score-dialog-head p{font-size:12px;color:#8e7282;margin:0;line-height:1.55}
.osc-score-close{padding:7px 11px!important;min-width:40px!important}
.osc-score-help{font-size:12px;line-height:1.7;color:#745466;background:#fcf5f9;border:1px solid #efdfe7;border-radius:10px;padding:11px;margin:0 0 12px}
.osc-score-names{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 18px;max-height:110px;overflow:auto}
.osc-score-names span{padding:5px 9px;border-radius:8px;background:#fbeaf2;color:#753b58;font-size:11px}
.osc-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:15px}
.osc-score-grid label{display:grid;gap:6px;font-size:12px;color:#714158;font-weight:700;min-width:0}
.osc-score-grid input,.osc-score-grid select{width:100%;min-height:41px;border:1px solid #d9c6d0;border-radius:9px;background:#fff;color:#4d3040;padding:9px 10px;font:inherit;font-size:13px}
.osc-score-grid input:disabled{background:#f6f1f3;color:#aaa}
.osc-score-footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:18px}
.osc-score-footer button{border-radius:9px;min-height:40px;padding:9px 16px;cursor:pointer}
@media(max-width:700px){.osc-score-grid{grid-template-columns:1fr}.osc-score-dialog{padding:15px;max-height:95vh}.osc-score-header{align-items:stretch}.osc-score-action-group{width:100%}.osc-score-action-group button{flex:1 1 120px}}
@media(prefers-reduced-motion:reduce){.osc-score-value{transition:none!important}}

/* One-tap, large-target scoring controls for the attendance grid. */
#qltvTable td.osc-attendance-cell{padding:9px 8px;min-width:122px;vertical-align:middle}
.osc-attendance-toggle{display:inline-flex;align-items:stretch;gap:4px;padding:4px;border:1px solid #ead8e2;border-radius:11px;background:#faf5f8;white-space:nowrap}
.osc-attendance-choice{min-width:51px;min-height:37px;padding:7px 6px!important;border:1px solid transparent!important;border-radius:8px!important;cursor:pointer;font:inherit;font-size:12px!important;font-weight:750!important;color:#846d7b!important;background:transparent!important;transition:background .14s ease,color .14s ease,box-shadow .14s ease}
.osc-attendance-choice.is-on{background:#e5f6ed!important;border-color:#a6dcc0!important;color:#19744d!important;box-shadow:0 1px 4px #19744d1a}
.osc-attendance-choice.is-off{background:#f0e8ec!important;border-color:#dbccd3!important;color:#654557!important}
.osc-attendance-choice:not(:disabled):hover{background:#f6e2ee!important;color:#742d54!important}
.osc-attendance-choice:disabled,.osc-attendance-step:disabled{opacity:.5!important;cursor:not-allowed!important}
.osc-attendance-stepper{display:inline-flex;align-items:center;gap:3px;border:1px solid #e4d7df;border-radius:11px;padding:3px;background:#fbf7f9;max-width:100%;white-space:nowrap}
.osc-attendance-step{display:grid;place-items:center;min-width:34px;min-height:37px;padding:0!important;background:#f1e4eb!important;color:#793450!important;border:1px solid #e8d4de!important;border-radius:8px!important;font-size:19px!important;font-weight:750!important;cursor:pointer}
.osc-attendance-number{box-sizing:border-box;appearance:textfield;-moz-appearance:textfield;width:63px;min-width:48px;height:37px;padding:5px 2px!important;border:1px solid transparent!important;background:#fff!important;text-align:center;border-radius:7px!important;color:#4d3040!important;font-size:13px!important;font-weight:800!important}
.osc-attendance-number::-webkit-inner-spin-button,.osc-attendance-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.osc-attendance-cell .activity-mode-note{display:block;margin:5px 0 0;font-size:10px;text-align:center;color:#8f7582}
.osc-attendance-cell .osc-credit-badge{display:inline-block;margin:4px 0 0}
.osc-attendance-cell.osc-attendance-saving{opacity:.62;position:relative}
.osc-attendance-cell.osc-attendance-saving::after{content:"Đang lưu";display:block;font-size:10px;text-align:center;color:#88486b;font-weight:750;margin-top:4px}
.osc-attendance-choice:focus-visible,.osc-attendance-step:focus-visible,.osc-attendance-number:focus-visible{outline:3px solid #c880a6!important;outline-offset:2px}
@media(max-width:680px){#qltvTable td.osc-attendance-cell{min-width:116px;padding:8px 5px}.osc-attendance-choice{min-height:40px;min-width:50px}.osc-attendance-step{min-height:40px;min-width:34px}.osc-attendance-number{height:40px}}
@media(prefers-reduced-motion:reduce){.osc-attendance-choice{transition:none!important}}
