:root{--navy:#0b316f;--blue:#0a78e8;--blue2:#1d8ff3;--orange:#ff8a21;--bg:#eef5fc;--card:#fff;--text:#10213d;--muted:#718096;--border:#dce7f2;--danger:#d83a45;--shadow:0 14px 38px rgba(37,75,120,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}
.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 20% 20%,#fff 0,#e9f4ff 32%,#daeafb 100%)}.login-card{width:min(420px,92vw);background:rgba(255,255,255,.9);backdrop-filter:blur(18px);padding:42px;border-radius:28px;box-shadow:0 30px 80px rgba(28,70,115,.2);border:1px solid rgba(255,255,255,.7)}.login-card h1{margin:20px 0 6px}.brand-mark{display:grid;place-items:center;width:76px;height:76px;border-radius:24px;background:linear-gradient(145deg,var(--navy),var(--blue));color:white;font-weight:800;letter-spacing:2px;box-shadow:0 12px 30px rgba(10,120,232,.3)}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:12px}
.stack{display:grid;gap:18px;margin-top:28px}label{display:grid;gap:8px;font-size:14px;font-weight:600}input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;border-radius:12px;padding:11px 13px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,120,232,.12)}textarea{min-height:100px;resize:vertical}.message{margin-top:16px;color:var(--danger);min-height:22px}
.btn{border:0;border-radius:12px;padding:11px 18px;cursor:pointer;font-weight:700}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 9px 22px rgba(10,120,232,.24)}.btn.secondary{background:#eaf4ff;color:var(--blue)}.btn.orange{background:linear-gradient(135deg,#ff9b36,var(--orange));color:#fff}.btn.danger{background:#fff0f1;color:var(--danger)}.btn.ghost{background:#fff;border:1px solid var(--border);color:var(--text)}.btn.small{padding:7px 10px;border-radius:9px;font-size:13px}.link-button,.icon-button{border:0;background:transparent;color:inherit;cursor:pointer}
.admin-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#082b60,#0a397e);color:white;padding:22px 16px;display:flex;flex-direction:column;box-shadow:8px 0 30px rgba(11,49,111,.08)}.sidebar-brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px;padding:0 10px 24px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;background:transparent;color:#c9dbf3;text-align:left;padding:12px 14px;border-radius:12px;cursor:pointer}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.13);color:#fff}.sidebar-footer{margin-top:auto;padding:16px 12px 4px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;align-items:center;font-size:13px}.sidebar-footer .link-button{color:#b9d5f8}.main-content{min-width:0}.topbar{height:104px;padding:24px 34px;display:flex;align-items:center;justify-content:space-between;background:rgba(238,245,252,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(220,231,242,.8)}.topbar h1{margin:0;font-size:26px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.content{padding:28px 34px 60px}
.grid{display:grid;gap:18px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid rgba(220,231,242,.8);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,rgba(10,120,232,.14),rgba(255,138,33,.09));right:-28px;top:-30px}.metric-label{font-size:13px;color:var(--muted)}.metric-value{font-size:30px;font-weight:800;margin-top:9px}.metric-note{font-size:12px;color:var(--muted);margin-top:6px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.section-title h2{margin:0;font-size:18px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{width:auto;min-width:160px}.switch-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border)}.switch-row:last-child{border-bottom:0}.switch{position:relative;width:48px;height:28px}.switch input{display:none}.switch span{position:absolute;inset:0;border-radius:999px;background:#cbd7e5;cursor:pointer;transition:.2s}.switch span:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:.2s}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:after{left:23px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.table-wrap{overflow:auto;background:#fff;border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf2f7;font-size:13px;vertical-align:middle}th{background:#f7fbff;color:#52657f;font-weight:700;position:sticky;top:0}tr:hover td{background:#fbfdff}.thumb{width:56px;height:42px;object-fit:cover;border-radius:8px;background:#edf3fa}.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#e8eff7}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;background:#edf4fb;color:#49617d}.badge.free{background:#e8f8ee;color:#1f8447}.badge.ad{background:#fff5e8;color:#b86a08}.badge.paid{background:#ebf2ff;color:#1c5fb9}.badge.invalid{background:#fff0f1;color:#bd2d38}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:60px 20px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:50;background:rgba(9,28,55,.48);display:grid;place-items:center;padding:24px}.modal-panel{width:min(900px,96vw);max-height:92vh;overflow:hidden;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(7,31,69,.34);display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:20px}.modal-header .icon-button{font-size:28px;color:var(--muted)}.modal-body{padding:24px;overflow:auto}.toast{position:fixed;right:28px;bottom:28px;background:#10213d;color:#fff;padding:13px 18px;border-radius:12px;z-index:100;box-shadow:0 12px 30px rgba(0,0,0,.22)}.progress-bar{height:9px;border-radius:999px;background:#e8eff7;overflow:hidden}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--orange))}.chart-bars{display:grid;gap:10px}.chart-row{display:grid;grid-template-columns:100px 1fr 60px;gap:10px;align-items:center;font-size:12px}.chart-row .bar{height:12px;border-radius:999px;background:#e8eff7;overflow:hidden}.chart-row .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#69b7ff);border-radius:999px}.upload-drop{border:2px dashed #bfd3e8;border-radius:16px;padding:28px;text-align:center;background:#f9fcff}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.media-item{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:white}.media-item img,.media-item video{width:100%;height:120px;object-fit:cover;background:#eaf0f7}.media-item .meta{padding:10px;font-size:12px;word-break:break-all}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs button{border:0;background:#e9f1fa;padding:9px 14px;border-radius:10px;cursor:pointer}.tabs button.active{background:var(--blue);color:white}
@media(max-width:1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.main-content{min-width:0}.topbar{position:static;padding:20px}.content{padding:18px}.grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.toolbar input,.toolbar select{width:100%}}

.required-mark{color:var(--danger);margin-left:4px}.form-error{padding:12px 14px;border:1px solid #f1b9be;border-radius:12px;background:#fff2f3;color:var(--danger);font-size:14px;font-weight:600}.form-error:empty{display:none}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(216,58,69,.12)}button:disabled{cursor:not-allowed;opacity:.62}
.field-help{margin-top:-8px;padding:10px 12px;border-radius:10px;background:#eef6ff;color:#49647f;font-size:13px;line-height:1.55}

/* V2.7 unified image uploader */
.image-uploader{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:#fbfdff}.image-url-label{margin:0}.image-uploader-body{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:stretch}.image-dropzone{min-height:150px;border:2px dashed #a9c6e4;border-radius:14px;background:#f5faff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:20px;cursor:pointer;color:#47627f;transition:border-color .18s,background .18s,transform .18s}.image-dropzone:hover,.image-dropzone:focus,.image-dropzone.is-dragover{outline:0;border-color:var(--blue);background:#eaf5ff;transform:translateY(-1px)}.image-dropzone[aria-busy=true]{cursor:wait;opacity:.72}.image-dropzone span{font-size:12px;color:var(--muted);font-weight:400;line-height:1.5}.image-drop-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e4f1ff;color:var(--blue);font-size:28px;line-height:1}.image-preview-box{min-height:150px;border:1px solid var(--border);border-radius:14px;background:#eef4fa;overflow:hidden;display:grid;place-items:center;position:relative}.image-preview-box img{width:100%;height:100%;min-height:150px;max-height:220px;object-fit:contain;background:#fff}.image-preview-box.is-empty{border-style:dashed}.image-preview-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px;line-height:1.5}.upload-progress{display:grid;grid-template-columns:1fr 48px;gap:10px;align-items:center}.upload-progress-track{height:10px;background:#e2ebf5;border-radius:999px;overflow:hidden}.upload-progress-track span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--orange));transition:width .12s}.upload-progress b{text-align:right;font-size:12px}.upload-status{font-size:12px;line-height:1.5}.success-text{color:#18864b}.error-text{color:var(--danger)}.image-uploader.is-uploading{box-shadow:0 0 0 3px rgba(10,120,232,.08)}

/* V2.7 Banner native drag sorting */
.banner-card{min-width:0}.banner-sort-tip{margin:5px 0 0;font-size:12px}.banner-table{min-width:690px}.banner-table .drag-cell{width:48px;text-align:center;padding-left:8px;padding-right:8px}.drag-handle{border:0;background:#eaf3fd;color:#46627f;width:34px;height:34px;border-radius:9px;cursor:grab;font-size:18px;line-height:1}.drag-handle:active{cursor:grabbing}.banner-row{transition:opacity .16s,transform .16s,box-shadow .16s}.banner-row.is-dragging{opacity:.45;box-shadow:0 12px 28px rgba(11,49,111,.18)}.banner-row.is-dragging td{background:#eef7ff}.banner-thumb{width:78px;height:48px}.is-saving-order{opacity:.65;pointer-events:none}

@media(max-width:760px){.image-uploader-body{grid-template-columns:1fr}.image-preview-box{min-height:180px}.image-preview-box img{min-height:180px}}

/* V2.11: AI introduction editor */
.ai-generate-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;border:1px solid #cfe2f7;border-radius:14px;background:linear-gradient(135deg,#f4f9ff,#eef7ff)}
.ai-generate-panel .actions{flex-wrap:wrap;justify-content:flex-end}
.ai-config-actions{margin-top:4px}
@media(max-width:760px){.ai-generate-panel{align-items:flex-start;flex-direction:column}.ai-generate-panel .actions{justify-content:flex-start}}


/* V2.12: chapter batch import */
.chapter-manager-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.bulk-import-guide{display:grid;gap:9px;padding:15px 16px;border:1px solid #cfe2f7;border-radius:14px;background:#f4f9ff;line-height:1.55}
.bulk-import-guide code{display:block;padding:10px 12px;border-radius:9px;background:#10213d;color:#fff;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.bulk-import-textarea{min-height:300px;line-height:1.65;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;white-space:pre;overflow:auto}
.bulk-import-example{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fbfdff}
.bulk-import-example pre{margin:9px 0 0;padding:12px;border-radius:9px;background:#eef4fa;white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.6}
.import-error-list{max-height:300px;overflow:auto;font-weight:400}
.import-error-list>strong{display:block;margin-bottom:8px}
.import-error-list ol{margin:0;padding-left:24px;display:grid;gap:10px}
.import-error-list li{padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.7);line-height:1.55}
.import-error-list code{display:block;margin-top:5px;color:#7a2830;word-break:break-all;white-space:pre-wrap;font-size:12px}
@media(max-width:760px){.section-title{align-items:flex-start;gap:12px}.chapter-manager-actions{justify-content:flex-start}.bulk-import-textarea{min-height:240px}}
.community-admin-images{display:flex;gap:6px;flex-wrap:wrap;max-width:160px}.community-admin-thumb{width:46px;height:46px;border-radius:8px;object-fit:cover;border:1px solid #dbe5f0}.wide-text{min-width:180px;max-width:360px;white-space:normal;line-height:1.5}.placement-preview{display:flex;align-items:center;gap:10px;min-width:180px;max-width:320px}.placement-preview img{width:76px;height:48px;object-fit:contain;border-radius:8px;background:#f5f8fc;border:1px solid #e1e8f0}.placement-preview>div{min-width:0;line-height:1.4}.placement-preview strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.placement-preview>div>div{font-size:12px;color:#718096;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.toolbar-spacer{flex:1 1 auto}.check-col{width:42px;text-align:center}.check-col input{width:18px;height:18px}.community-batch-toolbar select{min-width:140px}.community-batch-toolbar .btn{white-space:nowrap}

/* V2.15: anti-spam and API CC security settings */
.security-checkbox{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#f8fbff;font-weight:600}
.security-checkbox input{width:18px;height:18px;flex:0 0 auto;margin:0}

/* V2.16: home quick entries and article administration */
.quick-entry-note{margin-bottom:18px}.quick-entry-note p{margin:8px 0 0}.quick-entry-thumb{width:52px;height:52px;border-radius:14px;object-fit:contain;background:#f4f8fc;border:1px solid var(--border)}.quick-entry-symbol{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#fff3e5;color:#f18118;font-size:24px;font-weight:800}.quick-target-editor{min-height:60px}

/* V2.17: resource rich-text introduction editor */
.rich-text-field{display:grid;gap:10px}.rich-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border:1px solid var(--border);border-bottom:0;border-radius:14px 14px 0 0;background:#f6f9fd}.rich-editor{min-height:300px;max-height:520px;overflow:auto;padding:18px;border:1px solid var(--border);border-radius:0 0 14px 14px;background:#fff;line-height:1.75;outline:0;word-break:break-word}.rich-editor:empty:before{content:attr(data-placeholder);color:#91a1b4;pointer-events:none}.rich-editor:focus,.rich-editor.is-dragover{border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,120,232,.10)}.rich-editor img{display:block;max-width:100%;height:auto;margin:14px auto;border-radius:10px;background:#f2f6fa}.rich-editor h1,.rich-editor h2,.rich-editor h3,.rich-editor h4{margin:16px 0 8px;line-height:1.4}.rich-editor p{margin:8px 0}.rich-upload-status{font-size:12px;line-height:1.5}.rich-upload-progress{margin-top:2px}

/* V2.17.6: unified checkbox field alignment */
input[type="checkbox"]{width:20px;height:20px;min-width:20px;padding:0;margin:0;accent-color:var(--blue);cursor:pointer}
.checkbox-field{display:flex!important;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:#fbfdff;line-height:1.4;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}
.checkbox-field:hover{border-color:#b8d2ec;background:#f5faff}
.checkbox-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,120,232,.10)}
.checkbox-field .checkbox-label{display:block;min-width:0;font-weight:600;overflow-wrap:anywhere}
.checkbox-field>input[type="checkbox"]{flex:0 0 20px;order:2}
.form-grid>.checkbox-field{align-self:end}
.stack>.checkbox-field{width:100%}
.security-checkbox{line-height:1.4}
.security-checkbox input[type="checkbox"]{flex:0 0 20px}
.check-col input[type="checkbox"]{display:block;margin:0 auto}
@media(max-width:760px){.form-grid>.checkbox-field{align-self:stretch}}

/* V2.19: user feedback reply editor */
.feedback-source{padding:16px;border:1px solid var(--border);border-radius:14px;background:#f7fbff;line-height:1.65}.feedback-source p{margin:8px 0 10px;white-space:pre-wrap;word-break:break-word}.feedback-reply-preview{max-width:360px;white-space:pre-wrap;word-break:break-word;line-height:1.55;color:#28445f}

/* V2.20: chapter selection and sequential batch update */
.chapter-manager-heading{align-items:flex-start}
.chapter-selection-summary{margin-top:5px;line-height:1.45}
.chapter-table{min-width:780px}
.chapter-table .check-col{width:46px;padding-left:10px;padding-right:10px}
.chapter-title-cell{min-width:280px;max-width:520px;white-space:normal;line-height:1.5;word-break:break-word}
.chapter-batch-count{align-self:end;min-height:46px;display:flex;align-items:center;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:#fbfdff;color:var(--muted);font-weight:700}
.chapter-batch-count.is-valid{border-color:#8bd4aa;background:#f2fff7;color:#16834a}
.chapter-batch-count.is-invalid{border-color:#f0c3c8;background:#fff8f8;color:#a8424c}
.chapter-batch-textarea{min-height:260px}
.chapter-batch-map{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fbfdff}
.chapter-batch-map>strong{display:block;margin-bottom:10px}
.chapter-batch-map ol{margin:0;padding-left:24px;display:grid;gap:7px;max-height:240px;overflow:auto}
.chapter-batch-map li{display:grid;grid-template-columns:90px 90px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border-radius:9px;background:#eef5fc;line-height:1.45}
.chapter-batch-map li span:last-child{min-width:0;word-break:break-word}
@media(max-width:760px){.chapter-batch-map li{grid-template-columns:1fr}.chapter-batch-count{align-self:stretch}.chapter-manager-heading{flex-direction:column}}

/* V2.21: resource and game batch management */
.resource-batch-toolbar{margin:14px 0 12px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:#f8fbff;align-items:center}
.resource-batch-toolbar>div:first-child{display:grid;gap:4px}
.resource-admin-table{min-width:1120px}
.resource-admin-table .check-col{width:46px;padding-left:10px;padding-right:10px}
.resource-attr-badges{display:flex;gap:6px;flex-wrap:wrap;min-width:130px}
.resource-batch-field{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1.2fr);gap:14px;align-items:stretch;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fbfdff;transition:border-color .18s,background .18s,box-shadow .18s}
.resource-batch-field.is-active{border-color:#8fc7ef;background:#f2f9ff;box-shadow:0 0 0 3px rgba(10,120,232,.07)}
.resource-batch-field .resource-batch-toggle{align-self:stretch;margin:0}
.resource-batch-value{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin:0;font-weight:600}
.resource-batch-value>span{white-space:nowrap;color:var(--muted);font-size:12px}
.resource-batch-value input,.resource-batch-value select{min-width:0;width:100%}
.resource-batch-value input:disabled,.resource-batch-value select:disabled{opacity:.58;cursor:not-allowed;background:#edf3f8}
@media(max-width:900px){.resource-batch-field{grid-template-columns:1fr}.resource-batch-value{grid-template-columns:1fr}.resource-batch-toolbar{align-items:flex-start}.resource-batch-toolbar .toolbar-spacer{display:none}}

/* V2.22: feedback image upload and full administration */
.feedback-filter-toolbar{align-items:center;gap:10px;flex-wrap:wrap}.feedback-filter-toolbar>input{min-width:260px;flex:1 1 300px}.feedback-filter-toolbar>select{min-width:150px}.feedback-selection-summary{margin:0 0 10px;padding:8px 4px}.feedback-admin-table{min-width:1320px}.feedback-admin-table .check-col{width:46px}.feedback-content-preview{max-width:340px;white-space:pre-wrap;word-break:break-word;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}.feedback-admin-images{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:110px;max-width:190px}.feedback-admin-thumb{width:52px;height:52px;border-radius:9px;object-fit:cover;border:1px solid var(--border);background:#f4f8fc;cursor:pointer}.feedback-image-more{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:32px;border-radius:999px;background:#eaf4ff;color:var(--blue);font-size:12px;font-weight:800}.feedback-visibility{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.feedback-visibility.visible{background:#e7f8ee;color:#16834b}.feedback-visibility.hidden{background:#fff2dc;color:#a86500}.feedback-visibility.deleted{background:#fff0f1;color:var(--danger)}.feedback-row-actions{min-width:250px;flex-wrap:wrap}.feedback-detail-view{margin-top:0}.feedback-detail-images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.feedback-detail-images a{display:block;min-width:0}.feedback-detail-images img{display:block;width:100%;height:160px;border-radius:12px;object-fit:cover;border:1px solid var(--border);background:#f4f8fc}.feedback-detail-meta{display:flex;gap:10px 18px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fbfdff;color:var(--muted);font-size:13px}
@media(max-width:760px){.feedback-filter-toolbar>input,.feedback-filter-toolbar>select{min-width:100%;width:100%}.feedback-detail-images{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-detail-images img{height:130px}}
.feedback-process-status{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.feedback-process-status.pending{background:#fff2dc;color:#a86500}.feedback-process-status.processing{background:#e8f3ff;color:#0b6fc9}.feedback-process-status.resolved{background:#e5f7ed;color:#16834b}

/* V2.23: course batch management + pure image showcase mode */
.course-admin-table{min-width:1040px}.showcase-mode-card{border:1px solid #bdd9f3;background:linear-gradient(180deg,#f7fbff 0%,#eef7ff 100%)}
.showcase-mode-card .section-title{align-items:flex-start;gap:18px}.showcase-mode-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.showcase-table{min-width:720px}.showcase-table .drag-cell{width:54px;text-align:center}.showcase-thumb{display:block;width:150px;height:92px;object-fit:contain;border-radius:10px;background:#edf3f8;border:1px solid var(--border)}
.showcase-row.is-dragging{opacity:.45}.showcase-row.is-dragging td{background:#eef7ff}
@media(max-width:900px){.showcase-mode-card .section-title{flex-direction:column}.showcase-thumb{width:110px;height:72px}}

/* V2.24 video monitor */
.video-monitor-status{border:1px solid #dbe7f3;border-radius:12px;padding:12px;background:#f8fbff;}
.video-monitor-summary{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
.compact-table table{font-size:12px;}
.compact-table th,.compact-table td{padding:7px 8px;white-space:nowrap;}
