.rev{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.revd{opacity:1!important;transform:none!important}

/* LAYOUT */
.page-wrap{max-width:90%;margin:0 auto;padding:100px 32px 64px}
.page-grid{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start}
@media(max-width:960px){.page-grid{grid-template-columns:1fr}}
@media(max-width:768px){.page-wrap{padding:88px 20px 48px}}

/* CARD */
.card{background:#fff;border:1.5px solid var(--bd);border-radius:var(--rxl);padding:28px;box-shadow:var(--sh)}

/* STATUS BADGE */
.status-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:var(--rf);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.8px}
.sb-planned{background:rgba(0,102,153,.08);color:var(--pd);border:1px solid var(--pm)}
.sb-inprogress{background:rgba(245,158,11,.1);color:#d97706;border:1px solid rgba(245,158,11,.3)}
.sb-done{background:rgba(14,168,112,.08);color:var(--ok);border:1px solid rgba(14,168,112,.25)}
.sb-review{background:rgba(107,72,200,.08);color:#5b21b6;border:1px solid rgba(107,72,200,.2)}
.sb-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}

/* VOTE BLOCK */
.vote-block{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 20px;background:linear-gradient(135deg,var(--pl),var(--s3));border:1.5px solid var(--pm);border-radius:var(--rxl);text-align:center}
.vote-num{font-size:48px;font-weight:900;color:var(--p);letter-spacing:-2px;line-height:1}
.vote-lbl{font-size:12px;color:var(--ink3);font-weight:600}
.vote-btn{display:flex;align-items:center;gap:7px;padding:12px 24px;background:var(--p);color:#fff;border:none;border-radius:var(--rl);font-family:inherit;font-size:14px;font-weight:800;cursor:pointer;transition:all .2s var(--ease);width:100%;justify-content:center}
.vote-btn:hover{background:var(--pd);transform:translateY(-2px)}
.vote-btn.voted{background:var(--ok);border-color:var(--ok)}
.vote-btn i{font-size:18px}

/* REQUEST HEADER */
.req-crumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink4);margin-bottom:18px}
.req-crumb a{color:var(--ink3)}.req-crumb a:hover{color:var(--p)}.req-crumb i{font-size:11px}
.req-title-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.req-h1{font-size:26px;font-weight:900;color:var(--ink);letter-spacing:-.6px;line-height:1.25;flex:1}
.req-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;align-items:center}
.req-meta-item{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink4)}
.req-meta-item i{font-size:14px}
.req-category{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--rf);font-size:12px;font-weight:700;background:var(--s3);color:var(--ink2);border:1px solid var(--bd)}

