:root{--bg: #faf8ff;--bg-2: #ffffff;--border: rgba(136, 84, 208, .25);--primary: #7c3aed;--primary-2: #8b5cf6;--text: #1f1534;--muted: #6b5a8e}[data-theme=dark]{--bg: #0b0812;--bg-2: #141022;--border: rgba(167, 139, 250, .25);--primary: #8b5cf6;--primary-2: #a78bfa;--text: #e9e4ff;--muted: #b6a7df}html,body,#root{height:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Noto Sans CJK SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.app{position:relative;min-height:100%;overflow-x:hidden}.bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.gradient{position:absolute;inset:-20%;background:radial-gradient(60% 60% at 30% 20%,rgba(124,58,237,.18),transparent),radial-gradient(50% 50% at 80% 30%,rgba(139,92,246,.12),transparent),radial-gradient(40% 40% at 60% 80%,rgba(124,58,237,.1),transparent);filter:blur(40px);animation:float 12s ease-in-out infinite alternate}@keyframes float{0%{transform:translateY(-12px)}to{transform:translateY(12px)}}.grid{position:absolute;inset:0;background-image:linear-gradient(rgba(31,21,52,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(31,21,52,.05) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(circle at 50% 50%,black 40%,transparent 80%);mask-image:radial-gradient(circle at 50% 50%,black 40%,transparent 80%)}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:12px 20px;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}[data-theme=dark] .navbar{background:#0b08128c}.navbar .brand{font-weight:800;color:var(--primary);letter-spacing:.2px}.brand-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--primary)}.brand-logo{width:22px;height:22px;display:inline-block}.navbar .spacer{flex:1}.navbar .link{color:var(--muted);text-decoration:none;padding:6px 8px;border-radius:8px}.navbar .link:hover{color:var(--primary);background:#7c3aed1a}.navbar .link.active{color:var(--primary);background:#7c3aed26}.navbar .controls{display:flex;gap:8px;align-items:center}.navbar select{padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--bg-2);color:var(--text)}.navbar .theme-toggle{border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:6px 8px}.navbar .menu-toggle{display:none;margin-left:8px}.nav-links{display:flex;gap:8px}.navbar .menu-toggle{width:40px;height:40px;border-radius:999px;border:1px solid var(--border);background:var(--bg-2);color:var(--primary);box-shadow:0 6px 16px #0000001f;justify-content:center;align-items:center;font-size:18px;transition:transform .12s ease,background .2s ease,box-shadow .2s ease}.navbar .menu-toggle:hover{background:#7c3aed1a;box-shadow:0 8px 18px #00000029}.navbar .menu-toggle:active{transform:scale(.96)}.container{position:relative;z-index:1;padding:24px;max-width:1280px;margin:0 auto;overflow-x:hidden;min-height:calc(100vh - 72px)}.container.wide{max-width:1400px;padding:0}.container.no-pad{padding:0;max-width:100%}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:0 10px 30px #0000000d;margin-bottom:18px;width:100%;min-height:32vh;max-height:80vh;overflow:auto}.card.tall{min-height:50vh;max-height:85vh}.preview-full{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.mobile-toc-btn{display:none}.toc .toc-link{color:var(--text);text-decoration:none;display:inline-block;padding:6px 8px;border-radius:8px}.toc .toc-link:hover{background:#7c3aed1f;color:var(--primary)}.about{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:start}.avatar{width:96px;height:96px;border-radius:50%;border:2px solid var(--primary);object-fit:cover}.list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.list-item{padding:12px;background:#7c3aed0f;border:1px solid var(--border);border-radius:10px}.list-title{color:var(--primary);font-weight:700;margin-bottom:8px}.links{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:8px 12px;background:#7c3aed24;color:var(--text);border:1px solid var(--border);border-radius:999px}.chip:hover{background:#7c3aed38}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;font-size:14px;color:var(--muted)}input,.textarea{width:100%;max-width:100%;display:block;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-2);color:var(--text)}.tabs{display:flex;gap:8px;margin-top:12px}.tab{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-2)}.tab.active{background:#7c3aed26;border-color:#7c3aed59}.md{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);overflow-x:auto}.md.plain{border:none;background:transparent;padding:0 0 24px}.actions{display:flex;gap:10px;align-items:center;margin-top:12px}.error{color:#b00020}.toast{position:fixed;bottom:24px;right:24px;background:#000000bf;color:#fff;padding:10px 12px;border-radius:8px;z-index:50}.topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.btn-ghost{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-2);color:var(--text);font-size:14px}.btn-ghost:hover{background:#7c3aed14}.chip-btn{padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#7c3aed1f;color:var(--primary);font-size:14px}.drawer .drawer-inner{position:fixed;top:56px;right:0;width:min(84vw,360px);height:calc(100% - 56px);background:var(--bg-2);border-left:1px solid var(--border);padding:14px;overflow:hidden;display:flex;flex-direction:column;gap:10px}.toc-list{display:grid;gap:6px}.toc-item a{display:block;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--text);white-space:normal;word-break:break-word;overflow-wrap:anywhere}.toc-item a:hover{background:#7c3aed1a;color:var(--primary)}.fab{position:fixed;right:16px;bottom:20px;z-index:55;width:48px;height:48px;border-radius:999px;border:1px solid var(--border);background:var(--bg-2);box-shadow:0 6px 18px #0003;display:inline-flex;align-items:center;justify-content:center}.fab:hover{background:#7c3aed1a}.show-mobile{display:none}.float-panel{position:fixed;right:12px;top:64px;width:min(90vw,360px);height:calc(100% - 84px);background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 10px 30px #0003;z-index:60;display:flex;flex-direction:column;gap:10px;overflow:hidden}.toc-scroll{flex:1;min-height:0;overflow:auto}.drawer{position:fixed;inset:0;background:#00000059;z-index:60;display:flex}.drawer .drawer-inner{margin-left:auto;width:min(80vw,360px);height:100%;background:var(--bg-2);border-left:1px solid var(--border);padding:14px;overflow:auto;display:grid;gap:10px}@media(max-width:640px){body{font-size:17px;line-height:1.6}.about{grid-template-columns:64px 1fr}.avatar{width:64px;height:64px}.container{padding:16px}.form-grid{grid-template-columns:1fr}.navbar .link{padding:10px 12px}.btn{padding:12px 14px;border-radius:12px}.btn-icon{width:40px;height:40px}.select{padding:10px 34px 10px 12px;border-radius:12px}.controls-bar{gap:12px;padding:10px 12px}.toc .toc-link{padding:8px 10px}.nav-links{display:none}.navbar .menu-toggle{display:inline-flex}.mobile-menu{position:fixed;inset:0;background:#00000059;z-index:20}.mobile-menu-inner{position:absolute;top:56px;right:8px;background:#fffffff5;border:1px solid var(--border);border-radius:16px;padding:14px;display:grid;gap:10px;min-width:220px;box-shadow:0 18px 40px #0000002e}[data-theme=dark] .mobile-menu-inner{background:#141022f5}.preview-full{grid-template-columns:1fr!important}.preview-full>aside.toc{display:none}.mobile-toc-btn,.show-mobile{display:inline-flex}}.auth-card{max-width:460px;margin:48px auto}.form-grid.one-column{grid-template-columns:1fr}.btn{cursor:pointer;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--bg-2);color:var(--text)}.btn-primary{background:linear-gradient(180deg,#7c3aede6,#7c3aedcc);border-color:#7c3aed59;color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-soft{background:#7c3aed1a;color:var(--primary);border-color:#7c3aed40}.btn-soft:hover{background:#7c3aed2e}.btn-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0}.w-full{width:100%}.select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:8px 28px 8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2) url('data:image/svg+xml;utf8,<svg fill="%236b5a8e" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 8px center/14px;color:var(--text)}.control-label{color:var(--muted);font-size:14px}.controls-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#7c3aed0f;border:1px solid var(--border);border-radius:10px}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:60}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;width:min(520px,92vw);padding:16px}.modal .modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.hero{display:grid;grid-template-columns:108px 1fr;gap:16px;align-items:center}.hero-title{margin:0;font-size:28px;color:var(--primary)}.hero-sub{margin:0;color:var(--muted)}.avatar.large{width:108px;height:108px}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:16px}.timeline-item{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:start}.timeline .time{color:var(--muted);font-size:14px}.timeline .content{background:#7c3aed0f;border:1px solid var(--border);border-radius:10px;padding:12px}@media(max-width:640px){.hero{grid-template-columns:72px 1fr}.avatar.large{width:72px;height:72px}.timeline-item{grid-template-columns:1fr}}.announcement-popup-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;padding:20px;box-sizing:border-box}.announcement-popup-backdrop.visible{opacity:1;visibility:visible}.announcement-popup{background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;max-width:600px;width:100%;max-height:80vh;display:flex;flex-direction:column;transform:scale(.9) translateY(20px);transition:transform .3s ease;overflow:hidden}.announcement-popup.visible{transform:scale(1) translateY(0)}.announcement-popup-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.announcement-popup-title{margin:0;font-size:1.5rem;font-weight:600;color:#111827;flex:1;padding-right:16px}.announcement-popup-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease,color .2s ease;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.announcement-popup-close:hover{background-color:#e5e7eb;color:#374151}.announcement-popup-content{flex:1;overflow-y:auto;padding:24px}.announcement-popup-date{color:#6b7280;font-size:.875rem;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.announcement-popup-body{color:#374151;line-height:1.6}.announcement-popup-body h1,.announcement-popup-body h2,.announcement-popup-body h3,.announcement-popup-body h4,.announcement-popup-body h5,.announcement-popup-body h6{margin-top:1.5em;margin-bottom:.5em;color:#111827}.announcement-popup-body h1:first-child,.announcement-popup-body h2:first-child,.announcement-popup-body h3:first-child,.announcement-popup-body h4:first-child,.announcement-popup-body h5:first-child,.announcement-popup-body h6:first-child{margin-top:0}.announcement-popup-body p{margin-bottom:1em}.announcement-popup-body ul,.announcement-popup-body ol{margin-bottom:1em;padding-left:1.5em}.announcement-popup-body li{margin-bottom:.5em}.announcement-popup-body blockquote{border-left:4px solid #e5e7eb;padding-left:1em;margin:1em 0;color:#6b7280;font-style:italic}.announcement-popup-body code{background-color:#f3f4f6;padding:.2em .4em;border-radius:3px;font-size:.875em;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.announcement-popup-body pre{background-color:#f3f4f6;padding:1em;border-radius:6px;overflow-x:auto;margin:1em 0}.announcement-popup-body pre code{background:none;padding:0}.announcement-popup-footer{padding:16px 24px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:space-between;align-items:center;gap:12px}@media(max-width:768px){.announcement-popup-backdrop{padding:16px}.announcement-popup{max-height:90vh}.announcement-popup-header{padding:20px 20px 12px}.announcement-popup-title{font-size:1.25rem}.announcement-popup-content{padding:20px}.announcement-popup-footer{padding:12px 20px 20px}}@media(prefers-color-scheme:dark){.announcement-popup{background:#1f2937;color:#f9fafb}.announcement-popup-header{background:#111827;border-bottom-color:#374151}.announcement-popup-title{color:#f9fafb}.announcement-popup-close{color:#9ca3af}.announcement-popup-close:hover{background-color:#374151;color:#d1d5db}.announcement-popup-date{color:#9ca3af;border-bottom-color:#374151}.announcement-popup-body{color:#d1d5db}.announcement-popup-body h1,.announcement-popup-body h2,.announcement-popup-body h3,.announcement-popup-body h4,.announcement-popup-body h5,.announcement-popup-body h6{color:#f9fafb}.announcement-popup-body blockquote{border-left-color:#374151;color:#9ca3af}.announcement-popup-body code{background-color:#374151;color:#e5e7eb}.announcement-popup-body pre{background-color:#374151}.announcement-popup-footer{background:#111827;border-top-color:#374151}}
