/*!
 * 星图 • StarMap · 公告中心（列表页）组件样式
 * ---------------------------------------------------------------------------
 * 由 design-preview-announcement.html 的组件层提取而成，
 * 命名空间 .starmap-bulletin-*，只服务 template-bulletin.php。
 *
 * 令牌、排版、无障碍、页面骨架、分页复用现有层：
 *   sub-base.css（令牌 / 排版 / a11y）
 *   sub-page.css（.starmap-page / .starmap-layout / .starmap-card /
 *                 .starmap-breadcrumb / .starmap-search-tab / .starmap-pagination）
 *
 * 只消费语义层变量，不引入新的原始色值。
 */.starmap-bulletin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--naf-space-3);margin-bottom:var(--naf-space-5)}.starmap-bulletin-toolbar .starmap-search-tabs{margin-bottom:0}.starmap-bulletin-tab-cnt{font-size:var(--naf-text-12);font-variant-numeric:tabular-nums}.starmap-bulletin-toolbar .starmap-search-tab:not(.is-active) .starmap-bulletin-tab-cnt{color:var(--naf-text-subtle)}.starmap-bulletin-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--naf-space-3)}.starmap-bulletin-search{position:relative;flex:1 1 200px;max-width:300px;min-width:180px}.starmap-bulletin-search>.iconfont{position:absolute;left:var(--naf-space-3);top:50%;transform:translateY(-50%);color:var(--naf-text-subtle);font-size:var(--naf-text-14);pointer-events:none}.starmap-bulletin-search input[type=search]{width:100%;min-height:38px;padding:var(--naf-space-2) var(--naf-space-3) var(--naf-space-2) calc(var(--naf-space-4) + 18px);border:1px solid var(--naf-border-control);border-radius:var(--naf-radius-md);color:var(--naf-text-primary);background:var(--naf-surface-1);font-family:inherit;font-size:var(--naf-text-14);transition:border-color var(--naf-duration-fast) var(--naf-ease),box-shadow var(--naf-duration-fast) var(--naf-ease)}.starmap-bulletin-search input[type=search]::placeholder{color:var(--naf-text-subtle)}.starmap-bulletin-search input[type=search]:focus{border-color:var(--naf-accent);box-shadow:var(--naf-focus-ring);outline:none}.starmap-bulletin-sr-only{display:inline-block;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.starmap-bulletin-panel{padding:var(--naf-space-5) var(--naf-space-6)}.starmap-bulletin-group{margin-top:var(--naf-space-5);border-top:1px solid var(--naf-border)}.starmap-bulletin-group-head{margin:0;padding:var(--naf-space-4) 0 var(--naf-space-2);color:var(--naf-text-secondary);font-size:var(--naf-text-14);font-weight:600}.starmap-bulletin-list{margin:0;padding:0;list-style:none}.starmap-bulletin-item{display:flex;gap:var(--naf-space-4);padding:var(--naf-space-4) 0;transition:background-color var(--naf-duration-fast) var(--naf-ease)}.starmap-bulletin-item+.starmap-bulletin-item{border-top:1px solid var(--naf-border)}.starmap-bulletin-item:hover{background:var(--naf-surface-2)}.starmap-bulletin-item:hover .starmap-bulletin-title a{color:var(--naf-accent-text)}.starmap-bulletin-date{flex:0 0 auto;width:52px;padding-top:3px;color:var(--naf-text-secondary);font-size:var(--naf-text-13);font-weight:600;font-variant-numeric:tabular-nums}.starmap-bulletin-head{display:flex;align-items:center;gap:var(--naf-space-2);min-width:0}.starmap-bulletin-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--naf-accent)}.starmap-bulletin-title{min-width:0;margin:0;color:var(--naf-text-primary);font-size:var(--naf-text-15);font-weight:600;line-height:var(--naf-leading-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.starmap-bulletin-title a{color:inherit}.starmap-bulletin-external{flex:0 0 auto;color:var(--naf-text-subtle);font-size:var(--naf-text-12);vertical-align:middle}.starmap-bulletin-summary{margin:var(--naf-space-1) 0 0;color:var(--naf-text-secondary);font-size:var(--naf-text-14);line-height:var(--naf-leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.starmap-bulletin-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--naf-space-1) var(--naf-space-3);margin:var(--naf-space-2) 0 0;color:var(--naf-text-muted);font-size:var(--naf-text-12);font-variant-numeric:tabular-nums}.starmap-bulletin-meta-sep{color:var(--naf-text-subtle);user-select:none}.starmap-bulletin-meta-date{display:none}.starmap-bulletin-pager-note{margin:var(--naf-space-6) 0 0;color:var(--naf-text-muted);font-size:var(--naf-text-12);font-variant-numeric:tabular-nums;text-align:center}.starmap-bulletin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--naf-space-1);padding:var(--naf-space-8) var(--naf-space-4);text-align:center}.starmap-bulletin-empty-icon{margin-bottom:var(--naf-space-2);color:var(--naf-text-subtle);font-size:28px}.starmap-bulletin-empty-title{margin:0;color:var(--naf-text-primary);font-size:var(--naf-text-15);font-weight:600}.starmap-bulletin-empty-text{max-width:24ch;margin:0;color:var(--naf-text-muted);font-size:var(--naf-text-13)}.starmap-bulletin-empty .starmap-bulletin-ghost-btn{margin-top:var(--naf-space-3)}.starmap-bulletin-mask{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:var(--naf-space-8) var(--naf-space-4);overflow-y:auto;background:var(--naf-surface-scrim);visibility:hidden;opacity:0;pointer-events:none;transition:opacity var(--naf-duration-base) var(--naf-ease),visibility var(--naf-duration-base) var(--naf-ease)}.starmap-bulletin-mask.is-open{visibility:visible;opacity:1;pointer-events:auto}.starmap-bulletin-modal{width:100%;max-width:640px;background:var(--naf-surface-1);border:1px solid var(--naf-border);border-radius:var(--naf-radius-lg);box-shadow:var(--naf-shadow-overlay);animation:starmapBulletinIn var(--naf-duration-base) var(--naf-ease-out)}@keyframes starmapBulletinIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.starmap-bulletin-modal-head{position:relative;padding:var(--naf-space-6);border-bottom:1px solid var(--naf-border)}.starmap-bulletin-modal-top{display:flex;align-items:center;gap:var(--naf-space-3);margin-bottom:var(--naf-space-2);color:var(--naf-text-muted);font-size:var(--naf-text-12);font-variant-numeric:tabular-nums}.starmap-bulletin-modal-title{margin:0;padding-right:var(--naf-space-10);color:var(--naf-text-primary);font-size:var(--naf-text-20);font-weight:700;line-height:var(--naf-leading-tight);letter-spacing:var(--naf-tracking-tight)}.starmap-bulletin-modal-meta{display:flex;flex-wrap:wrap;gap:var(--naf-space-1) var(--naf-space-3);margin:var(--naf-space-3) 0 0;color:var(--naf-text-muted);font-size:var(--naf-text-12)}.starmap-bulletin-modal-close{position:absolute;top:var(--naf-space-4);right:var(--naf-space-4);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--naf-radius-md);color:var(--naf-text-muted);background:none;font-size:var(--naf-text-15);cursor:pointer;transition:color var(--naf-duration-fast) var(--naf-ease),background-color var(--naf-duration-fast) var(--naf-ease)}.starmap-bulletin-modal-close:hover,.starmap-bulletin-modal-close:focus-visible{color:var(--naf-text-primary);background:var(--naf-surface-2)}.starmap-bulletin-modal-body{padding:var(--naf-space-6);color:var(--naf-text-primary);font-size:var(--naf-text-15);line-height:var(--naf-leading-relaxed)}.starmap-bulletin-modal-body>:first-child{margin-top:0}.starmap-bulletin-modal-body>:last-child{margin-bottom:0}.starmap-bulletin-modal-body p{margin:0 0 var(--naf-space-4)}.starmap-bulletin-modal-body ul,.starmap-bulletin-modal-body ol{margin:0 0 var(--naf-space-4);padding-inline-start:var(--naf-space-6)}.starmap-bulletin-modal-body li{margin-bottom:var(--naf-space-2)}.starmap-bulletin-modal-body img{max-width:100%;height:auto;border-radius:var(--naf-radius-md)}.starmap-bulletin-modal-body pre{padding:var(--naf-space-4);border-radius:var(--naf-radius-md);background:var(--naf-surface-2);overflow-x:auto}.starmap-bulletin-modal-body code{font-size:.92em}.starmap-bulletin-modal-body blockquote{margin:0 0 var(--naf-space-4);padding:var(--naf-space-2) var(--naf-space-4);border-left:3px solid var(--naf-border-strong);color:var(--naf-text-secondary)}.starmap-bulletin-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--naf-space-3);padding:var(--naf-space-4) var(--naf-space-6);border-top:1px solid var(--naf-border)}.starmap-bulletin-modal-link{color:var(--naf-text-muted);font-size:var(--naf-text-13)}.starmap-bulletin-modal-link:hover,.starmap-bulletin-modal-link:focus-visible{color:var(--naf-accent-text)}.starmap-bulletin-skel{display:block;height:12px;margin-bottom:var(--naf-space-3);border-radius:var(--naf-radius-sm);background:var(--naf-surface-2);animation:starmapBulletinPulse 1.4s ease-in-out infinite}.starmap-bulletin-skel--t{width:72%;height:16px}.starmap-bulletin-skel--s{width:92%}.starmap-bulletin-skel--s2{width:58%}@keyframes starmapBulletinPulse{0%,to{opacity:1}50%{opacity:.5}}.starmap-bulletin-error{display:flex;flex-direction:column;align-items:center;gap:var(--naf-space-2);padding:var(--naf-space-6) 0;text-align:center}.starmap-bulletin-error .iconfont{color:var(--naf-clay-text);font-size:24px}.starmap-bulletin-error-text{margin:0;color:var(--naf-text-muted);font-size:var(--naf-text-14)}body.starmap-bulletin-modal-open{overflow:hidden}@media (max-width: 575.98px){.starmap-bulletin-date{display:none}.starmap-bulletin-meta-date{display:inline-flex;align-items:center}.starmap-bulletin-search{max-width:none}.starmap-bulletin-tools{width:100%}.starmap-bulletin-panel,.starmap-bulletin-modal-head,.starmap-bulletin-modal-body{padding:var(--naf-space-4)}.starmap-bulletin-modal-foot{padding:var(--naf-space-3) var(--naf-space-4)}}