/* Description */
.req-desc{font-size:15.5px;color:var(--ink2);line-height:1.8;margin-bottom:24px}
.req-problem,.req-solution{background:var(--s2);border:1px solid var(--bd);border-radius:var(--rl);padding:18px 20px;margin-bottom:12px}
.rp-label{font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:1px;color:var(--p);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.rp-label i{font-size:13px}
.rp-text{font-size:14.5px;color:var(--ink2);line-height:1.7}

/* Status timeline */
.timeline{display:flex;flex-direction:column;gap:0;position:relative}
.timeline::before{content:'';position:absolute;left:15px;top:16px;bottom:16px;width:2px;background:var(--bd)}
.tl-item{display:flex;gap:14px;position:relative;padding-bottom:20px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1;box-shadow:0 0 0 4px #fff}
.tl-dot.done{background:var(--ok)}
.tl-dot.active{background:var(--p)}
.tl-dot.future{background:var(--bd)}
.tl-dot i{font-size:14px;color:#fff}
.tl-body{padding-top:4px;flex:1}
.tl-status{font-size:13.5px;font-weight:800;color:var(--ink);margin-bottom:2px}
.tl-date{font-size:12px;color:var(--ink4)}
.tl-note{font-size:13px;color:var(--ink3);margin-top:5px;line-height:1.55}

/* COMMENTS */
.comments-section{margin-top:32px}
.cs-header{font-size:17px;font-weight:900;color:var(--ink);margin-bottom:20px;display:flex;align-items:center;gap:8px}
.cs-header i{font-size:20px;color:var(--p)}
.comment-list{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.comment{display:flex;gap:12px}
.comment-av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:#fff;flex-shrink:0}
.comment-bubble{background:#fff;border:1px solid var(--bd);border-radius:0 var(--rxl) var(--rxl) var(--rxl);padding:14px 18px;flex:1}
.comment.staff .comment-bubble{background:var(--pl);border-color:var(--pm)}
.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.comment-name{font-size:13.5px;font-weight:800;color:var(--ink)}
.comment-staff-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:var(--p);color:#fff;border-radius:var(--rf);font-size:10px;font-weight:800}
.comment-date{font-size:12px;color:var(--ink4);margin-left:auto}
.comment-text{font-size:14px;color:var(--ink2);line-height:1.7}

/* Comment form */
.comment-form{background:#fff;border:1.5px solid var(--bd);border-radius:var(--rxl);padding:20px}
.cf-title{font-size:14px;font-weight:800;color:var(--ink);margin-bottom:14px}
.cf-input{width:100%;padding:12px 14px;border:1.5px solid var(--bd);border-radius:var(--rl);font-family:inherit;font-size:14px;color:var(--ink);background:var(--s2);resize:vertical;min-height:90px;transition:border .15s}
.cf-input:focus{outline:none;border-color:var(--p);background:#fff}
.cf-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;flex-wrap:wrap;gap:8px}
.cf-hint{font-size:12px;color:var(--ink4)}

/* SIDEBAR */
.req-sidebar{display:flex;flex-direction:column;gap:18px}
.scard{background:#fff;border:1.5px solid var(--bd);border-radius:var(--rxl);padding:22px;box-shadow:var(--sh)}
.sc-title{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink4);margin-bottom:14px;display:flex;align-items:center;gap:6px}
.sc-title i{font-size:14px;color:var(--p)}
.info-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--bd);font-size:13.5px}
.info-row:last-child{border-bottom:none;padding-bottom:0}
.ir-key{color:var(--ink3)}
.ir-val{font-weight:700;color:var(--ink)}
.supporter-list{display:flex;flex-wrap:wrap;gap:6px}
.supporter-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff;border:2px solid #fff;cursor:pointer;transition:transform .15s}
.supporter-av:hover{transform:scale(1.15)}
.related-req{display:flex;flex-direction:column;gap:8px}
.rr-item{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:var(--r);background:var(--s2);border:1px solid var(--bd);text-decoration:none;transition:all .15s}
.rr-item:hover{border-color:var(--pm);background:var(--pl)}
.rr-votes{display:flex;align-items:center;gap:3px;font-size:11.5px;font-weight:800;color:var(--p);flex-shrink:0}
.rr-votes i{font-size:13px}
.rr-title{font-size:13px;font-weight:600;color:var(--ink);line-height:1.4}

.sidebar-req{display:flex;flex-direction:column;gap:0px}
.sidebar-req .srr-item{display:flex;align-items:flex-start;gap:10px;padding:5px;border-radius:var(--r);text-decoration:none;transition:all .15s}
.sidebar-req .srr-item:hover{border-color:var(--pm);background:var(--pl)}
.sidebar-req .srr-counts{align-items:center;font-size:11.5px;font-weight:800;color:var(--p);flex-shrink:0;border-radius: 30px;width: 20px;text-align: center;height: 20px;color: #000;display: block;border: 1px solid #ccc;}
.sidebar-req .srr-counts i{font-size:13px}
.sidebar-req .srr-title{font-size:13px;color:var(--ink);line-height:1.4}
.bg-user-1{background:linear-gradient(135deg,var(--p),var(--ac))}
.bg-user-2{background:linear-gradient(135deg,#0e8f76,#14b090)}
.bg-user-3{background:linear-gradient(135deg,#6b48c8,#8a64d4)}
.bg-user-4{background:linear-gradient(135deg,#c2457a,#d45c8e)}
.bg-user-5{background:linear-gradient(135deg,#e07520,#f0943a)}
.bg-user-6{background:linear-gradient(135deg,#1098ad,#14b8cc)}
.bg-user-7{background:linear-gradient(135deg,#06beb6,#48b1bf)}
.bg-user-last{background:var(--s3);color:var(--ink3);font-size:11px}
.bg-user-8{background:linear-gradient(135deg,#ff6b6b,#ff8e8e)}
.bg-user-9{background:linear-gradient(135deg,#4e54c8,#8f94fb)}
.bg-user-10{background:linear-gradient(135deg,#11998e,#38ef7d)}
.bg-user-11{background:linear-gradient(135deg,#fc466b,#3f5efb)}
.bg-user-12{background:linear-gradient(135deg,#f7971e,#ffd200)}
.bg-user-13{background:linear-gradient(135deg,#00c6ff,#0072ff)}
.bg-user-14{background:linear-gradient(135deg,#7f00ff,#e100ff)}
.bg-user-15{background:linear-gradient(135deg,#ff9966,#ff5e62)}
.bg-user-16{background:linear-gradient(135deg,#56ab2f,#a8e063)}
.bg-user-17{background:linear-gradient(135deg,#614385,#516395)}
.bg-user-18{background:linear-gradient(135deg,#ee0979,#ff6a00)}
.bg-user-19{background:linear-gradient(135deg,#36d1dc,#5b86e5)}
.bg-user-20{background:linear-gradient(135deg,#834d9b,#d04ed6)}
.bg-user-21{background:linear-gradient(135deg,#ff512f,#dd2476)}
.bg-user-22{background:linear-gradient(135deg,#1d976c,#93f9b9)}
.bg-user-23{background:linear-gradient(135deg,#355c7d,#6c5b7b)}
.bg-user-24{background:linear-gradient(135deg,#ff9a9e,#fad0c4)}
.bg-user-25{background:linear-gradient(135deg,#2193b0,#6dd5ed)}
.bg-user-26{background:linear-gradient(135deg,#cc2b5e,#753a88)}
.bg-user-27{background:linear-gradient(135deg,#42275a,#734b6d)}
.bg-user-28{background:linear-gradient(135deg,#bdc3c7,#2c3e50)}
.bg-user-29{background:linear-gradient(135deg,#de6262,#ffb88c)}
.bg-user-30{background:linear-gradient(135deg,#06beb6,#48b1bf)}
.bg-user-31{background:linear-gradient(135deg,#eb3349,#f45c43)}
.bg-user-32{background:linear-gradient(135deg,#5f2c82,#49a09d)}
.bg-user-33{background:linear-gradient(135deg,#3a1c71,#d76d77)}
.bg-user-34{background:linear-gradient(135deg,#ff4b1f,#ff9068)}
.bg-user-35{background:linear-gradient(135deg,#134e5e,#71b280)}