.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:hsl(var(--card));border-radius:var(--radius);border:1px solid hsl(var(--border));width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-md);animation:.3s ease-out slideIn;overflow-y:auto}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:hsl(var(--foreground))}.close-btn{color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:none;padding:.25rem;transition:color .2s}.close-btn:hover{color:hsl(var(--foreground))}.feedback-form{flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.textarea{resize:vertical}.form-actions{justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.error-message{color:hsl(var(--destructive));margin-top:1rem;padding:0 1.5rem;font-size:.9rem}
.roadmap-card{background:hsl(var(--card));border:1px solid hsl(var(--border));cursor:pointer;border-top:4px solid #0000;border-radius:10px;flex-direction:column;gap:.5rem;padding:.875rem;transition:transform .2s,box-shadow .2s;display:flex}.roadmap-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.roadmap-card-header{justify-content:space-between;align-items:center;display:flex}.roadmap-card-type{text-transform:uppercase;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;display:flex}.roadmap-card-type[data-type=bug]{color:hsl(var(--tag-bug))}.roadmap-card-type[data-type=feature-request]{color:hsl(var(--tag-feature))}.roadmap-card-priority{border-radius:9999px;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.roadmap-card-priority[data-priority=P0]{background-color:hsl(var(--priority-p0)/.15);color:hsl(var(--priority-p0))}.roadmap-card-priority[data-priority=P1]{background-color:hsl(var(--priority-p1)/.15);color:hsl(var(--priority-p1))}.roadmap-card-priority[data-priority=P2]{background-color:hsl(var(--priority-p2)/.15);color:hsl(var(--priority-p2))}.roadmap-card-priority[data-priority=P3]{background-color:hsl(var(--priority-p3)/.15);color:hsl(var(--priority-p3))}.roadmap-card-title{color:hsl(var(--foreground));-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.95rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.roadmap-card-description{color:hsl(var(--muted-foreground));-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.roadmap-card-footer{border-top:1px solid hsl(var(--border));justify-content:space-between;align-items:center;margin-top:.25rem;padding-top:.5rem;display:flex}.roadmap-card-status{border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.roadmap-card .vote-control button{justify-content:center;align-items:center;padding:.35rem;display:flex}.roadmap-card .vote-control button svg{width:18px;height:18px}.roadmap-card .vote-control .vote-count{justify-content:center;align-items:center;min-width:1.25rem;font-size:.8rem;display:flex}
.roadmap-container{grid-template-columns:repeat(3,1fr);gap:1.5rem;min-height:400px;display:grid}.roadmap-column{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.roadmap-column-header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted)/.3);align-items:center;gap:.5rem;padding:1rem;display:flex}.roadmap-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.roadmap-column-title{color:hsl(var(--foreground));font-size:.95rem;font-weight:600}.roadmap-column-count{background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:9999px;margin-left:auto;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.roadmap-column-content{flex-direction:column;flex:1;gap:1rem;max-height:calc(100vh - 350px);padding:1rem;display:flex;overflow-y:auto}.roadmap-card-wrapper .feedback-item{height:auto}.roadmap-loading,.roadmap-empty{text-align:center;color:hsl(var(--muted-foreground));padding:2rem 1rem;font-size:.875rem}@media (max-width:1024px){.roadmap-container{grid-template-columns:1fr}.roadmap-column-content{max-height:400px}}@media (max-width:768px){.roadmap-container{gap:1rem}.roadmap-column-header{padding:.75rem}.roadmap-column-content{gap:.75rem;padding:.75rem}}
.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content.announcement-modal{background-color:hsl(var(--card));border-radius:var(--radius);border:1px solid hsl(var(--border));width:100%;max-width:800px;height:90vh;max-height:90vh;box-shadow:var(--shadow-md);flex-direction:column;animation:.3s ease-out slideIn;display:flex}.announcement-reader-header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));z-index:10;padding:1.5rem 2rem}.announcement-reader-scroll{flex:1;padding:2rem;overflow-y:auto}.announcement-meta{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.meta-badge{background:hsl(var(--primary)/.1);color:hsl(var(--primary));border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.meta-date{color:hsl(var(--muted-foreground));align-items:center;gap:.375rem;font-size:.875rem;display:flex}.announcement-title-large{color:hsl(var(--foreground));margin:0;font-size:2rem;font-weight:700;line-height:1.2}.close-modal-btn{color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.close-modal-btn:hover{background:hsl(var(--secondary));color:hsl(var(--foreground))}.announcement-reader-content{color:hsl(var(--foreground)/.9);max-width:none;font-size:1.0625rem;line-height:1.75}.announcement-reader-content p{margin-bottom:1.25rem}.announcement-reader-content img{border-radius:8px;max-width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
