.roadmap-head{padding:70px 0 22px;position:relative;overflow:hidden}.roadmap-head__row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}.roadmap-head h1{font-size:var(--oasr-text-h1);margin:14px 0;letter-spacing:-.03em}.roadmap-head .lead{color:var(--oasr-text-muted);font-size:var(--oasr-text-lg);line-height:1.55;margin:0;max-width:56ch}.roadmap-body{padding-top:18px}.shipped-chip{display:inline-flex;align-items:center;gap:9px;margin-bottom:6px;max-width:340px;padding:8px 14px;border-radius:var(--oasr-radius-full);border:1px solid color-mix(in oklab,var(--oasr-success) 40%,var(--oasr-border));background:color-mix(in oklab,var(--oasr-success) 8%,transparent);cursor:pointer;font-family:var(--oasr-font-mono);font-size:.76rem;color:var(--oasr-text-muted);text-align:left;transition:border-color var(--oasr-dur-base)}.shipped-chip:hover{border-color:var(--oasr-success)}.shipped-chip .tick{color:var(--oasr-success);font-weight:700;flex:none}.shipped-chip>span{white-space:nowrap;flex:none}.shipped-chip b{color:var(--oasr-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipped-chip[hidden]{display:none}.auth-chip{display:inline-flex;align-items:center;gap:9px;padding:5px 12px 5px 6px;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-border);background:var(--oasr-bg-elevated);cursor:pointer;transition:border-color var(--oasr-dur-base);font-family:var(--oasr-font-sans)}.auth-chip:hover{border-color:var(--oasr-border-strong)}.auth-chip .avatar,.request-meta .avatar{border-radius:50%;display:grid;place-items:center;font-family:var(--oasr-font-mono);font-weight:700;color:#fff}.auth-chip .avatar{width:26px;height:26px;font-size:.72rem}.auth-chip .handle{color:var(--oasr-text);font-size:.86rem;font-weight:500}.auth-menu{position:fixed;top:64px;right:max(22px,calc((100vw - var(--oasr-container)) / 2 + 40px));z-index:var(--oasr-z-overlay);background:var(--oasr-bg-elevated);border:1px solid var(--oasr-border);border-radius:var(--oasr-radius-lg);box-shadow:var(--oasr-shadow-lg);padding:7px;min-width:220px;display:none}.auth-menu.open{display:block}.auth-menu .who{padding:10px 12px 12px;border-bottom:1px solid var(--oasr-border-subtle);margin-bottom:6px}.auth-menu .who b{display:block;font-size:.95rem}.auth-menu .who span{font-family:var(--oasr-font-mono);font-size:.78rem;color:var(--oasr-text-faint)}.auth-menu button{width:100%;text-align:left;border:0;background:transparent;cursor:pointer;padding:9px 12px;border-radius:var(--oasr-radius-sm);font-family:var(--oasr-font-sans);font-size:.9rem;color:var(--oasr-text-muted);transition:all var(--oasr-dur-base);display:flex;align-items:center;gap:9px}.auth-menu button:hover{background:var(--oasr-bg-hover);color:var(--oasr-text)}.gh-btn{display:inline-flex;align-items:center;gap:9px}.gh-btn svg{width:18px;height:18px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 18px;flex-wrap:wrap}.toolbar__right,.filter-pills{display:flex;gap:8px;flex-wrap:wrap}.toolbar__right{align-items:center;gap:10px}.filter-pills button{font-family:var(--oasr-font-mono);font-size:.78rem;padding:8px 14px;cursor:pointer;white-space:nowrap;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-border);background:var(--oasr-bg-elevated);color:var(--oasr-text-muted);transition:all var(--oasr-dur-base)}.filter-pills button:hover{color:var(--oasr-text)}.filter-pills button.active{border-color:var(--oasr-accent);color:var(--oasr-accent);background:var(--oasr-accent-bg)}.search-box{display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;width:210px;border:1px solid var(--oasr-border);border-radius:var(--oasr-radius-full);background:var(--oasr-bg-elevated);transition:border-color var(--oasr-dur-base),box-shadow var(--oasr-dur-base)}.search-box:focus-within{border-color:var(--oasr-brand);box-shadow:var(--oasr-ring)}.search-box svg{width:15px;height:15px;color:var(--oasr-text-faint);flex:none}.search-box input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-family:var(--oasr-font-sans);font-size:.88rem;color:var(--oasr-text)}.search-box input::placeholder{color:var(--oasr-text-faint)}.seg-sm{display:inline-flex;padding:4px;gap:3px;border-radius:var(--oasr-radius-md);border:1px solid var(--oasr-border);background:var(--oasr-bg-subtle)}.seg-sm button{border:0;cursor:pointer;font-family:var(--oasr-font-sans);font-size:.82rem;font-weight:500;color:var(--oasr-text-muted);background:transparent;padding:6px 13px;border-radius:var(--oasr-radius-sm);transition:all var(--oasr-dur-base)}.seg-sm button[aria-selected=true]{background:var(--oasr-bg-elevated);color:var(--oasr-text);box-shadow:var(--oasr-shadow-sm)}.mine-row{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:10px 16px;border:1px dashed var(--oasr-border-strong);border-radius:var(--oasr-radius-md);background:var(--oasr-bg-subtle);font-family:var(--oasr-font-mono);font-size:.8rem;color:var(--oasr-text-muted)}.mine-row[hidden]{display:none}.mine-row button{margin-left:auto;border:0;background:transparent;cursor:pointer;white-space:nowrap;font-family:var(--oasr-font-mono);font-size:.78rem;color:var(--oasr-brand)}.mine-row button:hover{text-decoration:underline}.request-list{display:flex;flex-direction:column;gap:12px}.request-card{display:grid;grid-template-columns:auto auto 1fr;gap:20px;align-items:start;background:var(--oasr-bg-elevated);border:1px solid var(--oasr-border);border-radius:var(--oasr-radius-lg);padding:20px 24px;transition:border-color var(--oasr-dur-base),box-shadow var(--oasr-dur-base),transform var(--oasr-dur-base)}.request-card:hover{border-color:var(--oasr-border-strong);box-shadow:var(--oasr-shadow-md)}.request-card.just-voted{border-color:var(--oasr-accent)}.request-card.entering{animation:requestIn .45s var(--oasr-ease-out)}@keyframes requestIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.request-rank{font-family:var(--oasr-font-mono);font-size:.82rem;font-weight:600;color:var(--oasr-text-faint);width:26px;text-align:right;padding-top:12px;letter-spacing:-.02em}.request-card.top .request-rank{color:var(--oasr-accent)}.vote{display:flex;flex-direction:column;align-items:center;gap:3px;width:62px;padding:11px 0;border-radius:var(--oasr-radius-md);border:1px solid var(--oasr-border);background:var(--oasr-bg-subtle);cursor:pointer;transition:all var(--oasr-dur-base);user-select:none}.vote:hover,.vote.voted{border-color:var(--oasr-brand);background:var(--oasr-brand-bg)}.vote svg{width:18px;height:18px;color:var(--oasr-text-muted);transition:color var(--oasr-dur-base),transform var(--oasr-dur-fast)}.vote .count{font-family:var(--oasr-font-mono);font-size:1.02rem;font-weight:700;color:var(--oasr-text);line-height:1}.vote:hover svg,.vote.voted svg{color:var(--oasr-brand)}.vote.voted svg{transform:translateY(-1px)}.vote.voted .count{color:var(--oasr-brand)}.request-body{min-width:0}.request-body h3{font-size:1.18rem;margin:1px 0 7px;letter-spacing:-.02em}.request-body p{color:var(--oasr-text-muted);font-size:.95rem;margin:0 0 14px;line-height:1.55}.request-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.request-meta .who{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--oasr-text-faint);white-space:nowrap}.request-meta .who .avatar{width:22px;height:22px;font-size:.6rem}.request-meta .who b{color:var(--oasr-text-muted);font-weight:500}.request-meta .when{font-size:.82rem;color:var(--oasr-text-faint);white-space:nowrap}.cat{font-family:var(--oasr-font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-border);color:var(--oasr-text-muted)}.cat[data-cat=Model]{color:var(--oasr-brand);border-color:var(--oasr-brand-strong);background:var(--oasr-brand-bg)}.cat[data-cat=Feature]{color:var(--oasr-accent);border-color:var(--oasr-accent);background:var(--oasr-accent-bg)}.cat[data-cat=Language]{color:var(--oasr-info);border-color:color-mix(in oklab,var(--oasr-info) 55%,var(--oasr-border));background:color-mix(in oklab,var(--oasr-info) 12%,transparent)}.status{font-family:var(--oasr-font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--oasr-text-faint);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.status .dot{width:7px;height:7px;border-radius:50%;background:var(--oasr-text-faint)}.status[data-s=Planned],.status[data-s=Planned] .dot{color:var(--oasr-brand)}.status[data-s=Planned] .dot{background:var(--oasr-brand)}.status[data-s=Reviewing],.status[data-s=Reviewing] .dot{color:var(--oasr-warn)}.status[data-s=Reviewing] .dot{background:var(--oasr-warn)}.status[data-s=Shipped],.status[data-s=Shipped] .dot{color:var(--oasr-success)}.status[data-s=Shipped] .dot{background:var(--oasr-success)}.note{display:flex;gap:10px;align-items:baseline;margin:0 0 14px;padding:10px 14px;border-radius:var(--oasr-radius-md);background:var(--oasr-brand-bg);border:1px solid color-mix(in oklab,var(--oasr-brand) 22%,transparent);font-size:.88rem;color:var(--oasr-text-muted);line-height:1.5}.note .note-tag{font-family:var(--oasr-font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oasr-brand);font-weight:700;flex:none}.note code,.ship-card code{font-family:var(--oasr-font-mono);font-size:.82em;background:var(--oasr-bg-inset);padding:1px 5px;border-radius:4px}.no-match{display:none;text-align:center;color:var(--oasr-text-faint);padding:50px;font-family:var(--oasr-font-mono);font-size:.9rem}.merged-card{display:flex;align-items:baseline;gap:12px;padding:14px 20px;border:1px dashed var(--oasr-border-strong);border-radius:var(--oasr-radius-md);background:var(--oasr-bg-subtle);font-size:.88rem;color:var(--oasr-text-muted);line-height:1.55}.merged-card .m-tag{font-family:var(--oasr-font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--oasr-text-faint);font-weight:700;flex:none;white-space:nowrap}.merged-card b{color:var(--oasr-text);font-weight:600}.merged-card a{color:var(--oasr-brand);cursor:pointer;text-decoration:none;font-weight:500}.merged-card a:hover{text-decoration:underline}.shipped-sec{margin-top:44px;padding-top:28px;border-top:1px solid var(--oasr-border-subtle)}.shipped-sec[hidden]{display:none}.shipped-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;flex-wrap:wrap}.shipped-head h2{font-size:1.2rem;letter-spacing:-.02em;margin:0;display:flex;align-items:center;gap:9px}.shipped-head h2 .tick{color:var(--oasr-success)}.shipped-head p{margin:0;font-size:.88rem;color:var(--oasr-text-faint)}.ship-list{display:flex;flex-direction:column;gap:8px}.ship-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;padding:14px 20px;border:1px solid var(--oasr-border-subtle);border-radius:var(--oasr-radius-md);background:var(--oasr-bg-subtle)}.ship-card .tick{color:var(--oasr-success);font-weight:700;font-family:var(--oasr-font-mono)}.ship-card h3{font-size:.98rem;margin:0 0 3px;letter-spacing:-.01em}.ship-card .ship-note{font-size:.85rem;color:var(--oasr-text-muted);margin:0;line-height:1.5}.ship-card .ship-votes{font-family:var(--oasr-font-mono);font-size:.78rem;color:var(--oasr-text-faint);white-space:nowrap}.new-request{background:var(--oasr-bg-subtle);border:1px solid var(--oasr-border-subtle);border-radius:var(--oasr-radius-xl);padding:24px 28px 26px;margin-bottom:22px;animation:fadeUp .35s var(--oasr-ease-out)}.new-request[hidden]{display:none}.new-request h2{font-size:1.2rem;letter-spacing:-.02em;margin:0 0 18px}.request-field{margin-bottom:16px}.request-field label{display:block;font-family:var(--oasr-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--oasr-text-faint);margin-bottom:7px}.request-field input[type=text],.request-field textarea{width:100%;font-family:var(--oasr-font-sans);font-size:.95rem;color:var(--oasr-text);background:var(--oasr-bg-inset);border:1px solid var(--oasr-border);border-radius:var(--oasr-radius-md);padding:12px 14px;transition:border-color var(--oasr-dur-base),box-shadow var(--oasr-dur-base)}.request-field textarea{resize:vertical;min-height:84px;line-height:1.5}.request-field input:focus,.request-field textarea:focus{outline:none;border-color:var(--oasr-brand);box-shadow:var(--oasr-ring)}.request-field .hint{font-size:.76rem;color:var(--oasr-text-faint);margin-top:6px}.cat-pick{display:flex;gap:8px;flex-wrap:wrap}.cat-pick button{font-family:var(--oasr-font-mono);font-size:.76rem;padding:8px 14px;cursor:pointer;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-border);background:var(--oasr-bg-elevated);color:var(--oasr-text-muted);transition:all var(--oasr-dur-base)}.cat-pick button[aria-pressed=true]{border-color:var(--oasr-accent);color:var(--oasr-accent);background:var(--oasr-accent-bg)}.request-actions{display:flex;align-items:center;gap:14px;margin-top:6px;flex-wrap:wrap}.request-actions .review-note{font-size:.78rem;color:var(--oasr-text-faint)}.dupes{margin-top:10px;border:1px dashed color-mix(in oklab,var(--oasr-warn) 50%,var(--oasr-border));background:color-mix(in oklab,var(--oasr-warn) 7%,transparent);border-radius:var(--oasr-radius-md);padding:12px 14px}.dupes[hidden]{display:none}.dupes__head{font-family:var(--oasr-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--oasr-warn);margin-bottom:8px}.dupe-row{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:.88rem}.dupe-row b{color:var(--oasr-text);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dupe-row .d-votes{font-family:var(--oasr-font-mono);font-size:.76rem;color:var(--oasr-text-faint);white-space:nowrap}.dupe-row button{margin-left:auto;flex:none;font-family:var(--oasr-font-mono);font-size:.74rem;cursor:pointer;padding:5px 12px;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-brand-strong);background:var(--oasr-brand-bg);color:var(--oasr-brand);transition:all var(--oasr-dur-base)}.dupe-row button:hover{background:var(--oasr-brand);color:#fff}.dupe-row button[disabled]{opacity:.6;cursor:default}.modal-scrim{position:fixed;inset:0;z-index:var(--oasr-z-modal);background:#080d0a8c;backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:24px}.modal-scrim.open{display:flex;animation:scrimIn .2s ease}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:420px;background:var(--oasr-bg-elevated);border:1px solid var(--oasr-border);border-radius:var(--oasr-radius-xl);box-shadow:var(--oasr-shadow-lg);overflow:hidden;animation:requestIn .3s var(--oasr-ease-out)}.modal__top{display:flex;align-items:center;gap:12px;padding:22px 24px;border-bottom:1px solid var(--oasr-border-subtle)}.modal__top svg{width:26px;height:26px;color:var(--oasr-text)}.modal__top b{font-size:1.05rem}.modal__body{padding:24px}.modal__body>p{margin:0 0 18px;color:var(--oasr-text-muted);font-size:.92rem;line-height:1.55}.modal__body b{color:var(--oasr-text)}.perm{list-style:none;margin:0;padding:0}.perm li{display:flex;gap:10px;padding:7px 0;font-size:.88rem;color:var(--oasr-text-muted);align-items:center}.perm li svg{width:16px;height:16px;color:var(--oasr-brand);flex:none}.modal__foot{display:flex;gap:10px;padding:0 24px 18px}.modal__foot .oasr-btn{flex:1;justify-content:center}.oauth-note{padding:0 24px 20px;font-family:var(--oasr-font-mono);font-size:.72rem;color:var(--oasr-text-faint);text-align:center}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%) translateY(20px);z-index:var(--oasr-z-modal);background:var(--oasr-surface-terminal);color:#e9efe9;border:1px solid var(--oasr-border-strong);border-radius:var(--oasr-radius-md);padding:12px 18px;font-family:var(--oasr-font-mono);font-size:.84rem;box-shadow:var(--oasr-shadow-lg);opacity:0;pointer-events:none;transition:all .3s var(--oasr-ease-out)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast .ok{color:var(--oasr-brand)}@keyframes fadeUp{0%{transform:translateY(9px)}to{transform:none}}@media(max-width:860px){.auth-menu{right:22px}.toolbar,.toolbar__right{align-items:stretch}.toolbar__right,.search-box{width:100%}.filter-pills{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.seg-sm{width:100%}.seg-sm button{flex:1}}@media(max-width:720px){.request-card{grid-template-columns:auto 1fr;gap:14px;padding:18px}.request-rank{display:none}.ship-card{grid-template-columns:auto 1fr}.ship-card .ship-votes{grid-column:2}}
