.roadmap-page{min-height:100vh;background:var(--bg-deepest);color:var(--text-primary);font-family:var(--font-sans)}.roadmap__header{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-lg) var(--space-xl);text-align:center}.roadmap__header h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-xs)}.roadmap__topbar{display:flex;justify-content:flex-start;margin-bottom:var(--space-lg)}.roadmap__back{display:inline-block;font-size:var(--text-sm);color:var(--accent-light);text-decoration:none;transition:opacity var(--transition-fast)}.roadmap__back:hover{opacity:.8}.roadmap__brand{display:inline-flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-secondary)}.roadmap__logo{width:var(--size-avatar);height:var(--size-avatar);border-radius:var(--radius-sm);object-fit:contain}.roadmap__subtitle{font-size:var(--text-base);color:var(--text-secondary)}.roadmap__content{max-width:1200px;margin:0 auto;padding:0 var(--space-lg) var(--space-2xl)}.roadmap__loading{text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);padding:var(--space-2xl) 0}.roadmap__kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}@media(max-width:768px){.roadmap__kanban{grid-template-columns:1fr}}.roadmap__column{display:flex;flex-direction:column;gap:var(--space-sm)}.roadmap__column-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-deep);border-radius:var(--radius-md);margin-bottom:var(--space-xs)}.roadmap__column-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.roadmap__column-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full)}.roadmap__column-cards{display:flex;flex-direction:column;gap:var(--space-sm)}.roadmap__card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md)}.roadmap__card-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-xs)}.roadmap__card-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-sm)}.roadmap__card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.roadmap__card-category{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--accent-light);background:var(--accent-subtle);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full)}.roadmap__vote-btn{display:inline-flex;align-items:center;gap:var(--space-xs);background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.roadmap__vote-btn:hover{background:var(--accent-subtle);border-color:var(--accent)}.roadmap__vote-btn--voted{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-light)}.roadmap__vote-email{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle)}.roadmap__vote-email-input{flex:1;background:var(--bg-deep);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);color:var(--text-primary);min-width:0}.roadmap__vote-email-input::placeholder{color:var(--text-tertiary)}.roadmap__vote-email-input:focus{outline:none;border-color:var(--accent)}.roadmap__vote-email-btn{padding:var(--space-xs) var(--space-md)!important;font-size:var(--text-xs)!important;flex-shrink:0}.roadmap__vote-email-skip{background:none;border:none;font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;padding:var(--space-xs);flex-shrink:0}.roadmap__vote-email-skip:hover{color:var(--text-secondary)}.roadmap__empty{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;padding:var(--space-lg) 0}.roadmap__community{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-lg)}.roadmap__community h2{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0}.roadmap__community-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md)}@media(max-width:480px){.roadmap__community-header{flex-direction:column}}.roadmap__community-count{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.roadmap__community-sort{display:flex;gap:var(--space-xs);flex-shrink:0}.roadmap__sort-btn{background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.roadmap__sort-btn:hover{background:var(--accent-subtle)}.roadmap__sort-btn--active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-light)}.roadmap__community-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:768px){.roadmap__community-grid{grid-template-columns:1fr}}.roadmap__proposal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md)}.roadmap__proposal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.roadmap__proposal-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-xs)}.roadmap__proposal-trending{flex-shrink:0;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roadmap__proposal-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.roadmap__proposal-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.roadmap__proposal-meta{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;min-width:0}.roadmap__proposal-promoted{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roadmap__proposal-time{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roadmap__suggest{max-width:600px;margin:0 auto;padding:var(--space-2xl) var(--space-lg);text-align:center}.roadmap__suggest h2{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-xs)}.roadmap__suggest-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-lg)}.roadmap__suggest-form{display:flex;flex-direction:column;gap:var(--space-md);text-align:left}.roadmap__suggest-input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm)}.roadmap__suggest-input::placeholder{color:var(--text-tertiary)}.roadmap__suggest-input:focus{outline:none;border-color:var(--accent)}.roadmap__suggest-textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit;resize:vertical;min-height:80px}.roadmap__suggest-textarea::placeholder{color:var(--text-tertiary)}.roadmap__suggest-textarea:focus{outline:none;border-color:var(--accent)}.roadmap__suggest-row{display:flex;gap:var(--space-md)}@media(max-width:480px){.roadmap__suggest-row{flex-direction:column}}.roadmap__suggest-select{flex:1}.roadmap__suggest-btn{align-self:flex-start}.roadmap__suggest-success{padding:var(--space-md) var(--space-lg);background:color-mix(in srgb,var(--cat-angle) 10%,transparent);border:1px solid var(--cat-angle);border-radius:var(--radius-md);color:var(--cat-angle);font-size:var(--text-sm)}.roadmap__footer{text-align:center;padding:var(--space-xl) var(--space-lg);border-top:1px solid var(--border-subtle);max-width:1200px;margin:0 auto}.roadmap__footer p{font-size:var(--text-sm);color:var(--text-tertiary)}.roadmap__footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}.roadmap__footer-links a{font-size:var(--text-sm);color:var(--accent-light);text-decoration:none;transition:opacity var(--transition-fast)}.roadmap__footer-links a:hover{opacity:.8}@media(max-width:480px){.roadmap__header{padding:var(--space-xl) var(--space-md) var(--space-lg)}.roadmap__header h1{font-size:var(--text-xl)}.roadmap__content{padding:0 var(--space-md) var(--space-xl)}.roadmap__community,.roadmap__suggest{padding:var(--space-xl) var(--space-md)}.roadmap__footer{padding:var(--space-lg) var(--space-md)}.roadmap__card{padding:var(--space-sm)}}
