.ca-root{color:#24354b;font:14px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:#fff;border:1px solid #e2e8ef;border-radius:16px;padding:20px;margin-bottom:18px}
.ca-root *{box-sizing:border-box}.ca-root button,.ca-root select,.ca-root input,.ca-root textarea{font:inherit}
.ca-root button{cursor:pointer;border:1px solid #dce4ee;border-radius:8px;background:#fff;color:#334760;min-height:36px;padding:7px 10px;text-align:left;line-height:1.4}
.ca-root button:hover:not(:disabled){border-color:#7ba7e8;background:#f3f7fe}.ca-root button:disabled{cursor:default;opacity:.48}.ca-root :focus-visible{outline:3px solid #85b7ff;outline-offset:2px}
.ca-root select,.ca-root input,.ca-root textarea{border:1px solid #cfd9e6;border-radius:8px;background:#fff;color:#24354b;padding:8px;max-width:100%;width:100%;min-height:40px}
.ca-root textarea{min-height:78px;resize:vertical}.ca-root h3{font-size:20px;line-height:1.35}.ca-root h4{font-size:14px;line-height:1.5;margin:0}.ca-root p{margin:5px 0;line-height:1.6}.ca-root small{font-size:12px}
.ca-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.ca-header p{font-size:12px;color:#66758a}.ca-version{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap;font-size:12px;color:#66758a}.ca-version strong{font-size:14px;color:#235ba5;background:#edf4ff;padding:4px 10px;border-radius:7px;margin-bottom:3px}
.ca-progress{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.ca-progress button{display:flex;gap:16px;align-items:center;justify-content:space-between;min-width:100px;padding:9px 14px}.ca-progress strong{font-size:19px}.ca-progress .active{border-color:#7fa9e6;background:#eef5ff;color:#184d91}
.ca-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:12px 0}.ca-toolbar p{font-size:12px;color:#66758a}.ca-root .ca-primary{background:#1a73e8;color:#fff;border-color:#1a73e8;text-align:center;font-weight:600}.ca-root .ca-primary:hover:not(:disabled){background:#155bb7;border-color:#155bb7}.ca-root .ca-secondary{background:#f6f8fc;text-align:center}.ca-root .ca-link{color:#235fae;border:0;background:transparent;padding:5px 0;font-size:12px;text-decoration:underline;min-height:28px}.ca-draft-note,.ca-unsaved{color:#9b5b13;font-size:12px}.ca-message{color:#236940;font-size:13px}.ca-notice{background:#f3f6fb;border-radius:9px;padding:10px;color:#56677c}.ca-error{background:#fff1f0;color:#9b2925;padding:10px;border-radius:8px;margin-top:8px;overflow-wrap:anywhere;font-size:12px}.ca-error button{display:block;margin-top:8px}.ca-empty{padding:32px 12px;text-align:center;color:#66758a}.ca-muted{color:#6e7c90;font-size:12px}.ca-saved{color:#356c4d;font-size:12px}
.ca-matrix-wrap{overflow-x:auto;margin:10px -4px 0;padding:4px}.ca-matrix{width:100%;min-width:850px;border-collapse:separate;border-spacing:0;table-layout:fixed}.ca-matrix th,.ca-matrix td{vertical-align:top;text-align:left;padding:12px 9px;border-bottom:1px solid #e6ebf2}.ca-matrix thead th{background:#f4f7fb;font-weight:650;font-size:13px}.ca-matrix thead th small{display:block;font-weight:400;font-size:11px;line-height:1.5;color:#768396;margin-top:5px}.ca-matrix th:first-child{width:136px;position:sticky;left:0;background:#fff;z-index:1;border-right:1px solid #e6ebf2}.ca-matrix thead th:first-child{background:#f4f7fb}.ca-matrix th:last-child{width:146px}.ca-matrix tbody tr:hover{background:#fdfefe}.ca-matrix select{font-size:12px;margin-top:6px;padding:5px;min-height:34px}.ca-name{border:0!important;padding:0!important;display:block;background:transparent!important;font-weight:650!important;font-size:14px!important;min-height:30px!important}.ca-name small{display:block;font-weight:400;color:#77869a;margin:1px 0 8px}.ca-status{display:inline-block;border-radius:5px;background:#eef1f5;color:#6a788b;padding:3px 7px;font-size:12px;font-weight:500;margin-bottom:5px;white-space:nowrap}.ca-status.complete{background:#e7f4ec;color:#267344}.ca-status.partial{background:#fff3df;color:#926113}.ca-status.absent{background:#edf0f9;color:#657299}.ca-matrix .ca-unsaved{display:block;margin-top:4px}.ca-actions-cell>button{display:block;width:100%;margin-bottom:8px;font-size:12px}.ca-week-link{background:#f5f8fd!important}.ca-week-link small{display:block;color:#6c7d94;margin-top:3px}
.ca-picker{display:flex;flex-direction:column;gap:5px}.ca-picker>button{display:flex;gap:6px;align-items:flex-start;width:100%;font-size:12px;padding:7px;min-height:38px}.ca-picker strong{font-size:13px;font-weight:700;flex:0 0 15px;text-align:center;color:#52657d}.ca-picker span{flex:1;overflow-wrap:anywhere}.ca-picker .selected{border-color:#4c8bdc;background:#edf4ff;color:#194e94}.ca-picker .selected strong{color:#194e94}.ca-picker-extras{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.ca-picker-extras button{font-size:11px;padding:4px 6px;min-height:28px}.ca-cards{display:none}
.ca-overlay{position:fixed;inset:0;background:#1c2c435c;display:flex;justify-content:center;align-items:center;z-index:125;padding:24px}.ca-dialog{background:#fff;border-radius:18px;max-width:820px;width:100%;max-height:92vh;overflow-y:auto;padding:22px;box-shadow:0 20px 80px #152b4730;outline:none}.ca-dialog-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid #edf0f4;margin-bottom:16px}.ca-dialog-head h3 small{font-size:14px;color:#6e7d91;font-weight:400}.ca-dialog-head p{font-size:12px;color:#728096}.ca-dialog-head>button{width:38px;height:38px;padding:3px;text-align:center;font-size:24px;flex-shrink:0;background:#f6f8fb;border:0}.ca-dialog-attendance{display:flex;align-items:center;gap:9px;margin-bottom:16px;flex-wrap:wrap}.ca-dialog-attendance select{width:auto;margin-left:auto}.ca-dialog-attendance .ca-status{margin:0}.ca-daily-fields,.ca-weekly-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.ca-field{padding:13px;background:#f8fafc;border:1px solid #e5ebf3;border-radius:12px}.ca-field>p{color:#748296;font-size:12px;min-height:36px;margin:5px 0 9px}.ca-dialog .ca-picker>button{font-size:13px;min-height:40px;background:#fff}.ca-dialog .ca-picker>button.selected{background:#eaf3ff}.ca-label{display:block;font-size:12px;font-weight:550;margin:12px 0;color:#52647c}.ca-label>input,.ca-label>select,.ca-label>textarea{display:block;margin-top:5px;font-weight:400;font-size:13px}.ca-family{border-top:1px solid #e1e8f0;margin-top:22px;padding-top:15px}.ca-family summary{font-size:15px;font-weight:650;cursor:pointer;padding:8px 0}.ca-family summary span{display:inline-block;margin-left:8px;font-size:12px;font-weight:400;color:#7a6540}.ca-family summary small{display:block;margin:6px 0 4px;color:#7c8999;font-weight:400}.ca-previous{background:#f1f6fc;border-radius:10px;padding:13px;margin:12px 0 16px;font-size:12px}.ca-previous>p{color:#596e89}.ca-previous dl{display:grid;grid-template-columns:150px 1fr;gap:4px 12px;margin:8px 0}.ca-previous dt{color:#5d718b}.ca-previous dd{margin:0}.ca-evidence{white-space:pre-wrap;overflow-wrap:anywhere}.ca-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ca-dialog-actions{display:flex;gap:10px;position:sticky;bottom:-22px;background:#fff;border-top:1px solid #e2e8ef;margin:18px -22px -22px;padding:12px 22px}.ca-dialog-actions button{flex:1;min-height:45px}.ca-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.ca-matrix-wrap{display:none}.ca-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.ca-root .ca-student-card{display:block;padding:14px;border-radius:12px}.ca-card-title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:650;flex-wrap:wrap}.ca-card-title small{font-weight:400;color:#7b8899}.ca-card-title .ca-status{margin:0 0 0 auto}.ca-card-detail{display:block;font-size:12px;color:#7a879a;margin-top:10px}.ca-card-detail>span:last-child{float:right}.ca-progress button{flex:1;min-width:65px;padding:8px;gap:8px}.ca-dialog{max-width:740px}}
@media(max-width:600px){.ca-root{padding:14px;border-radius:13px}.ca-header{gap:8px}.ca-root h3{font-size:18px}.ca-header p{max-width:225px}.ca-version{font-size:11px}.ca-version strong{font-size:12px;padding:3px 7px}.ca-progress{gap:5px}.ca-progress button{display:block;text-align:center;min-width:45px;padding:7px 5px;font-size:12px}.ca-progress strong{display:block;margin-top:3px;font-size:18px}.ca-toolbar{align-items:flex-start;flex-direction:column;gap:7px}.ca-toolbar p{font-size:12px}.ca-cards{grid-template-columns:1fr}.ca-overlay{align-items:flex-end;padding:0}.ca-dialog{max-height:94dvh;max-height:94vh;border-radius:18px 18px 0 0;padding:17px 14px calc(14px + env(safe-area-inset-bottom))}.ca-dialog-head{margin-bottom:13px}.ca-dialog-head h3{font-size:20px}.ca-dialog-attendance strong{font-size:14px}.ca-dialog-attendance select{font-size:12px;max-width:135px}.ca-daily-fields,.ca-weekly-fields{grid-template-columns:1fr;gap:10px}.ca-field{padding:12px}.ca-field>p{min-height:0}.ca-dialog .ca-picker>button{min-height:42px}.ca-dialog .ca-picker-extras button{min-height:34px;padding:6px 9px}.ca-previous dl{grid-template-columns:1fr;gap:2px}.ca-previous dd{margin-bottom:7px}.ca-dates{gap:9px;min-width:0}.ca-dates input{min-width:0}.ca-dialog-actions{bottom:calc(-14px - env(safe-area-inset-bottom));margin:16px -14px calc(-14px - env(safe-area-inset-bottom));padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.ca-dialog-actions button{font-size:13px}.ca-family summary small{font-size:12px}}
.ca-dialog-head{position:sticky;top:-22px;z-index:4;background:#fff;margin-top:-22px;padding-top:22px;box-shadow:0 4px 8px #ffffffee}
@media(max-width:600px){.ca-dialog-head{top:-17px;margin-top:-17px;padding-top:17px}}

/* The existing workbench opens the class roster; matrix is an explicit quick-entry view. */
.ca-items-summary{color:#66758a;font-size:12px;line-height:1.8!important}.ca-layout-switch{display:flex;gap:6px;margin-left:auto}.ca-layout-switch [aria-pressed=true]{color:#1a63bd;background:#eef5ff;border-color:#80ace8}
.ca-roster-layout .ca-matrix-wrap{display:none}.ca-roster-layout .ca-cards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:15px}
.ca-root .ca-student-card{display:flex;align-items:center;gap:14px;padding:20px;border-radius:12px;width:100%;text-align:left}.ca-avatar{display:flex;align-items:center;justify-content:center;background:#1a73e8;border-radius:50%;color:#fff;width:44px;height:44px;font-size:19px;flex-shrink:0}.ca-card-copy{flex:1;min-width:0}.ca-card-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-weight:650;font-size:16px}.ca-card-title small{font-size:13px;color:#718096;font-weight:400}.ca-card-title .ca-status{margin:0 0 0 auto}.ca-card-detail{display:block;font-size:12px;color:#7a879a;margin-top:6px}.ca-chevron{font-size:24px;color:#8492a4}.ca-panel-tabs{display:flex;background:#f0f3f7;border-radius:10px;padding:5px;margin-bottom:16px}.ca-panel-tabs button{flex:1;border:0;text-align:center;font-size:15px;min-height:45px;background:transparent}.ca-panel-tabs [aria-selected=true]{background:#fff;color:#1a73e8;box-shadow:0 1px 5px #1c33491a}
.ca-dialog .ca-daily-fields{grid-template-columns:1fr}.ca-dialog .ca-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ca-dialog .ca-picker-extras{grid-column:1/-1}.ca-dialog .ca-field>p:empty{display:none}.ca-dialog .ca-field>p{min-height:0}.ca-dialog .ca-picker>button{height:100%}
@media(max-width:600px){.ca-layout-switch{display:none}.ca-root .ca-student-card{padding:15px 12px;gap:10px}.ca-avatar{width:36px;height:36px;font-size:16px}.ca-card-title{font-size:15px;gap:6px}.ca-dialog .ca-picker{grid-template-columns:1fr}.ca-dialog .ca-picker-extras{grid-column:auto}}

.ca-lesson-bar{background:#fff;border:1px solid #d7e1ed;border-radius:14px;padding:18px;margin-bottom:16px;display:flex;gap:12px;align-items:end;flex-wrap:wrap;color:#24334a}
.ca-lesson-bar>div:first-child{flex:1;min-width:220px}.ca-lesson-bar p{margin:7px 0 0;font-size:13px;line-height:1.6}.ca-lesson-bar>.ca-label{flex:2;min-width:250px}.ca-lesson-bar select,.ca-lesson-bar input{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#24334a;font-size:14px;box-sizing:border-box}
.ca-lesson-form{display:flex;gap:12px;flex-wrap:wrap;width:100%;padding-top:12px;border-top:1px solid #e5ebf2}.ca-lesson-form>.ca-label{flex:1;min-width:220px}.ca-lesson-form>p,.ca-lesson-current{width:100%}.ca-lesson-current{background:#eff7ff;padding:10px;border-radius:8px}.ca-workspace .ca-primary,.ca-workspace .ca-secondary{cursor:pointer;border-radius:8px;padding:10px 14px}.ca-workspace .ca-primary{border:1px solid #235da3;background:#235da3;color:#fff}.ca-workspace .ca-secondary{border:1px solid #cbd5e1;background:white;color:#24334a}.ca-workspace button:disabled{opacity:.55;cursor:default}
@media(max-width:600px){.ca-lesson-bar{padding:12px;display:block}.ca-lesson-bar>.ca-label,.ca-lesson-bar>button{margin-top:12px}.ca-lesson-form{display:block}.ca-lesson-form>.ca-label{margin-bottom:12px}.ca-lesson-form button{width:100%}}
