.roadmap-add-task-btn{color:var(--color-primary-500);cursor:pointer;background:#09bec81a;border:1px dashed #09bec880;border-radius:8px;align-items:center;gap:6px;margin-top:.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;transition:transform .2s,opacity .2s,color .2s,background-color .2s,border-color .2s;display:inline-flex}.roadmap-add-task-btn:hover{border-color:var(--color-primary-500);background:#09bec82e}.roadmap-task-linker-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.roadmap-task-linker-modal{background:var(--color-bg-surface);border-radius:16px;flex-direction:column;width:100%;max-width:720px;max-height:80vh;display:flex}.roadmap-task-linker-header{border-bottom:1px solid var(--color-border-default);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.roadmap-task-linker-header h3{color:var(--color-text-primary);margin:0;font-size:18px;font-weight:600}.roadmap-task-linker-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:4px;line-height:1;transition:color .2s}.roadmap-task-linker-close:hover{color:var(--color-text-primary)}.roadmap-task-linker-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow:hidden}.roadmap-task-linker-body--create{padding:0;overflow-y:auto}.roadmap-task-linker-search{background:var(--color-bg-base);border:1px solid var(--color-border-default);color:var(--color-text-secondary);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.roadmap-task-linker-search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;font-size:14px}.roadmap-task-linker-list{flex-direction:column;gap:8px;max-height:360px;padding-right:4px;display:flex;overflow-y:auto}.roadmap-task-linker-loading,.roadmap-task-linker-empty{text-align:center;color:var(--color-text-secondary);padding:24px;font-size:14px}.roadmap-task-linker-item{background:var(--color-bg-base);border:1px solid var(--color-border-default);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;transition:transform .2s,opacity .2s,color .2s,background-color .2s,border-color .2s;display:flex}.roadmap-task-linker-item:hover:not(:disabled){border-color:var(--color-primary-500);background:#09bec80f}.roadmap-task-linker-item:disabled{opacity:.6;cursor:wait}.roadmap-task-linker-item-title{color:var(--color-text-primary);font-size:14px;font-weight:500;line-height:1.4}.roadmap-task-linker-item-meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.roadmap-task-linker-status{background:var(--color-bg-elevated);border-radius:12px;align-items:center;padding:2px 8px;display:inline-flex}.roadmap-task-linker-status-new{color:var(--color-primary-500)}.roadmap-task-linker-status-in_progress{color:#f59e0b}.roadmap-task-linker-type,.roadmap-task-linker-author{color:var(--color-text-tertiary)}.roadmap-task-linker-actions{border-top:1px solid var(--color-border-default);justify-content:flex-end;padding-top:8px;display:flex}.roadmap-task-linker-secondary{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);color:var(--color-text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:transform .2s,opacity .2s,color .2s,background-color .2s,border-color .2s;display:inline-flex}.roadmap-task-linker-secondary:hover{border-color:var(--color-primary-500);color:var(--color-primary-500)}@media (max-width:768px){.roadmap-task-linker-modal{border-radius:0;max-width:100vw;max-height:100vh}}
.roadmap-page{min-height:60vh;padding:2rem 1rem}.roadmap-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1100px;margin:0 auto 1rem;display:flex}.roadmap-filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.roadmap-filter-btn{background:var(--color-bg-surface);border:1px solid var(--color-border-default);color:var(--color-text-secondary);cursor:pointer;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:500;transition:transform .2s,opacity .2s,color .2s,background-color .2s,border-color .2s}.roadmap-filter-btn:hover{border-color:var(--color-primary-500);color:var(--color-text-primary)}.roadmap-filter-btn.active.project-ppdb{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.roadmap-filter-btn.active.project-ppqt{color:#fff;background:#004e92;border-color:#004e92}.roadmap-loading,.roadmap-error,.roadmap-empty{text-align:center;color:var(--color-text-secondary,#6b7280);padding:3rem 1rem;font-size:1rem}.roadmap-error{color:#ef4444}.roadmap-timeline{max-width:1100px;margin:0 auto;padding:1rem 0 3rem;position:relative}.roadmap-timeline-line{opacity:.35;background:linear-gradient(#09bec8,#004e92);border-radius:4px;width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.roadmap-timeline-item{align-items:flex-start;margin-bottom:2.5rem;display:flex;position:relative}.roadmap-timeline-item:last-child{margin-bottom:0}.roadmap-timeline-left{justify-content:flex-end;padding-right:calc(50% + 2rem)}.roadmap-timeline-right{justify-content:flex-start;padding-left:calc(50% + 2rem)}.roadmap-task-type,.roadmap-task-priority{color:var(--project-color)}.roadmap-timeline-connector{z-index:2;width:1.25rem;height:1.25rem;position:absolute;top:1.25rem;left:50%;transform:translate(-50%)}.roadmap-timeline-dot{background:var(--project-color);border:3px solid var(--color-bg-surface,#1f2937);width:100%;height:100%;box-shadow:0 0 0 3px color-mix(in srgb, var(--project-color) 35%, transparent);border-radius:50%;display:block}.roadmap-timeline-left .roadmap-timeline-connector:after,.roadmap-timeline-right .roadmap-timeline-connector:after{content:"";background:var(--project-color);opacity:.6;width:2rem;height:2px;position:absolute;top:50%}.roadmap-timeline-left .roadmap-timeline-connector:after{margin-right:.375rem;right:100%}.roadmap-timeline-right .roadmap-timeline-connector:after{margin-left:.375rem;left:100%}.roadmap-timeline-card{background:var(--color-bg-surface,#ffffff08);border:1px solid var(--color-border-default,#ffffff14);border-top:4px solid var(--project-color);border-radius:1rem;width:100%;max-width:480px;padding:1.25rem;transition:transform .2s;position:relative;box-shadow:0 4px 24px #00000014}.roadmap-timeline-card:after{content:"";opacity:0;pointer-events:none;border-radius:1rem;transition:opacity .2s;position:absolute;inset:0;box-shadow:0 10px 30px #00000024}.roadmap-timeline-card:hover{transform:translateY(-3px)}.roadmap-timeline-card:hover:after{opacity:1}.roadmap-card-project{align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:700;display:flex}.roadmap-card-project-dot{background:var(--project-color);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--project-color) 25%, transparent);border-radius:50%}[data-theme=dark] .project-ppqt{--project-color:#1e7bd6!important}.roadmap-card-project-label{text-transform:uppercase;letter-spacing:.05em;color:var(--project-color);font-size:.8125rem}.roadmap-released-badge{text-transform:uppercase;letter-spacing:.03em;background:color-mix(in srgb, var(--project-color) 15%, transparent);color:var(--project-color);border:1px solid color-mix(in srgb, var(--project-color) 30%, transparent);border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.6875rem;font-weight:700;display:inline-flex}.roadmap-latest-release-badge{text-transform:uppercase;letter-spacing:.03em;color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.6875rem;font-weight:700;display:inline-flex}.roadmap-card-version-link{text-decoration:none;transition:opacity .2s}.roadmap-card-version-link:hover{opacity:.85}.roadmap-card-meta-row{flex-wrap:wrap;align-items:center;gap:.625rem;margin-bottom:1rem;display:flex}.roadmap-card-meta-row .roadmap-card-project{margin-bottom:0}.roadmap-card-meta-row .roadmap-card-progress{flex:auto;min-width:120px;margin-bottom:0}.roadmap-card-version,.roadmap-card-version-link{background:var(--project-color);color:#fff;border:1px solid #0000;border-radius:999px;flex-shrink:0;padding:.25rem .625rem;font-size:.8125rem;font-weight:700}.roadmap-card-date{color:var(--color-text-secondary,#9ca3af);flex-shrink:0;font-size:.8125rem}.roadmap-card-progress{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.roadmap-progress-track{background:var(--color-bg-active,#ffffff1a);border-radius:999px;flex:1;height:6px;overflow:hidden}.roadmap-progress-fill{background:var(--project-color);transform-origin:0;border-radius:999px;width:100%;height:100%;transition:transform .4s;box-shadow:inset 0 0 0 1px #ffffff26}.roadmap-progress-text{color:var(--color-text-secondary,#9ca3af);text-align:center;min-width:2.5rem;font-size:.8125rem;font-weight:600}.roadmap-card-description-wrapper{margin-bottom:1rem}.roadmap-card-description{color:var(--color-text-secondary,#9ca3af);white-space:pre-wrap;word-wrap:break-word;font-size:.875rem;line-height:1.5}.roadmap-card-description.clamped{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.roadmap-card-expand-btn{color:var(--color-primary-500);cursor:pointer;background:0 0;border:none;margin-top:.5rem;padding:0;font-size:.8125rem;font-weight:500;transition:opacity .2s}.roadmap-card-expand-btn:hover{opacity:.8}.roadmap-task-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.roadmap-task{background:var(--color-bg-elevated,#ffffff0a);border:1px solid var(--color-border-default,#ffffff0f);border-radius:.625rem;align-items:center;gap:.5rem;padding:.5rem .625rem;font-size:.875rem;transition:background-color .15s;display:flex}.roadmap-task:hover{background:color-mix(in srgb, var(--project-color) 12%, transparent)}.roadmap-task-type,.roadmap-task-priority{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.roadmap-task-title{color:var(--color-text-primary,#f9fafb);text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;text-decoration:none;overflow:hidden}.roadmap-task-title:hover{color:var(--project-color);text-decoration:underline}.roadmap-task-title-done{opacity:.65;text-decoration:line-through}.roadmap-task-title-disabled{cursor:default;pointer-events:none}.roadmap-task-status{text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.125rem .375rem;font-size:.6875rem;font-weight:700}.roadmap-status-new{color:var(--color-primary-500);background:#09bec81f}.roadmap-status-in_progress{color:#f59e0b;background:#f59e0b1f}.roadmap-status-completed{color:#22c55e;background:#22c55e1f}.roadmap-status-rejected{color:#ef4444;background:#ef44441f}.roadmap-no-tasks{color:var(--color-text-secondary,#9ca3af);text-align:center;padding:.75rem 0;font-size:.875rem}@media (max-width:768px){.roadmap-timeline-line{left:1rem}.roadmap-timeline-left,.roadmap-timeline-right{justify-content:flex-start;padding-left:2.75rem;padding-right:0}.roadmap-timeline-left .roadmap-timeline-card,.roadmap-timeline-right .roadmap-timeline-card{text-align:left}.roadmap-card-meta-row{gap:.5rem}.roadmap-card-meta-row .roadmap-card-progress{order:1;min-width:100%}.roadmap-timeline-left .roadmap-task-list,.roadmap-timeline-right .roadmap-task-list{align-items:stretch}.roadmap-timeline-left .roadmap-task,.roadmap-timeline-right .roadmap-task{flex-direction:row}.roadmap-timeline-left .roadmap-task-title,.roadmap-timeline-right .roadmap-task-title{text-align:left}.roadmap-timeline-connector{left:1rem}.roadmap-timeline-left .roadmap-timeline-connector:after,.roadmap-timeline-right .roadmap-timeline-connector:after{margin-left:.375rem;margin-right:0;left:100%;right:auto}}
