:root{--bg-primary: #fbfaf7;--bg-secondary: #ffffff;--bg-soft: #f4f7f2;--bg-panel: #ffffff;--bg-input: #f8f8f5;--bg-selected: #e8f1ea;--border-color: #e4e1d8;--border-strong: #d4d0c4;--divider: #ece8df;--text-primary: #1f2522;--text-secondary: #58645e;--text-muted: #8a918b;--text-label: #4e5a54;--brand-primary: #2f6b4f;--brand-primary-hover: #25563f;--brand-secondary: #346f8f;--brand-warm: #c6782f;--success-color: #2f7d52;--warning-color: #b98224;--danger-color: #c94f45;--info-color: #346f8f;--tag-grammar-bg: #eaf2ff;--tag-grammar-text: #2f5f9d;--tag-vocab-bg: #fff3da;--tag-vocab-text: #8a5a12;--tag-logic-bg: #e9f5ef;--tag-logic-text: #2f6b4f;--tag-careless-bg: #f7e9e7;--tag-careless-text: #a5483f;--shadow-panel: 0 1px 2px rgba(31, 37, 34, .05);--shadow-hover: 0 10px 28px rgba(31, 37, 34, .09)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans SC,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:var(--text-primary);background:var(--bg-primary);letter-spacing:0}button,input,select,textarea{font:inherit}button{border:0}.top-nav{position:sticky;top:0;z-index:20;min-height:68px;border-bottom:1px solid var(--divider);background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-inner{width:min(1320px,calc(100% - 40px));min-height:68px;margin:0 auto;display:flex;align-items:center;gap:20px}.brand{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--brand-primary);font-size:18px;font-weight:800;cursor:pointer;white-space:nowrap}.nav-links{display:flex;align-items:center;gap:6px;flex:1;overflow-x:auto;scrollbar-width:none}.nav-link{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}.nav-link.active{color:var(--brand-primary);background:var(--bg-selected)}.nav-actions{display:flex;align-items:center;gap:8px}.icon-text,.student-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;border-radius:10px;background:transparent;color:var(--text-primary);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.student-chip{background:var(--bg-soft)}.page-shell{width:100%;max-width:1240px;margin:0 auto;padding:32px 32px 56px}.page-shell.detail{max-width:1320px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-header h1{margin:0;font-size:28px;font-weight:700;line-height:1.2}.page-subtitle{max-width:760px;margin:8px 0 0;color:var(--text-secondary);font-size:14px;line-height:1.55}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:background .16s,border-color .16s,transform .16s;white-space:nowrap}.btn-primary{padding:0 18px;background:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-primary-hover);transform:translateY(-1px)}.btn-secondary{padding:0 16px;border:1px solid var(--border-color);background:#fff;color:var(--text-primary)}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong);background:#f8f8f4}.btn-secondary:disabled,.btn-primary:disabled{opacity:.52;cursor:not-allowed}.btn-secondary.compact{min-height:34px;padding:0 12px;font-size:13px}.panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-panel)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--divider)}.panel-header h2{margin:0;font-size:17px;font-weight:800}.panel-header span{color:var(--text-muted);font-size:13px;font-weight:650}.panel-body{padding:20px}.upload-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:20px;align-items:start}.dropzone{min-height:280px;margin:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1.5px dashed var(--border-strong);border-radius:12px;background:var(--bg-input);color:var(--text-secondary);text-align:center;cursor:pointer}.dropzone strong{color:var(--text-primary);font-size:18px}.dropzone span{max-width:360px;padding:0 16px;font-size:13px;line-height:1.5}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.file-list{padding:0 20px 20px}.file-list p{margin:0;color:var(--text-muted);font-size:14px}.empty-text{margin:0;color:var(--text-muted);font-size:14px;line-height:1.55}.file-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto 30px;gap:10px;align-items:center;min-height:42px;border-top:1px solid var(--divider);color:var(--text-secondary);font-size:14px}.file-row span{overflow-wrap:anywhere}.file-row small{color:var(--text-muted);font-size:12px;white-space:nowrap}.icon-button{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--divider);border-radius:6px;background:var(--surface);color:var(--text-muted);cursor:pointer}.icon-button:hover{color:var(--danger);border-color:#b91c1c59}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label{display:grid;gap:7px;color:var(--text-label);font-size:13px;font-weight:700}.wide-field{grid-column:1 / -1}.input,.select,.textarea{width:100%;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-input);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .18s,background-color .18s}.input,.select{height:42px;padding:0 12px}.textarea{min-height:96px;padding:12px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-primary);background:#fff}.submit-message{padding:12px 14px;border-radius:10px;background:var(--bg-soft);color:var(--text-secondary);font-size:14px;font-weight:700;line-height:1.45}.submit-message.success{background:#e9f5ef;color:var(--success-color)}.submit-message.error{background:#f7e9e7;color:var(--danger-color)}.submit-message.submitting{background:#fff3da;color:var(--warning-color)}.toolbar{display:flex;align-items:center;gap:10px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{background:#f7f6f0;color:var(--text-secondary);font-weight:700;text-align:left}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--divider);vertical-align:middle}.data-table td small{display:block;margin-top:4px;color:var(--text-muted);font-size:12px}.data-table tr:hover td{background:#faf9f4}.status-pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:999px;background:#f4f7f2;color:var(--text-secondary);font-size:12px;font-weight:700;white-space:nowrap}.status-pill.info{background:#eaf2ff;color:var(--info-color)}.status-pill.warning{background:#fff3da;color:var(--warning-color)}.status-pill.success{background:#e9f5ef;color:var(--success-color)}.status-pill.danger{background:#f7e9e7;color:var(--danger-color)}.tag-wrap{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:750}.tag-grammar{background:var(--tag-grammar-bg);color:var(--tag-grammar-text)}.tag-vocab{background:var(--tag-vocab-bg);color:var(--tag-vocab-text)}.tag-logic{background:var(--tag-logic-bg);color:var(--tag-logic-text)}.tag-careless{background:var(--tag-careless-bg);color:var(--tag-careless-text)}.analysis-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.question-nav{position:sticky;top:88px}.question-list{display:grid;gap:8px;padding:14px}.question-button{min-height:68px;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-color);border-radius:10px;background:#fff;color:var(--text-primary);text-align:left;cursor:pointer}.question-button.active{border-color:var(--brand-primary);background:var(--bg-selected)}.question-button>span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--bg-soft);font-weight:800}.question-button small{color:var(--text-secondary);overflow-wrap:anywhere}.question-button b{color:var(--brand-warm);font-size:13px}.question-button.correct b{color:var(--success-color)}.diagnostic-stack{display:grid;gap:20px}.original-paper-panel .panel-body{padding:14px}.resource-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.resource-card{display:grid;grid-template-rows:112px auto auto;gap:8px;min-width:0;padding:10px;border:1px solid var(--border-color);border-radius:8px;background:#fff;color:var(--text-primary);text-align:left;text-decoration:none;cursor:pointer}.resource-card:hover{border-color:var(--brand-primary);background:#fbfcf8}.resource-card img{width:100%;height:112px;object-fit:cover;border-radius:6px;border:1px solid var(--divider);background:var(--bg-soft)}.resource-card>svg{align-self:center;justify-self:center;color:var(--brand-secondary)}.resource-card strong,.resource-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-card strong{font-size:13px}.resource-card span{color:var(--text-muted);font-size:12px}.resource-card.unavailable{color:var(--text-muted);cursor:default}.preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:28px}.preview-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1f2522b8}.preview-shell{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1100px,100%);max-height:min(860px,92vh);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 20px 60px #0000003d}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:10px 14px 10px 18px;border-bottom:1px solid var(--divider)}.preview-header strong{overflow-wrap:anywhere}.preview-body{min-height:0;overflow:auto;background:#f3f4ef;padding:18px}.preview-body img{display:block;width:min(100%,980px);height:auto;margin:0 auto;border-radius:6px;background:#fff}.question-text{margin:0;color:var(--text-primary);font-size:16px;line-height:1.65}.answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.answer-box{display:grid;gap:8px;padding:14px;border:1px solid var(--border-color);border-radius:10px;background:#fcfbf7}.answer-box.wrong{border-left:4px solid var(--danger-color)}.answer-box span,.info-block span{color:var(--text-muted);font-size:12px;font-weight:800}.answer-box strong,.info-block strong{color:var(--text-primary);font-size:15px;line-height:1.55;overflow-wrap:anywhere}.diagnostic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.info-block,.root-cause{display:grid;gap:7px;padding:14px;border-radius:10px;background:#fcfbf7}.root-cause{grid-column:1 / -1;background:#fff8ea;border-left:4px solid var(--brand-warm)}.root-cause strong{font-size:14px}.root-cause p{margin:0;color:var(--text-secondary);line-height:1.6}.solution-list{margin:0;padding-left:22px;color:var(--text-secondary);line-height:1.7}.solution-list li+li{margin-top:8px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.stat-card{min-height:112px;display:grid;align-content:center;gap:8px;padding:22px;border:1px solid var(--border-color);border-radius:12px;background:#fff}.stat-card span{color:var(--text-secondary);font-size:13px;font-weight:700}.stat-card strong{font-size:30px}.review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.review-tasks{grid-column:1 / -1}.chart-list{display:grid;gap:16px}.bar-row{display:grid;grid-template-columns:120px minmax(0,1fr) 24px;align-items:center;gap:12px;color:var(--text-secondary);font-size:14px}.bar-track{height:10px;overflow:hidden;border-radius:999px;background:var(--bg-soft)}.bar-track div{height:100%;border-radius:inherit;background:var(--brand-primary)}.module-cloud{display:flex;flex-wrap:wrap;gap:10px}.module-cloud span{padding:10px 12px;border-radius:10px;background:var(--bg-soft);color:var(--brand-primary);font-size:14px;font-weight:750}.task-list{display:grid;gap:12px}.task-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--border-color);border-radius:10px}.task-row div{display:grid;gap:4px}.task-row span{color:var(--text-secondary);font-size:13px}.task-status{min-height:26px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;background:#fff3da;color:var(--warning-color)!important;font-weight:750;white-space:nowrap}.task-status.done{background:#e9f5ef;color:var(--success-color)!important}@media(max-width:980px){.nav-inner{width:min(100% - 24px,1320px);flex-wrap:wrap;padding:10px 0}.nav-actions{display:none}.page-shell{padding:24px 18px 42px}.page-header,.upload-grid,.analysis-layout,.review-grid{grid-template-columns:1fr}.page-header,.upload-grid,.analysis-layout{display:grid}.question-nav{position:static}.question-list{grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);overflow-x:auto}.stat-grid{grid-template-columns:1fr}}@media(max-width:720px){.form-grid,.answer-grid,.diagnostic-grid{grid-template-columns:1fr}.toolbar{width:100%;overflow-x:auto}.panel{overflow:hidden}.data-table{display:block;overflow-x:auto;white-space:nowrap}.dropzone{margin:14px}.bar-row{grid-template-columns:1fr;gap:6px}.task-row{grid-template-columns:24px minmax(0,1fr)}.task-status{grid-column:2;justify-self:start}}.version-badge{padding:2px 7px;border-radius:999px;background:var(--bg-soft);color:var(--text-secondary);font-size:11px;font-weight:700}.energy-chip{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 10px;border-radius:999px;background:#fff3da;color:#8a5a12;font-size:13px;font-weight:750}.user-toolbar{display:inline-flex;align-items:center;gap:6px}.phone-masked{color:var(--text-muted);font-size:12px;font-weight:600}.login-shell{display:flex;justify-content:center;padding-top:48px}.login-card{width:min(520px,100%)}.login-body{display:grid;gap:18px}.login-lead{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.65}.login-actions{display:grid;gap:10px}.login-features{margin:0;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.75}.notice-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;background:#eaf2ff;color:var(--info-color);font-size:13px;line-height:1.5}.task-recovery-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:20px;border-color:var(--brand-primary);background:var(--bg-soft)}.task-recovery-info{display:flex;align-items:center;gap:10px;font-size:14px}.task-recovery-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spin-icon{animation:spin 1.1s linear infinite;color:var(--brand-primary)}@keyframes spin{to{transform:rotate(360deg)}}.dropzone.drag-active{border-color:var(--brand-primary);background:var(--bg-selected)}.file-row-ordered{grid-template-columns:28px 18px minmax(0,1fr) auto auto}.file-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--bg-soft);color:var(--brand-primary);font-size:12px;font-weight:800}.file-row-actions{display:inline-flex;align-items:center;gap:4px}.field-group{display:grid;gap:8px}.field-label{color:var(--text-label);font-size:13px;font-weight:700}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.choice-chip{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 12px;border:1px solid var(--border-color);border-radius:999px;background:#fff;color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease}.choice-chip:hover{border-color:var(--brand-primary)}.choice-chip.active{border-color:var(--brand-primary);background:var(--bg-selected);color:var(--brand-primary)}.tag-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.quote-confirm-card{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--brand-warm);border-radius:10px;background:#fff8ea;font-size:14px}.quote-confirm-card p{margin:0;color:var(--text-secondary)}.quote-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mode-toggle{display:inline-flex;padding:4px;border:1px solid var(--border-color);border-radius:12px;background:#fff}.mode-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:750;cursor:pointer}.mode-button.active{background:var(--bg-selected);color:var(--brand-primary)}.filter-panel{margin-bottom:18px;padding:14px 16px}.filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(130px,1fr)) auto auto;gap:10px;align-items:center}.search-box{position:relative;display:flex;align-items:center}.search-box>svg{position:absolute;left:12px;color:var(--text-muted);pointer-events:none}.search-box .input{padding-left:36px}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.paper-note{color:var(--brand-secondary)!important}.paper-summary-preview{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:280px;white-space:normal}.pagination-bar{display:flex;justify-content:center;padding:16px;border-top:1px solid var(--divider)}.modal-card{position:relative;z-index:1;width:min(540px,100%);border-radius:12px;background:#fff;box-shadow:0 20px 60px #0000003d;overflow:hidden}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.preview-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.zoom-label{min-width:46px;text-align:center;font-size:12px;font-weight:700;color:var(--text-secondary)}.summary-paragraph{margin:0;color:var(--text-primary);font-size:15px;line-height:1.7}.knowledge-response-box{margin-top:14px;padding:14px;border-radius:10px;background:var(--bg-soft);border-left:4px solid var(--brand-primary)}.knowledge-response-box strong{display:block;margin-bottom:6px;font-size:13px;color:var(--brand-primary)}.knowledge-response-box p{margin:0;font-size:14px;line-height:1.65;color:var(--text-secondary)}.materials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.material-card{padding:14px;border:1px solid var(--border-color);border-radius:10px;background:#fcfbf7}.material-card strong{display:block;margin-bottom:8px;color:var(--brand-primary);font-size:14px}.material-card ul{margin:0;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.65}.progress-skeleton-panel{margin-bottom:20px}.progress-hero{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.progress-hero h2{margin:0;font-size:18px}.skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skeleton-box{height:84px;border-radius:10px;background:linear-gradient(90deg,#f3f2ec 25%,#e8e6dd,#f3f2ec 75%);background-size:200% 100%;animation:shimmer 1.6s infinite}.skeleton-box.wide{grid-column:1 / -1;height:120px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:980px){.filter-grid{grid-template-columns:1fr 1fr}.materials-grid{grid-template-columns:1fr}}@media print{body{background:#fff}.no-print,.top-nav,.question-nav,.original-paper-panel{display:none!important}.page-shell,.page-shell.detail{max-width:100%;padding:0}.analysis-layout{display:block}.panel{box-shadow:none;break-inside:avoid;margin-bottom:16px}}.login-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--bg-soft);color:var(--brand-primary);font-size:13px;font-weight:750;margin-bottom:12px}.login-card{padding:28px}.login-card h1{margin:0 0 8px;font-size:24px}.login-feature-item{display:flex;align-items:flex-start;gap:8px;color:var(--text-secondary);font-size:13px;line-height:1.6}.login-feature-item svg{color:var(--brand-primary);flex-shrink:0;margin-top:2px}.login-notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin:16px 0;border-radius:10px;background:#eaf2ff;color:var(--info-color);font-size:13px;line-height:1.55}.login-notice p{margin:4px 0 0}.login-primary-btn,.login-dev-btn{width:100%}.energy-pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;background:#fff3da;color:#8a5a12;font-size:13px;font-weight:750}.task-banner-info{display:flex;align-items:flex-start;gap:12px}.task-banner-info svg{color:var(--brand-primary);flex-shrink:0;margin-top:2px}.task-banner-info p{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.task-banner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dropzone.dragging{border-color:var(--brand-primary);background:var(--bg-selected)}.file-thumb{width:34px;height:34px;object-fit:cover;border-radius:6px;border:1px solid var(--divider)}.file-meta{display:grid;gap:2px;min-width:0}.file-actions{display:inline-flex;align-items:center;gap:4px}.chip-selector{display:flex;flex-wrap:wrap;gap:8px}.chip-option{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:0 12px;border:1px solid var(--border-color);border-radius:999px;background:#fff;color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease}.chip-option.active{border-color:var(--brand-primary);background:var(--bg-selected);color:var(--brand-primary)}.tag-chip{padding:0 8px 0 10px}.tag-chip-main{background:transparent;color:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:4px 2px}.tag-chip-delete{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:transparent;color:var(--text-muted);cursor:pointer}.tag-chip-delete:hover{color:var(--danger-color)}.tag-field{display:grid;gap:10px}.tag-field-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--text-label);font-size:13px;font-weight:700}.tag-creator{display:inline-flex;align-items:center;gap:6px}.compact-input{height:34px;width:160px;font-size:13px}.preview-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.zoom-indicator{min-width:48px;text-align:center;font-size:12px;font-weight:700;color:var(--text-secondary)}.resource-thumb-placeholder{display:grid;place-items:center;width:100%;height:112px;border-radius:6px;border:1px solid var(--divider);background:var(--bg-soft);color:var(--text-muted);font-size:12px}
