/*
 * 原 React 组件到 Django 模板的适配层。
 * 颜色、阴影、字体与背景来自 frontend/upstream/index.css。
 * 不定义替代品牌色；保留原组件的尺寸、圆角及语义变量。
 */
:root { color-scheme:light; }
.dark { color-scheme:dark; }
body { margin:0; min-height:100vh; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none!important; }
h1 { font-size:1.875rem; line-height:1.3; margin:0 0 1rem; font-weight:600; }
h2 { font-size:1.125rem; line-height:1.5; margin:0 0 1rem; font-weight:600; }
h3 { font-size:1rem; line-height:1.5; margin:0 0 .75rem; font-weight:600; }
p { margin:0 0 .75rem; }
.icon { width:1rem; height:1rem; flex-shrink:0; display:inline-block; vertical-align:middle; }
.app-page { min-height:100vh; display:flex; flex-direction:column; position:relative; }
.app-glow { pointer-events:none; position:absolute; inset:0; overflow:hidden; z-index:0; }
.app-glow:before { content:''; position:absolute; top:0; right:0; width:600px; height:500px; border-radius:100%; opacity:.3; background:radial-gradient(ellipse at 70% 20%,hsl(var(--glow-accent)/.12),hsl(var(--glow-primary)/.07) 40%,transparent 70%); filter:blur(60px); }
.app-header { position:sticky; top:0; z-index:50; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:10px 48px; min-height:57px; border-bottom:1px solid hsl(var(--border)); backdrop-filter:blur(24px); }
.app-brand { display:flex; align-items:center; gap:12px; font-size:20px; font-weight:600; flex-shrink:0; letter-spacing:-.025em; }
.app-brand .company-logo { height:32px; width:88px; object-fit:contain; }
.app-brand > span { padding-left:12px; border-left:1px solid hsl(var(--border)); }
.desktop-nav { display:flex; align-items:center; gap:4px; }
.nav-link { border:0; border-radius:8px; padding:6px 12px; font-size:14px; font-weight:500; white-space:nowrap; color:hsl(var(--foreground)); }
.nav-link:hover { background:hsl(var(--accent)/.6); }
.nav-link.is-active { color:hsl(var(--primary)); font-weight:600; text-decoration:underline; text-underline-offset:6px; }
[data-nav-accent='/analytics'] { --decoration-color:338 65% 61%; }
[data-nav-accent='/manage'] { --decoration-color:160 57% 40%; }
.header-actions { display:flex; gap:8px; align-items:center; font-size:13px; flex-shrink:0; }
.account-name { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:0; border-radius:8px; padding:6px 10px; }
.account-name:hover { background:hsl(var(--accent)); }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border:0; border-radius:8px; background:transparent; color:hsl(var(--foreground)); }
.icon-button:hover { background:hsl(var(--accent)); }
.menu-toggle { display:none; }
.mobile-navigation { display:none; }
.app-main { flex:1; position:relative; z-index:10; padding:32px 24px 40px; }
.page-shell { width:100%; max-width:1200px; margin:auto; }
.page-shell.narrow { max-width:1100px; }
.app-footer { position:relative; z-index:10; margin-top:auto; border-top:1px solid hsl(var(--border)); background:hsl(var(--secondary)/.7); }
.footer-inner { max-width:1152px; margin:auto; padding:36px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.footer-brand { display:flex; gap:10px; align-items:center; font-weight:600; }
.footer-brand img { width:88px; height:32px; }
.footer-links { display:flex; gap:22px; flex-wrap:wrap; font-size:13px; color:hsl(var(--muted-foreground)); }
.footer-links a { text-decoration:underline; text-underline-offset:3px; }
.footer-links a:hover { color:hsl(var(--foreground)); }
.footer-copy { font-size:12px; color:hsl(var(--muted-foreground)); margin-top:10px; }
.demo-banner { text-align:center; padding:5px 16px; background:hsl(var(--secondary)); color:hsl(var(--muted-foreground)); font-size:11px; border-bottom:1px solid hsl(var(--border)/.3); }
.skip { position:absolute; left:8px; top:-100px; background:hsl(var(--card)); padding:8px; z-index:100; }
.skip:focus { top:0; }
.discovery { display:flex; flex-direction:column; gap:24px; }
.discovery-hero h1 { margin:0; }
.discovery-hero p { margin-bottom:0; }
.search-input { padding:0 12px 0 40px!important; height:40px; border:0!important; background:transparent!important; box-shadow:none!important; }
.search-icon { position:absolute; top:50%; left:12px; transform:translateY(-50%); color:hsl(var(--muted-foreground)); pointer-events:none; }
.search-filters { display:flex; flex-direction:column; gap:16px; }
.filter-pills { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.filter-label { flex-shrink:0; font-size:14px; font-weight:500; color:hsl(var(--muted-foreground)); margin-right:2px; }
.filter-pill { display:inline-flex; justify-content:center; align-items:center; gap:6px; min-height:32px; padding:4px 12px; font-size:12px; font-weight:500; border-radius:8px; border:1px solid hsl(var(--border)/.6); background:hsl(var(--card)); box-shadow:0 1px 1px rgb(0 0 0/.04); white-space:nowrap; }
.filter-pill:hover { background:hsl(var(--accent)); border-color:hsl(var(--border)); }
.filter-pill.is-selected { color:hsl(var(--accent-foreground)); background:hsl(var(--accent)); border-color:hsl(var(--ring)/.45); box-shadow:inset 0 1px 3px hsl(var(--ring)/.06); }
.filter-pill[data-resource-type]::before { content:''; width:6px; height:6px; border-radius:50%; background:hsl(var(--decoration-color)); }
.catalog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; }
.catalog-toolbar-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.catalog-toolbar-actions form { margin:0; }
.catalog-favorites { display:inline-flex; align-items:center; gap:7px; min-height:32px; margin:0; font-size:12px; white-space:nowrap; cursor:pointer; }
.catalog-favorites input[type=checkbox] { width:16px; height:16px; margin:0; padding:0; cursor:pointer; }
.catalog-toolbar .catalog-reset { min-height:32px; padding:4px 10px; font-size:12px; border-radius:8px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; color:hsl(var(--muted-foreground)); }
.catalog-result-count { justify-content:flex-end; }
.resource-card { min-width:0; }
.resource-card h3 { margin:0; }
.resource-card p { overflow-wrap:anywhere; }
.resource-card .icon { width:14px; height:14px; }
.resource-card-metrics { flex-wrap:wrap; row-gap:8px; }
.resource-card-metrics > span { white-space:nowrap; }
.resource-icon .icon { width:16px; height:16px; }
.card-title-link::after { content:''; position:absolute; inset:0; }
.resource-card:focus-within { outline:2px solid hsl(var(--ring)); outline-offset:3px; }
.card-title-link:focus { outline:none; }
.panel { padding:24px; margin-bottom:24px; border:1px solid hsl(var(--border)/.6); border-radius:12px; background:hsl(var(--card)); }
.hero { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px; margin-bottom:24px; border-radius:18px; border:1px solid hsl(var(--primary)/.1); }
.hero p { color:hsl(var(--muted-foreground)); margin:0; line-height:1.75; font-size:14px; }
.hero h1 { margin:8px 0; }
.eyebrow { font-size:12px; font-weight:600; letter-spacing:.15em; color:hsl(var(--primary)); }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 24px; }
.section-heading h2,.section-heading h3 { margin:0; }
.muted,.helptext { color:hsl(var(--muted-foreground)); }
.small,.helptext { font-size:12px; }
.small,.muted,td { overflow-wrap:anywhere; }
.error,.errorlist { color:hsl(var(--destructive)); }
.errorlist { padding:0 0 0 20px; font-size:13px; margin:8px 0; list-style:disc; }
.notice { border-radius:10px; padding:12px 16px; margin-bottom:20px; background:hsl(var(--accent)/.6); border:1px solid hsl(var(--ring)/.2); font-size:13px; line-height:1.7; }
label { display:block; font-size:14px; font-weight:500; margin:16px 0 6px; }
input,select,textarea { width:100%; min-width:0; border-radius:10px; border:1px solid hsl(var(--input)); background:hsl(var(--background)/.5); padding:8px 12px; font-size:14px; color:hsl(var(--foreground)); }
input::placeholder,textarea::placeholder { color:hsl(var(--text-placeholder)); }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid hsl(var(--ring)/.3); outline-offset:2px; }
input[type=checkbox] { width:auto; margin-right:7px; accent-color:hsl(var(--primary)); }
input:disabled,select:disabled,textarea:disabled { opacity:.7; }
textarea { min-height:100px; resize:vertical; }
input[type=file] { padding:10px; }
input[type=file]::file-selector-button { border:1px solid hsl(var(--border)); background:hsl(var(--secondary)); color:inherit; border-radius:6px; margin-right:12px; padding:4px 10px; }
button:not(.icon-button),.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; max-width:100%; white-space:normal; overflow-wrap:anywhere; text-align:center; border:1px solid hsl(var(--primary)); border-radius:10px; min-height:36px; padding:8px 16px; font-size:14px; font-weight:500; color:hsl(var(--primary-foreground)); background:hsl(var(--primary)); box-shadow:inset 0 1px 0 hsl(0 0% 100%/.1),0 1px 2px rgb(0 0 0/.1),0 0 0 1px rgb(0 0 0/.04); transition:background-color .15s,border-color .15s,box-shadow .15s; }
button:not(.icon-button):hover:not(:disabled),.button:hover { opacity:.9; }
button.secondary,.button.secondary,button.text-button { border:1px solid hsl(var(--foreground)/.35)!important; color:hsl(var(--foreground))!important; background:hsl(var(--background))!important; box-shadow:0 1px 2px rgb(0 0 0/.06)!important; }
button.secondary:hover:not(:disabled),.button.secondary:hover,button.text-button:hover:not(:disabled) { background:hsl(var(--accent)/.6)!important; border-color:hsl(var(--primary))!important; opacity:1; }
button.text-button { font-size:13px; padding:6px 10px; }
.header-actions button.text-button { border:0!important; background:transparent!important; box-shadow:none!important; }
.header-actions button.text-button:hover:not(:disabled) { background:hsl(var(--accent)/.6)!important; }
button:disabled { cursor:not-allowed; opacity:.55; }
button:focus-visible,a:focus-visible { outline:2px solid hsl(var(--ring)); outline-offset:3px; }
.back-link { margin-bottom:16px; }
.full { width:100%; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:16px; }
.actions form { margin:0; }
.form-panel { max-width:780px; margin-left:auto; margin-right:auto; }
[data-resource-upload] textarea[name="notes"] { max-width:480px; min-height:64px; }
.resource-upload-field { margin-bottom:18px; }
.upload-dropzone { border:2px dashed hsl(var(--input)); border-radius:10px; padding:16px; }
.upload-dropzone p { margin-bottom:12px; }
.upload-dropzone.dragging,.upload-dropzone:focus-within { border-color:hsl(var(--primary)); background:hsl(var(--accent)/.35); }
.form-panel > p { margin-bottom:18px; }
.form-panel [id=id_tags] { display:grid; grid-template-columns:1fr 1fr; gap:2px 14px; }
.form-panel [id=id_tags] label { margin:4px 0; font-weight:400; }
.form-panel > .multiple-field,.form-panel > .multiple-field > p { margin-bottom:18px; }
.tag-suggestions-upload #id_suggested_tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; max-height:300px; overflow:auto; padding:3px; }
.tag-suggestions-upload textarea { min-height:64px; }
.tag-suggestions-upload #id_suggested_tags label,.tag-review-fields #id_tags label,.tag-review-fields #id_approved_new_tags label { margin:0; font-weight:400; }
.tag-suggestions-upload #id_suggested_tags label,.tag-review-fields #id_tags label,.tag-review-fields #id_approved_new_tags label { display:flex; align-items:flex-start; padding:8px; border:1px solid hsl(var(--foreground)/.35); border-radius:8px; cursor:pointer; overflow-wrap:anywhere; }
.tag-suggestions-upload #id_suggested_tags input,.tag-review-fields input[type=checkbox] { flex-shrink:0; margin-top:4px; }
.tag-suggestions-upload #id_suggested_tags label:has(input:checked),.tag-review-fields label:has(input:checked) { border-color:hsl(var(--primary)); background:hsl(var(--accent)/.6); }
.tag-suggestions-upload #id_suggested_tags label:has(input:focus-visible),.tag-review-fields label:has(input:focus-visible) { outline:2px solid hsl(var(--ring)); outline-offset:2px; }
.tag-review-suggestions,.tag-review-fields,.tag-review-results { margin:20px 0; overflow-wrap:anywhere; }
.tag-review-fields #id_tags,.tag-review-fields #id_approved_new_tags { display:grid; gap:6px; max-height:260px; overflow:auto; padding:3px; }
.tag-review-fields .multiple-field { margin-bottom:16px; }
.tag-review-fields .helptext { display:block; margin-top:8px; }
.two-col { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:24px; }
.resource-detail-layout { grid-template-columns:minmax(0,2fr) minmax(320px,1fr); align-items:start; }
.resource-management-actions { display:flex; flex-direction:column; align-items:stretch; gap:10px; margin-bottom:20px; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.wide { grid-column:1/-1; }
.empty { text-align:center; padding:48px 24px; }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.tags span,.badge { display:inline-block; border-radius:999px; background:hsl(var(--secondary)); color:hsl(var(--secondary-foreground)); font-size:12px; padding:3px 10px; }
.version,.list-row { padding:20px 0; border-bottom:1px solid hsl(var(--border)/.5); }
.version:last-child,.list-row:last-child { border:0; }
.version .section-heading { margin-bottom:12px; }
.tag-management { align-items:start; }
.tag-management > .panel:first-child { container-type:inline-size; }
.tag-group + .tag-group { margin-top:20px; }
.tag-group h3 { margin:0 0 8px; font-size:14px; }
.tag-items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.tag-item { display:grid; grid-template-columns:minmax(0,1fr) auto; max-width:100%; align-items:center; gap:10px; padding:6px 8px; border:1px solid hsl(var(--border)); border-radius:10px; font-size:13px; }
.tag-item > span { min-width:0; overflow-wrap:anywhere; }
.tag-item .actions { flex-shrink:0; margin:0; gap:4px; flex-wrap:nowrap; }
.tag-item .button,.tag-item button { min-height:28px; padding:3px 6px; font-size:12px; white-space:nowrap; }
@container (max-width:560px) { .tag-items { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container (max-width:360px) { .tag-items { grid-template-columns:minmax(0,1fr); } }
hr { border:0; border-top:1px solid hsl(var(--border)/.5); margin:28px 0; }
.prose { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.8; max-width:100%; }
.readme-content { overflow-wrap:anywhere; line-height:1.8; }
.readme-content h1 { font-size:24px; margin:20px 0 12px; }
.readme-content h2,.readme-content h3 { margin:24px 0 12px; }
.readme-content p,.readme-content ul,.readme-content ol,.readme-content pre,.readme-content blockquote { margin:12px 0; }
.readme-content ul { list-style:disc; padding-left:24px; }
.readme-content ol { list-style:decimal; padding-left:24px; }
.readme-content pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; background:hsl(var(--secondary)); border-radius:8px; }
.readme-content blockquote { border-left:3px solid hsl(var(--border)); padding-left:16px; color:hsl(var(--muted-foreground)); }
.readme-content a { text-decoration:underline; text-underline-offset:3px; }
.readme-content table { display:block; overflow-x:auto; max-width:100%; }
.table-wrap { overflow:auto; max-width:100%; }
.table-wrap table { min-width:760px; }
.company-usage .table-wrap table { min-width:0; table-layout:fixed; }
.company-usage th:first-child { width:40%; }
.company-usage th:last-child { width:28%; }
.company-usage td { overflow-wrap:anywhere; }
@media(max-width:640px) {
  .company-usage th,.company-usage td { padding:12px 4px; font-size:12px; }
  .company-usage .table-wrap::before { display:none; }
}
table { border-collapse:collapse; width:100%; font-size:13px; }
th,td { text-align:left; padding:14px 12px; border-bottom:1px solid hsl(var(--border)/.5); vertical-align:top; }
th { color:hsl(var(--muted-foreground)); font-weight:500; }
details summary { cursor:pointer; margin:14px 0; padding:8px 12px; border:1px solid hsl(var(--foreground)/.35); border-radius:10px; color:hsl(var(--foreground)); font-size:13px; }
details summary:hover { background:hsl(var(--accent)/.6); border-color:hsl(var(--primary)); }
details summary:focus-visible { outline:2px solid hsl(var(--ring)); outline-offset:3px; }
.search-row { display:flex; gap:10px; align-items:center; }
.search-row input { flex:1; min-width:0; }
.filters .filter-row,.filter-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.filter-row label { margin:0; }
.filter-row select { width:auto; min-width:140px; flex:1; }
.check { display:flex; align-items:center; font-weight:400; white-space:nowrap; }
.pagination { display:flex; flex-wrap:wrap; align-items:center; gap:16px; justify-content:center; margin:24px 0; font-size:14px; }
.stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.stat strong { display:block; color:hsl(var(--primary)); font-size:30px; margin:10px 0; font-weight:600; }
.rank-row { display:grid; grid-template-columns:24px minmax(100px,2fr) 2fr 70px 50px; gap:14px; align-items:center; padding:18px 0; border-bottom:1px solid hsl(var(--border)/.5); font-size:14px; }
.rank-row:last-child { border:0; }
.rank-number { color:hsl(var(--muted-foreground)); }
meter { width:100%; height:8px; border:0; border-radius:10px; background:hsl(var(--secondary)); }
meter::-webkit-meter-bar { background:hsl(var(--secondary)); border:0; border-radius:10px; }
meter::-webkit-meter-optimum-value { background:hsl(var(--primary)/.6); border-radius:10px; }
.dashboard-layout { display:flex; gap:24px; align-items:flex-start; }
.dashboard-sidebar { width:224px; flex-shrink:0; position:sticky; top:76px; }
.dashboard-sidebar nav { display:flex; flex-direction:column; gap:6px; }
.dashboard-sidebar nav a { display:flex; align-items:center; gap:10px; padding:8px 12px; border:1px solid hsl(var(--foreground)/.35); border-radius:10px; font-size:14px; color:hsl(var(--foreground)); }
.dashboard-sidebar nav a:hover { background:hsl(var(--accent)); border-color:hsl(var(--primary)); }
.list-row > a:not(.button),.section-heading > a:not(.button),.rank-row > a,.demand-card h2 > a,.feedback-reminders h3 > a { text-decoration:underline; text-underline-offset:3px; }
.sidebar-label { font-size:11px; font-weight:600; color:hsl(var(--muted-foreground)); padding:6px 12px; margin:14px 0 4px; }
.approval-count { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 5px; margin-left:6px; border-radius:999px; background:#dc2626; color:#fff; font-size:12px; font-weight:700; line-height:1; flex-shrink:0; }
.dashboard-sidebar .approval-count { margin-left:auto; }
.user-avatar { width:32px; height:32px; border-radius:50%; background:hsl(var(--secondary)); display:grid; place-items:center; font-size:12px; font-weight:600; flex-shrink:0; }
.dashboard-content { flex:1; min-width:0; }
.overview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.overview-card { display:flex; align-items:flex-start; gap:16px; padding:20px; border:1px solid hsl(var(--border)/.6); border-radius:14px; transition:background-color .15s,border-color .15s; }
.overview-card:hover { background:hsl(var(--accent)); border-color:hsl(var(--border)); }
.overview-card > span { width:40px; height:40px; display:grid; place-items:center; flex-shrink:0; border-radius:10px; background:hsl(var(--secondary)); }
.overview-card p { margin:4px 0 0; font-size:12px; color:hsl(var(--text-secondary)); line-height:1.7; }
.demand-list { display:grid; gap:16px; }
.demand-card { position:relative; border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:14px; padding:20px; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.demand-card:hover { border-color:hsl(var(--primary)); box-shadow:0 4px 16px hsl(var(--primary)/.1); }
.demand-card:focus-within { outline:2px solid hsl(var(--ring)); outline-offset:3px; }
.demand-card h2 > .demand-card-link { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; min-height:44px; text-decoration:none; }
.demand-card-link > span:first-child { min-width:0; overflow-wrap:anywhere; }
.demand-card-link::after { content:''; position:absolute; inset:0; border-radius:inherit; }
.demand-card-link:focus-visible { outline:none; }
.demand-card-action { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; padding:8px 12px; border-radius:8px; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); font-size:13px; font-weight:600; white-space:nowrap; }
.demand-card p { line-height:1.65; }
.scan-clean-light { display:inline-block; width:10px; height:10px; margin:0 8px 1px 2px; border-radius:50%; background:#16a34a; box-shadow:0 0 0 3px #16a34a20; vertical-align:middle; }
.dark .scan-clean-light { background:#4ade80; box-shadow:0 0 0 3px #4ade8020; }
.login-page { display:flex; min-height:70vh; justify-content:center; align-items:center; padding:24px 0; }
.login-shell { width:100%; max-width:448px; }
.login-heading { text-align:center; margin-bottom:32px; }
.login-heading h1 { font-size:36px; font-weight:700; margin:12px 0; }
.login-symbol { display:inline-flex; width:64px; height:64px; align-items:center; justify-content:center; border-radius:18px; background:var(--brand-gradient); color:white; font-size:24px; font-weight:700; box-shadow:0 0 20px -5px hsl(var(--primary)/.3); margin-bottom:16px; }
.login-symbol img { width:42px; height:30px; object-fit:contain; filter:brightness(0) invert(1); }
.login-card { padding:32px; border-radius:18px; }
.login-card .button { margin:12px 0; }
.login-card button.full { margin-top:20px; }
.content-browser { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,3fr); gap:24px; align-items:start; }
.content-browser > .panel { min-width:0; }
.content-file-list { display:flex; flex-direction:column; gap:8px; }
.content-browser .content-file.secondary { width:100%; display:flex; flex-direction:column; gap:4px; align-items:flex-start; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.content-file small { font-weight:400; color:hsl(var(--muted-foreground)); }
.content-browser .content-file[aria-current=true] { background:hsl(var(--primary)/.1)!important; border-color:hsl(var(--primary))!important; }
.content-file-name { overflow-wrap:anywhere; font-weight:600; }
.content-file-text { max-height:65vh; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; padding:16px; border:1px solid hsl(var(--border)); border-radius:10px; background:hsl(var(--secondary)/.5); font-size:13px; line-height:1.7; }
.resource-feedback,.feedback-reminders { scroll-margin-top:100px; overflow-wrap:anywhere; }
.feedback-summary { margin-bottom:20px; }
.feedback-summary > strong { font-size:28px; }
.feedback-form { padding:20px; margin-bottom:24px; border:1px solid hsl(var(--border)/.6); border-radius:10px; background:hsl(var(--secondary)/.3); }
.feedback-rating { display:flex; flex-wrap:wrap; gap:8px; padding:0; border:0; margin:16px 0; min-width:0; }
.feedback-rating legend { margin-bottom:8px; font-size:14px; font-weight:500; }
.feedback-rating label { position:relative; display:flex; align-items:center; justify-content:center; margin:0; width:44px; min-height:44px; border:1px solid hsl(var(--border)); border-radius:8px; cursor:pointer; background:hsl(var(--background)); }
.feedback-rating input { position:absolute; width:1px; height:1px; opacity:0; padding:0; }
.feedback-rating label > span { font-size:23px; line-height:1; color:hsl(var(--muted-foreground)); }
.feedback-rating label:has(input:checked),.feedback-rating label:has(~ label input:checked) { border-color:hsl(var(--primary)); background:hsl(var(--primary)/.1); }
.feedback-rating label:has(input:checked) > span,.feedback-rating label:has(~ label input:checked) > span { color:hsl(var(--primary)); }
.feedback-rating label:has(input:focus-visible) { outline:2px solid hsl(var(--ring)); outline-offset:3px; }
.feedback-form textarea { min-height:160px; }
.feedback-form > .small { margin-top:6px; }
.feedback-form > .error { margin-top:12px; }
.feedback-item { padding:20px 0; border-top:1px solid hsl(var(--border)/.5); }
.feedback-item-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:6px; }
.feedback-score { font-size:16px; white-space:nowrap; }
.feedback-score > span { font-size:12px; }
.feedback-item .body-text { white-space:pre-wrap; margin-bottom:0; }
.feedback-reminders h2 > .badge { margin-left:8px; vertical-align:middle; }
@media(min-width:768px) { .app-main {padding:32px 48px 40px;} }
@media(max-width:1199px) { .nav-link {padding:6px 8px; font-size:12px;} }
@media(max-width:1023px) {
  .app-header {padding:10px 24px;} .desktop-nav {display:none;} .menu-toggle {display:inline-flex;}
  .mobile-navigation:not([hidden]) {display:block; position:sticky; top:57px; z-index:40; border-bottom:1px solid hsl(var(--border)); background:hsl(var(--background)/.97); backdrop-filter:blur(24px);}
  .mobile-navigation nav {display:flex; flex-direction:column; gap:4px; padding:12px 16px;}
  .mobile-navigation .nav-link {padding:10px 16px; font-size:14px; border-radius:10px;}
  .dashboard-layout {flex-direction:column;} .dashboard-sidebar {width:100%;position:static;}
  .dashboard-sidebar nav {flex-direction:row; flex-wrap:wrap;}
  .card-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:767px) { .two-col,.resource-detail-layout,.content-browser {grid-template-columns:1fr;} }
@media(max-width:639px) {
  .app-header {padding:10px 16px; gap:8px;} .app-brand {font-size:18px;gap:8px;}
  .app-brand .company-logo {width:48px;height:24px;} .app-brand > span {padding-left:8px;}
  .header-actions {gap:2px;} .account-name {display:none;}
  .app-main {padding:24px 16px 32px;} .discovery {gap:20px;}
  .card-grid,.stats,.overview-grid {grid-template-columns:1fr;}
  .hero {display:block; padding:24px;} .hero > .button,.hero > .actions {margin-top:18px;}
  .panel {padding:20px;} .section-heading {flex-wrap:wrap; align-items:flex-start;}
  .form-panel [id=id_tags],.tag-suggestions-upload #id_suggested_tags {grid-template-columns:1fr;}
  .filter-row select {min-width:40%;}
  .rank-row {grid-template-columns:20px minmax(0,1fr) 60px;gap:10px;}
  .rank-row meter {grid-column:2;} .rank-row strong {grid-column:3;} .rank-row > .muted {display:none;}
  .table-wrap::before {content:'左右滑动查看完整明细';display:block;color:hsl(var(--muted-foreground));font-size:12px;margin-bottom:10px;}
  .footer-inner {flex-direction:column;align-items:flex-start;padding:28px 24px;}
  .login-card {padding:24px;}
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;} }
