.roadmap.index,.roadmap.detail{padding:64px 0 80px}.roadmap.header{margin-bottom:32px}.roadmap.header .header.top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.roadmap.header h1{letter-spacing:-.03em;color:var(--ink);font-size:36px;font-weight:800}.roadmap.header .header.sub{color:var(--muted);font-size:15px}.roadmap.tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.roadmap.tabs .tab.pill{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:20px;padding:6px 14px;font-size:13.5px;font-weight:500;transition:border-color .12s,background .12s}.roadmap.tabs .tab.pill:hover{border-color:var(--ink-2)}.roadmap.tabs .tab.pill.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.roadmap.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;display:flex}.roadmap.filters .filter.label{color:var(--muted);margin-right:8px;font-size:13px}.roadmap.filters .type.pill{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:16px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.roadmap.filters .type.pill:hover{border-color:var(--ink-2)}.roadmap.filters .type.pill.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.roadmap.board{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=768px){.roadmap.board{grid-template-columns:1fr}}.roadmap.column{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}.roadmap.column .column.header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.roadmap.column .column.header h2{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-size:14px;font-weight:700}.roadmap.column .column.header .column.count{color:var(--muted);background:var(--bg);border-radius:10px;padding:2px 8px;font-size:12px}.roadmap.column .column.items{flex-direction:column;gap:12px;display:flex}.roadmap.column .column.empty{color:var(--muted);text-align:center;padding:16px 0;font-size:13px;font-style:italic}.roadmap.list{flex-direction:column;gap:12px;display:flex}.roadmap.item.card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 16px;transition:border-color .12s,transform .12s}.roadmap.item.card:hover{border-color:var(--ink-2);transform:translateY(-1px)}.roadmap.item.card .item.head{gap:8px;margin-bottom:8px;display:flex}.roadmap.item.card .item.title{margin-bottom:8px;font-size:15px;font-weight:600;line-height:1.4}.roadmap.item.card .item.title a{color:var(--ink)}.roadmap.item.card .item.title a:hover{color:var(--accent)}.roadmap.item.card .item.meta{color:var(--muted);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.roadmap.item.card .item.comments{align-items:center;gap:4px;display:inline-flex}.roadmap.item.type-badge,.roadmap.item.status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.roadmap.item.type-badge{background:var(--bg);color:var(--ink-2)}.roadmap.item.type-badge.type-bug{color:#b91c1c;background:#fee}.roadmap.item.type-badge.type-feature{color:#6d28d9;background:#ede9fe}.roadmap.item.type-badge.type-idea{color:#92400e;background:#fef3c7}.roadmap.item.status-badge{background:var(--bg);color:var(--muted);border:1px solid var(--line)}.roadmap.vote.btn{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;border-radius:18px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.roadmap.vote.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.roadmap.vote.btn.is-voted{background:var(--accent);border-color:var(--accent);color:#fff}.roadmap.vote.btn:disabled{cursor:not-allowed;opacity:.6}.roadmap.modal[role=dialog]{z-index:1000;display:none;position:fixed;inset:0}.roadmap.modal[role=dialog].is-open{display:block}.roadmap.modal[role=dialog] .modal.overlay{background:#00000080;position:absolute;inset:0}.roadmap.modal[role=dialog] .modal.box{background:#fff;border-radius:14px;flex-direction:column;max-width:560px;max-height:92vh;margin:4vh auto;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #0000002e}.roadmap.modal[role=dialog] .modal.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.roadmap.modal[role=dialog] .modal.header h3{font-size:16px;font-weight:700}.roadmap.modal[role=dialog] .modal.header .modal.close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.roadmap.modal[role=dialog] .modal.body{padding:20px;overflow-y:auto}.roadmap.modal[role=dialog] .modal.body .modal.intro{color:var(--muted);margin-bottom:16px;font-size:13.5px}.roadmap.modal[role=dialog] .modal.body .field{margin-bottom:16px}.roadmap.modal[role=dialog] .type.chooser{flex-wrap:wrap;gap:8px;display:flex}.roadmap.modal[role=dialog] .type.chooser .type.option{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.roadmap.modal[role=dialog] .type.chooser .type.option input{display:none}.roadmap.modal[role=dialog] .type.chooser .type.option:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}.roadmap.modal[role=dialog] .modal.actions{justify-content:flex-end;margin-top:16px;display:flex}.roadmap.modal[role=dialog] .editor.toolbar{background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;flex-wrap:wrap;gap:2px;padding:6px 8px;display:flex}.roadmap.modal[role=dialog] .editor.toolbar .editor.toolbar.btn{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;font-size:12.5px;font-weight:600}.roadmap.modal[role=dialog] .editor.toolbar .editor.toolbar.btn:hover{background:var(--surface)}.roadmap.modal[role=dialog] .editor.toolbar .editor.toolbar.btn.is-active{background:var(--ink);color:#fff}.roadmap.modal[role=dialog] .editor.content{border:1px solid var(--line);cursor:text;border-radius:0 0 6px 6px;outline:none;min-height:130px;padding:10px 12px;font-size:14px;line-height:1.6}.roadmap.modal[role=dialog] .editor.content:focus-within{border-color:var(--accent)}.roadmap.modal[role=dialog] .editor.content p{margin-bottom:.5em}.roadmap.modal[role=dialog] .editor.content p:last-child{margin-bottom:0}.roadmap.modal[role=dialog] .editor.content ul,.roadmap.modal[role=dialog] .editor.content ol{margin:0 0 .5em 1.25em}.roadmap.modal[role=dialog] .editor.content a{color:var(--accent);text-decoration:underline}.roadmap.modal[role=dialog] .editor.content .tiptap{outline:none}.roadmap.similar.wrap{background:var(--bg);border-radius:8px;margin-top:8px;padding:12px}.roadmap.similar.wrap .similar.label{color:var(--muted);margin-bottom:8px;font-size:12px}.roadmap.similar.wrap .similar.list{flex-direction:column;gap:4px;padding:0;list-style:none;display:flex}.roadmap.similar.wrap .similar.list li a{color:var(--ink-2);border-radius:6px;justify-content:space-between;padding:6px 8px;font-size:13px;display:flex}.roadmap.similar.wrap .similar.list li a:hover{color:var(--accent);background:#fff}.roadmap.similar.wrap .similar.list .similar.votes{color:var(--muted);font-size:12px}.roadmap.back.link{color:var(--muted);margin-bottom:16px;font-size:13.5px;display:inline-block}.roadmap.back.link:hover{color:var(--ink)}.roadmap.item.detail{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:32px;padding:24px 24px 20px}.roadmap.item.detail .item.head{gap:8px;margin-bottom:12px;display:flex}.roadmap.item.detail .item.title{letter-spacing:-.025em;color:var(--ink);margin-bottom:8px;font-size:28px;font-weight:800;line-height:1.25}.roadmap.item.detail .item.meta{color:var(--muted);flex-wrap:wrap;gap:4px;margin-bottom:20px;font-size:13px;display:flex}.roadmap.item.detail .item.body{color:var(--ink-2);margin-bottom:20px;font-size:15px;line-height:1.7}.roadmap.item.detail .item.body p{margin-bottom:1em}.roadmap.item.detail .item.body a{color:var(--accent);text-decoration:underline}.roadmap.item.detail .item.body ul,.roadmap.item.detail .item.body ol{margin:0 0 1em 20px}.roadmap.item.detail .item.declined-reason{background:#fef2f2;border-left:3px solid #b91c1c;border-radius:4px;margin-bottom:16px;padding:12px 16px;font-size:14px}.roadmap.item.detail .item.actions{gap:12px;display:flex}.roadmap.comments h2{color:var(--ink);margin-bottom:16px;font-size:18px;font-weight:700}.roadmap.comments .comments.list{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.roadmap.comments .comments.empty{color:var(--muted);font-size:14px;font-style:italic}.roadmap.comment{border:1px solid var(--line);background:#fff;border-radius:10px;padding:16px}.roadmap.comment.is-admin{border-left:3px solid var(--accent)}.roadmap.comment .comment.head{justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:13.5px;display:flex}.roadmap.comment .comment.head .comment.admin.badge{background:var(--accent);color:#fff;border-radius:4px;padding:2px 8px;font-size:11.5px;font-weight:600}.roadmap.comment .comment.head .comment.date{color:var(--muted);font-size:12.5px}.roadmap.comment .comment.body{color:var(--ink-2);font-size:14px;line-height:1.6}.roadmap.comment .comment.body p{margin-bottom:.5em}.roadmap.comment .comment.body p:last-child{margin-bottom:0}
