body{background:#f6f7fb}.online-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e4e8f0;padding:18px max(20px,calc((100vw - 1150px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}.online-brand{font-size:28px;font-weight:800;color:#3159e6;text-decoration:none;white-space:nowrap}.online-brand span{font-size:18px;color:#14213d}#nav{display:flex;gap:8px;flex-wrap:wrap}.online-main{max-width:1150px;margin:36px auto;padding:0 20px}.online-main>.card{margin-bottom:20px}.online-main h1{font-size:32px;margin:0 0 15px}.online-main h2{font-size:22px;margin-bottom:15px}.online-main p{line-height:1.8}.online-main .field{margin-bottom:18px}.online-main input,.online-main textarea,.online-main select{max-width:100%;width:100%;box-sizing:border-box}.online-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.online-login{max-width:480px;margin:50px auto}.online-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #edf0f7}.online-row>div{min-width:0}.online-reader{white-space:normal;overflow-wrap:anywhere;line-height:1.9}.online-reader p{margin:8px 0}.online-reader h3{margin:20px 0 8px}.online-chat{display:flex;flex-direction:column;gap:12px;max-height:550px;overflow:auto;padding:12px 0}.online-bubble{background:#edf1ff;padding:16px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:90%}.online-bubble.user{align-self:flex-end;background:#fff;border:1px solid #d9dff0}.online-kpi{font-size:28px;font-weight:800;color:#3159e6}.online-note{color:#60708b;font-size:14px}.online-table{width:100%;border-collapse:collapse;font-size:14px}.online-table td,.online-table th{text-align:left;border-bottom:1px solid #e4e8f0;padding:9px;vertical-align:top}.table-scroll{overflow:auto}.online-main button:disabled{opacity:.5;cursor:wait}.online-main audio{max-width:100%;width:320px}.danger-text{color:#bd3030}.offline-marker{background:#fff4de;padding:14px;border-radius:8px}.online-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.online-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#eef2fa;padding:15px;border-radius:8px}.online-compact{max-width:780px}@media(max-width:650px){.online-header{position:static;align-items:flex-start;flex-direction:column;padding:16px}.online-main{margin:22px auto;padding:0 14px}.online-grid{grid-template-columns:1fr}.online-main h1{font-size:26px}.online-row{align-items:flex-start;flex-direction:column}.online-header .button{padding:8px 11px}.card{padding:20px}.online-bubble{max-width:100%}}

#nav{flex-direction:row;align-items:center}

.account-menu{position:relative}.account-menu summary{cursor:pointer;padding:10px;list-style:none}.account-menu>div{position:absolute;right:0;top:100%;background:white;border:1px solid #e4e8f0;border-radius:10px;padding:10px;min-width:170px;display:flex;flex-direction:column;gap:8px;z-index:20}.account-menu a{text-align:center}

.practice-confirm{margin-top:24px;padding-top:22px;border-top:1px solid #e4e8f0}.online-main .consent-line{display:flex;align-items:flex-start;gap:10px;line-height:1.65;cursor:pointer;margin:0}.online-main input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin:4px 0 0;accent-color:#3159e6}.consent-line span{flex:1;min-width:0}.online-main .consent-detail{margin:8px 0 18px 28px;font-size:13px;color:#60708b;line-height:1.65}.practice-confirm .button-row{margin-top:16px}.online-main .field>span{display:block;margin-bottom:8px}

.model-wait{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;gap:14px;background:#14213d;color:white;padding:18px 22px;border-radius:12px;box-shadow:0 8px 30px #14213d30;width:min(520px,calc(100vw - 32px));box-sizing:border-box;pointer-events:none}.model-wait strong{font-size:16px}.model-wait p{margin:6px 0 0;font-size:13px;line-height:1.6;color:#d8e1f5}.wait-spinner{width:22px;height:22px;flex:0 0 22px;border:3px solid #ffffff40;border-top-color:white;border-radius:50%;animation:wait-spin 1s linear infinite}@keyframes wait-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.wait-spinner{animation:none}}

.online-reader{max-width:880px;line-height:1.95}#import-results{margin-top:24px;padding:20px;background:#f6f7fb;border-radius:12px}#import-results progress{width:100%;accent-color:#3159ed}

/* 运营后台题库表格：高信息密度，完成项不再以大卡片重复铺开。 */
.library-management .table-scroll{border:1px solid #e4e8f0;border-radius:12px}
.library-management .online-table{min-width:980px;background:#fff}
.library-management .online-table th{position:sticky;top:0;background:#f7f9fc;color:#52617a;font-size:12px;font-weight:700;white-space:nowrap}
.library-management .online-table td{padding:12px 10px;vertical-align:middle}
.library-management .online-table tbody tr:hover{background:#f8faff}
.library-title-cell{min-width:230px}.library-title-cell strong{display:block;color:#14213d}.library-title-cell small{display:block;margin-top:4px;color:#8a96aa;font-size:11px}
.library-count{color:#60708b;font-size:13px;white-space:nowrap}
.library-management .index-state{margin:0;white-space:nowrap}
.publish-state{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.publish-state.draft{background:#fff4de;color:#94620a}.publish-state.published{background:#e7f4ee;color:#18724f}.publish-state.disabled{background:#eef1f5;color:#667085}
.library-actions{min-width:190px;gap:6px;flex-wrap:wrap}.library-actions .button{padding:7px 10px;font-size:12px;white-space:nowrap}
.import-result{padding:10px 12px;border-radius:8px}.import-result.success{background:#e7f4ee;color:#18724f}.import-result.failed{background:#fff0f0;color:#a52a2a}
@media(max-width:650px){.library-management .online-table{min-width:920px}.library-management .table-scroll{margin-inline:-8px}.library-management .online-table td,.library-management .online-table th{padding:10px 8px}}

/* 题库管理是一张主表；导入流程放进弹窗，不再用多层卡片挤压表格。 */
body.admin-portal[data-page="library"] .online-main{max-width:1500px;margin-top:24px}
.library-page{min-width:0}
.library-page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}
.library-page-head h1{margin:0 0 6px;font-size:30px}.library-page-head p{margin:0;color:#60708b;font-size:14px}
.library-table-shell{overflow:hidden;border:1px solid #dfe5ee;border-radius:14px;background:#fff;box-shadow:0 8px 28px #253b6b0a}
.library-table-shell .table-scroll{max-height:calc(100vh - 205px);overflow:auto}
.library-table-shell .online-table{min-width:1040px}.library-table-shell .online-table th{position:sticky;top:0;z-index:2;background:#f5f7fb}
.library-empty{padding:72px 24px;text-align:center}.library-empty h2{margin-bottom:8px}
.import-dialog{width:min(760px,calc(100vw - 32px));max-height:min(88vh,900px);box-sizing:border-box;overflow:auto;border:0;border-radius:16px;padding:0;background:#fff;color:#14213d;box-shadow:0 24px 80px #0f172a40}
.import-dialog::backdrop{background:#0f172a80;backdrop-filter:blur(3px)}
.dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 18px;border-bottom:1px solid #e4e8f0;background:#fff}
.dialog-head h2{margin:0 0 6px}.dialog-head p{margin:0;color:#60708b;font-size:13px}
.dialog-close{width:36px;height:36px;flex:0 0 36px;border:0;border-radius:9px;background:#eef2f8;color:#52617a;font-size:25px;line-height:1;cursor:pointer}
.import-dialog #import-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;padding:22px 26px}
.import-dialog #import-form>.field:nth-of-type(3),.import-dialog .import-advanced,.import-dialog .dialog-actions{grid-column:1/-1}
.import-dialog .field{margin:0}.import-advanced{border:1px solid #e4e8f0;border-radius:10px;padding:12px 14px}.import-advanced summary{cursor:pointer;font-weight:700;color:#52617a}.import-advanced[open] summary{margin-bottom:16px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.import-dialog #import-results{margin:0 26px 26px}
@media(max-width:650px){body.admin-portal[data-page="library"] .online-main{width:100%;padding:18px 12px 56px}.library-page-head{align-items:flex-start;flex-direction:column}.library-page-head .button-row{width:100%}.library-page-head .button{flex:1}.library-table-shell .table-scroll{max-height:none}.import-dialog #import-form{grid-template-columns:1fr;padding:18px}.import-dialog #import-form>*{grid-column:1}.dialog-head{padding:20px 18px 14px}.import-dialog #import-results{margin:0 18px 18px}}
