.portal-shell[data-v-da16d0ac]{display:flex;min-height:100vh;flex-direction:column}.portal-header[data-v-da16d0ac]{position:sticky;top:0;z-index:20;background:var(--c-white);border-bottom:1px solid var(--c-line)}.header-inner[data-v-da16d0ac]{display:flex;align-items:center;gap:24px;height:68px}.brand[data-v-da16d0ac]{display:flex;align-items:baseline;gap:8px}.brand-mark[data-v-da16d0ac]{font-size:20px;font-weight:700;color:var(--c-brand)}.brand-name[data-v-da16d0ac]{font-size:15px;color:var(--c-ink-2)}.main-nav[data-v-da16d0ac]{display:flex;flex:1;flex-wrap:wrap;gap:4px}.nav-item[data-v-da16d0ac]{padding:6px 12px;border-radius:var(--radius);color:var(--c-ink)}.nav-item[data-v-da16d0ac]:hover{background:#8c1c130f;color:var(--c-brand)}.nav-item.router-link-active[data-v-da16d0ac]{color:var(--c-brand)}.header-actions[data-v-da16d0ac]{display:flex;align-items:center;gap:8px}.user-name[data-v-da16d0ac]{max-width:140px;overflow:hidden;font-size:14px;color:var(--c-ink);text-overflow:ellipsis;white-space:nowrap}.header-sep[data-v-da16d0ac]{color:var(--c-line)}.muted-text[data-v-da16d0ac]{color:var(--c-ink-2)}.denied-bar[data-v-da16d0ac]{padding:8px 0;background:#fdecea;border-top:1px solid #f5c2bd;color:#a3231a;font-size:13px}.notice-bar[data-v-da16d0ac]{background:#fff8e6;border-top:1px solid #ffe1a8}.notice-inner[data-v-da16d0ac]{display:flex;align-items:center;gap:12px;padding:6px 16px}.notice-list[data-v-da16d0ac]{display:flex;flex-wrap:wrap;gap:18px;color:#6b4b00}.portal-main[data-v-da16d0ac]{flex:1;padding-bottom:40px}.portal-footer[data-v-da16d0ac]{padding:24px 0;background:#22262b;color:#c9ced6;font-size:13px}.footer-inner[data-v-da16d0ac]{display:flex;flex-direction:column;gap:8px}.footer-links[data-v-da16d0ac]{display:flex;flex-wrap:wrap;gap:16px}.footer-links a[data-v-da16d0ac]:hover{color:#fff}.footer-meta[data-v-da16d0ac]{margin:0}.portal-footer .muted[data-v-da16d0ac]{color:#8b929c}.beian-link[data-v-da16d0ac]{display:inline-flex;align-items:center;gap:4px;color:inherit;text-decoration:none}.beian-link[data-v-da16d0ac]:hover{color:#fff;text-decoration:underline}.beian-sep[data-v-da16d0ac]{margin:0 2px}.police-icon[data-v-da16d0ac]{width:14px;height:14px}:root{--c-brand: #8c1c13;--c-brand-light: #b03a2e;--c-ink: #1f2329;--c-ink-2: #5a6169;--c-line: #e5e6eb;--c-bg: #f7f8fa;--c-white: #fff;--radius: 8px;--maxw: 1200px;--gap: 16px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;color:var(--c-ink);background:var(--c-bg);font-family:PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--c-brand)}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 16px}.card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius)}.muted{color:var(--c-ink-2)}.center{text-align:center}.page-title{margin:24px 0 16px;font-size:20px;font-weight:600}.btn{display:inline-block;padding:8px 18px;border:1px solid var(--c-brand);border-radius:var(--radius);background:var(--c-brand);color:var(--c-white);cursor:pointer;font-size:14px}.btn:hover{background:var(--c-brand-light);color:var(--c-white)}.btn-ghost{background:transparent;color:var(--c-brand)}.btn-ghost:hover{background:#8c1c130f}.empty{padding:48px 16px;color:var(--c-ink-2);text-align:center}.list-reset{margin:0;padding:0;list-style:none}.grid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tag{display:inline-block;padding:1px 8px;border-radius:10px;background:#8c1c1314;color:var(--c-brand);font-size:12px}
