
 .fit-project-page{display:grid;gap:14px}.fp-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.fp-heading>strong{margin-right:auto}.fp-heading small,.fp-heading>span{color:#8492a6}.fp-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fp-project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.fp-project-grid>button{display:grid;grid-template-columns:minmax(140px,1fr) 100px minmax(100px,1fr) 105px;align-items:center;gap:18px;text-align:left;border:1px solid #dfE7f0;background:#fff;border-radius:10px;padding:15px 16px;color:#163a59;cursor:pointer}.fp-project-grid>button:hover{border-color:#b9c6d2;background:#f6f8fa}.fp-project-grid strong{font-size:16px}.fp-project-grid span,.fp-project-grid small{color:#6b7f96}.fp-project-grid b{float:right;color:#2870d9}.fp-entry-note{font-size:12px;color:#7b8aa0;margin-bottom:12px}.fp-roster-head,.fp-student{display:grid;grid-template-columns:48px minmax(90px,1fr) minmax(110px,180px) minmax(100px,160px);gap:10px;align-items:center;padding:10px 12px}.fp-roster-head{background:#f2f6fb;color:#667c94;font-size:12px}.fp-student{border-bottom:1px solid #e8eef6}.fp-student>span{color:#7c8ea5}.fp-student input{width:100%;min-width:0;box-sizing:border-box;height:40px;border:1px solid #cddbed;border-radius:8px;padding:8px;font-size:16px;color:#173754;background:#fff}.fp-student input:focus{outline:2px solid #8bb9ff;border-color:#3a87ef}.fp-student input:disabled{background:#f3f5f8}.fp-save-state{font-size:12px;display:grid;gap:4px}.fp-save-state>span{color:#7f8b9a}.is-saved .fp-save-state>span{color:#18886b}.fp-row-note{grid-column:3/5;color:#8a98aa;font-size:11px}.fp-error{color:#db4141;font-size:12px}.is-error input{border-color:#db4141}.fp-save-state button{border:0;background:transparent;color:#d84848;cursor:pointer;text-align:left;padding:0}
 @media(max-width:600px){.fit-project-page{gap:10px}.fit-project-page .el-card__body{padding:14px}.fp-filters{grid-template-columns:1fr 1.3fr .8fr;gap:8px}.fp-project-grid{grid-template-columns:minmax(0,1fr);gap:8px}.fp-project-grid>button{padding:12px;grid-template-columns:minmax(0,1fr) 68px 78px;gap:10px}.fp-project-grid>button>.el-progress{grid-column:1/-1;grid-row:2}.fp-project-grid strong{font-size:14px}.fp-project-grid span,.fp-project-grid small{font-size:12px}.fp-roster-head,.fp-student{grid-template-columns:26px minmax(54px,1fr) minmax(82px,1.2fr) 56px;gap:7px;padding:10px 0}.fp-student strong{font-size:13px;overflow-wrap:anywhere}.fp-roster-head{font-size:11px}.fp-heading{gap:6px;flex-wrap:wrap}.fp-row-note{font-size:10px}.fp-entry-note{font-size:11px}}
 
@media(max-width:600px){.gms-school-workspace .fit-task-page .card-header{flex-wrap:wrap}.gms-school-workspace .fit-task-tools{width:100%;justify-content:flex-end}}

.fp-project-grid>button:focus-visible{outline:2px solid #a7b8c7;outline-offset:2px}.fp-project-grid .el-progress-bar__inner{background-color:#749995}.fp-project-grid small{white-space:nowrap}

/* Use in-page dropdowns so Android native picker themes cannot override the palette. */
.fp-filters .el-select{width:100%;min-width:0}
.fp-filters .el-select__wrapper{min-height:40px;border-radius:8px;background:#f3f5f7!important;box-shadow:0 0 0 1px #dce3e9 inset!important;color:#35495d}
.fp-filters .el-select__wrapper.is-focused{box-shadow:0 0 0 1px #879caf inset!important}
.fp-filters .el-select__selected-item{color:#35495d;font-size:13px}
.fp-filter-popup.el-popper{background:#f8fafb!important;border:1px solid #dce3e9!important;box-shadow:0 8px 24px rgba(36,55,74,.12)!important;--el-bg-color-overlay:#f8fafb;--el-fill-color-light:#edf2f5;--el-color-primary:#45637d}
.fp-filter-popup .el-popper__arrow::before{background:#f8fafb!important;border-color:#dce3e9!important}
.fp-filter-popup .el-select-dropdown__item{min-height:42px;height:auto;line-height:22px;padding:10px 16px;white-space:normal;color:#35495d!important;background:#f8fafb!important}
.fp-filter-popup .el-select-dropdown__item.is-hovering,.fp-filter-popup .el-select-dropdown__item:hover{background:#edf2f5!important}
.fp-filter-popup .el-select-dropdown__item.is-selected{background:#e4edf3!important;color:#294b64!important;font-weight:600}
@media(max-width:600px){.fp-filters .el-select__wrapper{padding:8px}.fp-filter-popup{max-width:calc(100vw - 24px)}}
/* Focus-free floating score keypad. */
.fit-keypad{position:fixed;right:14px;bottom:84px;width:240px;max-width:calc(100vw - 16px);z-index:2100;border:1px solid rgba(163,184,201,.65);border-radius:20px;padding:10px;box-sizing:border-box;background:rgba(239,245,250,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 30px #183c6426;color:#203b52}.fit-keypad header{display:flex;align-items:center;justify-content:space-between;cursor:grab;touch-action:none;user-select:none;padding:2px 2px 8px;font-size:14px;font-weight:600}.fit-keypad header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fit-keypad button{border:0;cursor:pointer;font:inherit;touch-action:manipulation;color:#203b52;border-radius:11px;background:rgba(255,255,255,.88);min-height:36px;box-shadow:0 1px 2px #25415c15}.fit-keypad button:active{background:#cfdfed;transform:scale(.96)}.fit-keypad button:disabled{opacity:.45;cursor:default}.fit-keypad header button{font-size:12px;background:transparent;box-shadow:none;white-space:nowrap}.fit-keypad output{display:block;text-align:right;font:600 23px/1.4 system-ui;padding:0 6px 8px;min-height:32px;overflow-wrap:anywhere}.fit-keypad output small{font:12px system-ui;color:#657d90}.fit-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:21px}.fit-keypad footer{display:grid;grid-template-columns:1fr 1fr 2fr;gap:6px;margin-top:6px}.fit-keypad .fit-keypad-enter{background:#376d98;color:#fff;font-size:14px}.fit-keypad-launch{position:fixed;right:16px;bottom:90px;z-index:2100;border:1px solid #c5d4e2;border-radius:24px;padding:11px 16px;background:#e9f1f5e8;color:#315975;box-shadow:0 4px 16px #25415c20}.fit-kb-selected .el-input__wrapper{box-shadow:0 0 0 2px #4793af inset!important;background:#edf7fa!important}.fit-att-status{display:block;color:#9b681e;font-size:11px;line-height:1.4}.fit-att-context{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.fit-att-context label{display:flex;align-items:center;gap:8px;font-size:12px;color:#62768c}.fit-att-context .el-select{width:140px}
