/* 登录页、教务与教师端共用的原生控件皮肤，保留键盘与屏幕阅读器行为。 */
select.control-select{appearance:none;-webkit-appearance:none;min-height:38px;border:1px solid #cfddd3;border-radius:10px;padding:8px 35px 8px 12px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' stroke='%23536f62' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;color:#29473b;box-shadow:0 1px 2px #284c3505;transition:border-color .18s,box-shadow .18s,background-color .18s;max-width:100%;cursor:pointer}
select.control-select:hover:not(:disabled){border-color:#85aa96;background-color:#fbfdfa}select.control-select:focus{outline:0;border-color:#558a71;box-shadow:0 0 0 3px #4e88691c}select.control-select:disabled{opacity:.6;cursor:not-allowed;background-color:#eef2ed;color:#7a8b81;box-shadow:none}select.control-select option{background:#fff;color:#29473b;padding:8px}select.control-select optgroup{color:#6a7f70;font-weight:650}
.number-control{position:relative;display:inline-block;vertical-align:middle;width:100px;max-width:100%;min-width:78px;border-radius:10px}.number-control>input[type=number]{appearance:textfield;-moz-appearance:textfield;width:100%!important;max-width:100%;min-width:0!important;min-height:38px;padding:8px 36px 8px 10px!important;border:1px solid #cfddd3;border-radius:10px;background:#fff;color:#29473b;font:inherit;font-variant-numeric:tabular-nums;transition:border-color .18s,box-shadow .18s}.number-control>input[type=number]:focus{outline:0;border-color:#558a71;box-shadow:0 0 0 3px #4e88691c}.number-control>input::-webkit-inner-spin-button,.number-control>input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-control>input:disabled{background:#eef2ed;color:#7a8b81}.number-control>input[aria-invalid=true]{border-color:#b74b43;background:#fff9f6}.number-step-buttons{position:absolute;right:4px;top:4px;bottom:4px;display:grid;grid-template-rows:1fr 1fr;gap:2px;width:25px}.number-step-buttons button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;line-height:1;border:0;border-radius:5px;background:#edf3ed;color:#416d53;padding:0;font:700 12px/1 system-ui;cursor:pointer;transition:background .16s,color .16s}.number-step-buttons button:hover:not(:disabled){background:#dce9df;color:#1c5238}.number-step-buttons button:active:not(:disabled){background:#cce0d1}.number-step-buttons button:focus-visible{outline:2px solid #56896b;outline-offset:1px}.number-step-buttons button:disabled{opacity:.38;cursor:not-allowed}
button[data-act=up],button[data-act=down]{min-width:32px!important;height:32px;border-radius:9px!important;background:#f0f5ef!important;border:1px solid #d4e1d4!important;color:#3a6b50!important;font-weight:700;box-shadow:0 1px 2px #25463308}button[data-act=up]:hover:not(:disabled),button[data-act=down]:hover:not(:disabled){background:#dfebdf!important;border-color:#8ead96!important}button[data-act=up]:disabled,button[data-act=down]:disabled{opacity:.4;cursor:not-allowed}
.self-study-preview{display:grid;gap:5px;padding:17px 18px;margin:18px 0;background:#eef5ed;border:1px solid #cbdccb;border-radius:12px;color:#315f47}.self-study-preview b{font-size:18px}.self-study-preview span{font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.live-sync-notice{padding:12px 16px;margin:12px 20px;border-radius:11px;border:1px solid #e4c6a1;background:#fff7e8;color:#835826;line-height:1.7}.live-sync-notice button{margin-left:12px}.sync-state{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#5d7968}.sync-state::before{content:'';width:6px;height:6px;border-radius:50%;background:#68a881;box-shadow:0 0 0 3px #68a88118}
@media(prefers-reduced-motion:reduce){select.control-select,.number-control>input,.number-step-buttons button{transition:none}}@media(forced-colors:active){select.control-select{appearance:auto;background-image:none}.number-step-buttons button{border:1px solid ButtonText}}
@media(pointer:coarse){select.control-select,.number-control>input[type=number]{min-height:48px}.number-step-buttons{width:30px;right:3px;top:3px;bottom:3px}.number-step-buttons button{font-size:14px}}
