.roadmap-header{margin-bottom:2rem}.roadmap-header h1{margin-bottom:.5rem}.roadmap-auth-notice{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:.5rem;font-size:.875rem;color:var(--text)}.roadmap-auth-notice svg{flex-shrink:0;color:var(--accent)}.roadmap-auth-notice a{color:var(--accent);font-weight:600;text-decoration:none}.roadmap-auth-notice a:hover{text-decoration:underline}.roadmap-auth-notice[hidden]{display:none}.roadmap-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:1.5rem;border-bottom:2px solid var(--border-light, #e5e7eb);padding-bottom:0}.roadmap-tab{padding:.5rem 1rem;font-size:.8125rem;font-weight:600;color:var(--muted-fg, #6b7280);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;border-radius:.25rem .25rem 0 0;font-family:inherit;transition:color .12s}.roadmap-tab:hover{color:var(--text, #111827)}.roadmap-tab.active{color:var(--accent, #1351B4);border-bottom-color:var(--accent, #1351B4)}.roadmap-panel[hidden]{display:none}.roadmap-loading{padding:2rem 0;text-align:center;color:var(--muted-fg, #6b7280);font-size:.875rem}.roadmap-list{display:flex;flex-direction:column;gap:.875rem;min-height:120px}.roadmap-item{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:center;padding:1.25rem 1.5rem;background:var(--surface, #fff);border:1px solid var(--border, #d1d5db);border-radius:.875rem;box-shadow:0 1px 2px #0f172a0a;transition:box-shadow .15s,border-color .15s,transform .15s}[data-theme=dark] .roadmap-item{background:var(--surface);border-color:var(--border);box-shadow:none}.roadmap-item:hover{border-color:var(--accent, #1351B4);box-shadow:0 4px 12px #1351b414;transform:translateY(-1px)}.roadmap-item-body{min-width:0}.roadmap-item-title{font-size:1rem;font-weight:600;color:var(--text, #111827);line-height:1.35;margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem}.roadmap-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:.35rem;color:var(--muted-fg, #9ca3af);cursor:pointer;opacity:0;transition:opacity .12s,color .12s,background .12s;flex-shrink:0}.roadmap-item:hover .roadmap-delete-btn{opacity:1}.roadmap-delete-btn:hover{color:#dc2626;background:color-mix(in srgb,#dc2626 10%,transparent)}.roadmap-delete-btn:disabled{opacity:.4;cursor:wait}.roadmap-item-desc{font-size:.875rem;color:var(--muted-fg, #6b7280);line-height:1.55}.roadmap-item-meta{margin-top:.5rem;font-size:.75rem;color:var(--muted-fg, #9ca3af);letter-spacing:.01em}.roadmap-vote-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;width:60px;min-height:68px;padding:.5rem .25rem;background:var(--surface, #fff);border:1.5px solid var(--border, #d1d5db);border-radius:.75rem;cursor:pointer;font-family:inherit;color:var(--muted-fg, #6b7280);transition:all .12s;flex-shrink:0}[data-theme=dark] .roadmap-vote-btn{background:transparent;border-color:var(--border)}.roadmap-vote-btn:hover:not(:disabled){border-color:var(--accent, #1351B4);color:var(--accent, #1351B4);background:color-mix(in srgb,var(--accent, #1351B4) 6%,transparent)}.roadmap-vote-btn.voted{border-color:var(--accent, #1351B4);background:color-mix(in srgb,var(--accent, #1351B4) 10%,transparent);color:var(--accent, #1351B4)}.roadmap-vote-btn:disabled{opacity:.5;cursor:not-allowed}.roadmap-vote-icon{width:18px;height:18px;color:inherit}.roadmap-vote-count{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text, #111827);line-height:1}.roadmap-vote-btn.voted .roadmap-vote-count,.roadmap-vote-btn:hover:not(:disabled) .roadmap-vote-count{color:inherit}.roadmap-empty{padding:3rem 1.5rem;text-align:center;color:var(--muted-fg, #6b7280);font-size:.9rem;background:color-mix(in srgb,var(--muted-bg, #f3f4f6) 50%,transparent);border:1px dashed var(--border, #d1d5db);border-radius:.875rem}.roadmap-suggest-wrap{margin-top:1.5rem;display:flex;justify-content:flex-end}.roadmap-suggest-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;color:var(--accent, #1351B4);background:transparent;border:1.5px solid var(--accent, #1351B4);border-radius:.5rem;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}.roadmap-suggest-btn:hover{background:var(--accent-light, #eff6ff)}.roadmap-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.roadmap-modal-overlay[hidden]{display:none}.roadmap-modal{background:var(--surface, #fff);border-radius:1rem;padding:1.5rem;max-width:480px;width:100%;box-shadow:0 8px 40px #0003}.roadmap-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.roadmap-modal-head h2{font-size:1.125rem;font-weight:700;margin:0}.roadmap-modal-close{background:transparent;border:none;font-size:1.5rem;color:var(--muted-fg, #6b7280);cursor:pointer;line-height:1;padding:.25rem}.roadmap-modal-label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:.375rem;margin-top:1rem;color:var(--text, #111827)}.roadmap-modal-label:first-of-type{margin-top:0}.roadmap-modal-input,.roadmap-modal-textarea{display:block;width:100%;padding:.625rem .75rem;border:1.5px solid var(--border, #d1d5db);border-radius:.5rem;font-size:.875rem;font-family:inherit;background:var(--surface, #fff);color:var(--text, #111827);box-sizing:border-box;transition:border-color .12s}.roadmap-modal-input:focus,.roadmap-modal-textarea:focus{outline:none;border-color:var(--accent, #1351B4)}.roadmap-modal-textarea{resize:vertical}.roadmap-modal-check{display:flex;align-items:center;gap:.55rem;margin-top:.85rem;font-size:.8125rem;color:var(--muted-fg, #6b7280);cursor:pointer;user-select:none}.roadmap-modal-check input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent, #1351B4);cursor:pointer;flex-shrink:0}.roadmap-modal-check{align-items:flex-start}.roadmap-modal-check-hint{display:block;font-size:.75rem;color:var(--muted-fg, #9ca3af);margin-top:.2rem}.roadmap-modal-actions{display:flex;gap:.75rem;align-items:center;margin-top:1.25rem}.roadmap-cancel-btn{background:transparent;border:none;font-size:.875rem;color:var(--muted-fg, #6b7280);cursor:pointer;font-family:inherit;padding:0}.roadmap-cancel-btn:hover{color:var(--text, #111827)}.roadmap-modal-note{font-size:.8rem;margin-top:.75rem;color:var(--muted-fg, #6b7280);min-height:1.2em}.roadmap-modal--compact{max-width:440px;padding:1.5rem 1.75rem}.roadmap-modal--compact h2{font-size:1.125rem;font-weight:700;margin:0 0 .5rem}.roadmap-modal-lead{font-size:.9rem;color:var(--muted-fg, #6b7280);line-height:1.55;margin:0 0 1.25rem}.roadmap-modal-lead strong{color:var(--text, #111827);font-weight:600}.roadmap-modal-error{font-size:.85rem;color:#b91c1c;background:color-mix(in srgb,#dc2626 8%,transparent);border-left:3px solid #dc2626;padding:.65rem .85rem;border-radius:.35rem;margin:0 0 1rem}.roadmap-danger-btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.1rem;background:#dc2626;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s}.roadmap-danger-btn:hover:not(:disabled){background:#b91c1c}.roadmap-danger-btn:disabled{opacity:.6;cursor:wait}
