@import "https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@400;500;600&display=swap";:root{--font-serif:"Libre Baskerville", "Noto Serif SC", "Songti SC", Georgia, serif;--font-sans:"Inter", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--text:#4b5563;--text-h:#111827;--text-muted:#9ca3af;--bg:#f0efeb;--surface:#f7f6f3;--card:#fff;--border:#e8e6e1;--shadow-card:0 2px 16px #002c5f0f;--shadow-float:0 16px 40px #002c5f1a;--primary:#002c5f;--navy:var(--primary);--primary-hover:#001f45;--primary-muted:#002c5f14;--primary-border:#002c5f59}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;touch-action:manipulation;height:100%}body{height:100%;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow:hidden}#app{height:100%}button{font-family:inherit}a{color:var(--navy)}.custom-scroll{-ms-overflow-style:none;scrollbar-width:none}.custom-scroll::-webkit-scrollbar{width:0;height:0;display:none}.module-nav[data-v-13741acd]{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.nav-item[data-v-13741acd]{border:1px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.nav-item[data-v-13741acd]:hover{border-color:var(--primary-border);color:var(--text-h)}.nav-item.active[data-v-13741acd]{border-color:var(--primary);background:var(--primary);color:#fff}.nav-num[data-v-13741acd]{opacity:.85;font-size:.6875rem;font-weight:700;display:none}.nav-item.active .nav-num[data-v-13741acd]{opacity:1}.nav-label[data-v-13741acd]{white-space:nowrap}.nav-yes-count[data-v-13741acd]{text-align:center;color:#16a34a;background:#22c55e1f;border-radius:999px;min-width:1.125rem;padding:0 5px;font-size:.625rem;font-weight:700;line-height:1.125rem}.nav-item.active .nav-yes-count[data-v-13741acd]{color:#fff;background:#ffffff38}@media (width<=640px){.module-nav[data-v-13741acd]{flex-wrap:nowrap;gap:4px}.nav-item[data-v-13741acd]{border-radius:8px;flex:1 1 0;justify-content:center;gap:3px;min-width:0;padding:6px 2px;font-size:.6875rem}.nav-label[data-v-13741acd]{text-overflow:ellipsis;overflow:hidden}.nav-yes-count[data-v-13741acd]{min-width:1rem;padding:0 4px;font-size:.5625rem;line-height:1rem}}.data-source-tabs[data-v-a299b39d]{background:#e5e7eb;border-radius:999px;gap:0;margin-bottom:8px;padding:3px;display:flex}.tab-item[data-v-a299b39d]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:6px 12px;font-size:.75rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.tab-item[data-v-a299b39d]:hover:not(.active){color:var(--text-h)}.tab-item.active[data-v-a299b39d]{background:var(--card);color:var(--primary);box-shadow:0 1px 4px #002c5f1f}@media (width<=640px){.tab-item[data-v-a299b39d]{padding:7px 8px;font-size:.6875rem}}.module-header[data-v-b392c70a]{width:100%}.header-top[data-v-b392c70a]{justify-content:space-between;align-items:center;gap:24px;display:flex}.category[data-v-b392c70a]{color:var(--text-h);letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:600;line-height:1.2;display:none}.progress-wrap[data-v-b392c70a]{text-align:right;flex-shrink:0;width:100%;min-width:120px}.progress-label[data-v-b392c70a]{color:var(--text-muted);margin-bottom:4px;font-size:.6875rem;font-weight:600;display:block}.progress-track[data-v-b392c70a]{background:#e5e7eb;border-radius:1px;height:2px;overflow:hidden}.progress-fill[data-v-b392c70a]{background:var(--primary);height:100%;transition:width .35s}@media (width<=640px){.header-top[data-v-b392c70a]{flex-direction:column;align-items:flex-start;gap:12px}.progress-wrap[data-v-b392c70a]{text-align:left;width:100%}}.vote-group[data-v-82f30fe1]{flex-direction:column;align-items:center;gap:4px;display:flex}.vote-group.spread[data-v-82f30fe1]{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.vote-btn[data-v-82f30fe1]{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:border-color .15s,background .15s,color .15s;display:flex}.vote-btn svg[data-v-82f30fe1]{width:14px;height:14px}.vote-btn[data-v-82f30fe1]:hover{border-color:var(--primary);color:var(--primary)}.vote-btn.no.active[data-v-82f30fe1]{color:#fff;background:#dc2626;border-color:#dc2626}.vote-btn.yes.active[data-v-82f30fe1]{border-color:var(--primary);background:var(--primary);color:#fff}.vote-btn.move[data-v-82f30fe1]{white-space:nowrap;border-radius:999px;width:auto;min-width:44px;height:30px;padding:0 10px;font-size:.6875rem;font-weight:600}.vote-btn.move[data-v-82f30fe1]:hover{border-color:var(--primary-border);background:var(--primary-muted);color:var(--primary)}.card[data-v-22caf3bd]{background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.card-body[data-v-22caf3bd]{min-height:0;color:inherit;flex-direction:column;flex:1;display:flex}.card-top[data-v-22caf3bd]{flex:1;align-items:flex-start;gap:10px;min-height:0;padding:5px;display:flex}.thumb[data-v-22caf3bd]{background:#ebe9e4;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.thumb img[data-v-22caf3bd]{object-fit:cover;border-radius:6px;width:64px;height:64px;display:block}.thumb-fallback[data-v-22caf3bd]{color:#9aa3af;background:#eceef1;border-radius:6px;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.thumb-fallback svg[data-v-22caf3bd]{width:28px;height:28px;display:block}.content[data-v-22caf3bd]{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.meta-row[data-v-22caf3bd]{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.item-index[data-v-22caf3bd]{z-index:1;color:#fff;background:var(--primary);border-radius:0 7px 0 6px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0}.meta-source[data-v-22caf3bd]{color:var(--text-h);font-size:.625rem;font-weight:700}.meta-date[data-v-22caf3bd]{color:var(--text-muted);font-size:.625rem}.title[data-v-22caf3bd]{color:var(--text-h);word-break:break-word;margin:0;font-size:.8125rem;font-weight:600;line-height:1.45}.title-brand[data-v-22caf3bd]{vertical-align:baseline;color:var(--primary);background:var(--primary-muted);-webkit-box-decoration-break:clone;box-decoration-break:clone;white-space:nowrap;border-radius:3px;margin-right:5px;padding:0 5px;font-weight:700;display:inline}.title-sep[data-v-22caf3bd]{white-space:pre}.title-link[data-v-22caf3bd]{color:inherit;text-decoration:none}.title-link[data-v-22caf3bd]:hover{color:var(--primary);text-decoration:underline}.summary[data-v-22caf3bd]{color:var(--text);word-break:break-word;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.75rem;line-height:1.55;display:-webkit-box;overflow:hidden}.focus-point[data-v-22caf3bd]{border-top:1px solid var(--border);border-left:3px solid var(--primary);box-sizing:border-box;background:#fff;flex-shrink:0;align-items:flex-start;width:100%;margin:0;padding:8px 12px;display:flex}.focus-label[data-v-22caf3bd]{color:var(--primary);white-space:nowrap;flex-shrink:0;font-size:.6875rem;font-weight:700;line-height:1.5}.focus-text[data-v-22caf3bd]{min-width:0;color:var(--text-muted);text-align:justify;text-align-last:left;word-break:break-word;flex:1;margin:0;font-size:.6875rem;line-height:1.5}.card-votes[data-v-22caf3bd]{border-top:1px solid var(--border);flex-shrink:0;margin-top:auto;padding:6px 12px 8px}@media (width<=480px){.thumb[data-v-22caf3bd],.thumb img[data-v-22caf3bd],.thumb-fallback[data-v-22caf3bd]{width:52px;height:52px}.thumb-fallback svg[data-v-22caf3bd]{width:24px;height:24px}}.submit-bar[data-v-0db9e549]{width:100%;max-width:1280px;margin:0 auto}.submit-inner[data-v-0db9e549]{-webkit-backdrop-filter:blur(20px)saturate(1.2);background:#ffffff8c;border:1px solid #fff9;border-radius:14px;align-items:center;gap:10px;padding:8px 10px 8px 16px;display:flex;box-shadow:0 8px 32px #002c5f1f,inset 0 1px #ffffffd9}textarea[data-v-0db9e549]{resize:none;min-width:0;min-height:32px;color:var(--text-h);background:0 0;border:none;flex:1;padding:6px 0;font-family:inherit;font-size:.8125rem;line-height:1.5}textarea[data-v-0db9e549]::placeholder{color:#9ca3af}textarea[data-v-0db9e549]:focus{outline:none}.submit-btn[data-v-0db9e549]{background:var(--primary);color:#fff;letter-spacing:.01em;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:8px 16px;font-size:.8125rem;font-weight:600;transition:background .15s;display:inline-flex}.submit-btn svg[data-v-0db9e549]{flex-shrink:0;width:16px;height:16px}.submit-btn[data-v-0db9e549]:hover:not(:disabled){background:var(--primary-hover)}.submit-btn[data-v-0db9e549]:disabled{opacity:.65;cursor:not-allowed}.sr-only[data-v-0db9e549]{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){.submit-inner[data-v-0db9e549]{gap:8px;padding:6px 8px 6px 12px}.submit-btn[data-v-0db9e549]{padding:8px 12px;font-size:.75rem}.submit-btn svg[data-v-0db9e549]{width:14px;height:14px}}.success[data-v-0c40ca19]{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:100%;padding:24px;animation:.55s both success-fade-in-0c40ca19;display:flex}.success-icon[data-v-0c40ca19]{width:64px;height:64px;color:var(--primary);margin-bottom:20px;animation:.6s cubic-bezier(.34,1.56,.64,1) .1s both success-pop-0c40ca19}.success-icon svg[data-v-0c40ca19]{width:100%;height:100%;display:block}.success-text[data-v-0c40ca19]{color:var(--text-h);letter-spacing:.04em;margin:0;font-size:1.25rem;font-weight:600;animation:.5s .25s both success-text-in-0c40ca19}.view-btn[data-v-0c40ca19]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;min-width:120px;margin-top:24px;padding:10px 28px;font-size:.9375rem;font-weight:600;transition:opacity .15s;animation:.5s .35s both success-text-in-0c40ca19;display:inline-flex}.view-btn[data-v-0c40ca19]:hover{opacity:.9}@keyframes success-fade-in-0c40ca19{0%{opacity:0}to{opacity:1}}@keyframes success-pop-0c40ca19{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes success-text-in-0c40ca19{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.dialog-backdrop[data-v-a5b7ad51]{z-index:100;-webkit-backdrop-filter:blur(4px);background:#11182773;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog[data-v-a5b7ad51]{background:var(--card);width:100%;max-width:420px;box-shadow:var(--shadow-float);border-radius:14px;overflow:hidden}.dialog-header[data-v-a5b7ad51]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.dialog-title[data-v-a5b7ad51]{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.dialog-close[data-v-a5b7ad51]{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:1.25rem;line-height:1}.dialog-close[data-v-a5b7ad51]:hover{background:var(--primary-muted);color:var(--text-h)}.dialog-form[data-v-a5b7ad51]{padding:16px 18px 18px}.field[data-v-a5b7ad51]{margin-bottom:14px;display:block}.field-label[data-v-a5b7ad51]{color:var(--text-h);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.field input[data-v-a5b7ad51]{border:1px solid var(--border);width:100%;color:var(--text-h);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.875rem;transition:border-color .15s}.field input[data-v-a5b7ad51]:focus{border-color:var(--primary-border);outline:none}.field-error[data-v-a5b7ad51]{color:#dc2626;margin:0 0 12px;font-size:.75rem}.dialog-actions[data-v-a5b7ad51]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.btn[data-v-a5b7ad51]{cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:.875rem;font-weight:600}.btn-ghost[data-v-a5b7ad51]{color:var(--text-muted);background:0 0}.btn-ghost[data-v-a5b7ad51]:hover{background:var(--primary-muted);color:var(--text-h)}.btn-primary[data-v-a5b7ad51]{background:var(--primary);color:#fff}.btn-primary[data-v-a5b7ad51]:hover{background:var(--primary-hover)}.dialog-backdrop[data-v-11f489a8]{z-index:100;-webkit-backdrop-filter:blur(4px);background:#11182773;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog[data-v-11f489a8]{background:var(--card);width:100%;max-width:360px;box-shadow:var(--shadow-float);border-radius:14px;overflow:hidden}.dialog-header[data-v-11f489a8]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.dialog-title[data-v-11f489a8]{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.dialog-close[data-v-11f489a8]{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:1.25rem;line-height:1}.dialog-close[data-v-11f489a8]:hover{background:var(--primary-muted);color:var(--text-h)}.dialog-body[data-v-11f489a8]{padding:14px 18px 4px}.item-preview[data-v-11f489a8]{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.module-list[data-v-11f489a8]{flex-wrap:wrap;gap:8px;display:flex}.module-option[data-v-11f489a8]{border:1px solid var(--border);min-width:0;color:var(--text-h);cursor:pointer;background:#fff;border-radius:8px;flex:calc(50% - 4px);padding:10px 12px;font-size:.875rem;font-weight:500;transition:border-color .15s,background .15s,color .15s}.module-option[data-v-11f489a8]:hover{border-color:var(--primary-border)}.module-option.active[data-v-11f489a8]{border-color:var(--primary);background:var(--primary);color:#fff}.dialog-actions[data-v-11f489a8]{justify-content:flex-end;gap:8px;padding:16px 18px 18px;display:flex}.btn[data-v-11f489a8]{cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:.875rem;font-weight:600}.btn-ghost[data-v-11f489a8]{color:var(--text-muted);background:0 0}.btn-ghost[data-v-11f489a8]:hover{background:var(--primary-muted);color:var(--text-h)}.btn-primary[data-v-11f489a8]{background:var(--primary);color:#fff}.btn-primary[data-v-11f489a8]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-11f489a8]:disabled{opacity:.5;cursor:not-allowed}.app[data-v-ffe24b73]{flex-direction:column;height:100vh;display:flex;overflow:hidden}.page[data-v-ffe24b73]{flex-direction:column;flex:1;width:100%;max-width:1280px;min-height:0;margin:0 auto;display:flex}.page-header[data-v-ffe24b73]{background:var(--bg);border-bottom:1px solid var(--border);z-index:30;flex-shrink:0;width:100%;padding:10px 20px}.page-body[data-v-ffe24b73]{min-height:0;padding:10px 20px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;flex:1;width:100%;overflow:hidden auto}.page-footer[data-v-ffe24b73]{z-index:40;padding:8px 20px calc(12px + env(safe-area-inset-bottom,0px));pointer-events:none;background:0 0;position:fixed;bottom:0;left:0;right:0}.page-footer[data-v-ffe24b73] .submit-bar{pointer-events:auto}.submit-error[data-v-ffe24b73]{color:#dc2626;text-align:center;pointer-events:auto;max-width:1280px;margin:0 auto 6px;padding:0 4px;font-size:.75rem}.app-fallback[data-v-ffe24b73]{flex:1;min-height:0;overflow-y:auto}.state[data-v-ffe24b73]{text-align:center;color:var(--text-muted);padding:80px 24px}.state.error[data-v-ffe24b73]{color:#dc2626}.state button[data-v-ffe24b73]{cursor:pointer;margin-top:12px;padding:8px 16px}.hotspot-list[data-v-ffe24b73]{grid-template-columns:1fr;align-items:stretch;gap:8px;display:grid}@media (width>=900px){.hotspot-list[data-v-ffe24b73]{grid-template-columns:repeat(3,1fr);gap:8px 10px}}@media (width<=768px){.page-body[data-v-ffe24b73]{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}@media (width<=640px){.page-header[data-v-ffe24b73],.page-body[data-v-ffe24b73],.page-footer[data-v-ffe24b73]{padding-left:12px;padding-right:12px}}.fab-add[data-v-ffe24b73]{right:20px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:45;background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;transition:background .15s,transform .15s;display:inline-flex;position:fixed;box-shadow:0 8px 24px #002c5f47}.fab-add[data-v-ffe24b73]:hover{background:var(--primary-hover);transform:translateY(-1px)}@media (width<=768px){.fab-add[data-v-ffe24b73]{right:66px;bottom:calc(68px + env(safe-area-inset-bottom,0px));width:48px;height:48px;font-size:.8125rem}}
