/* ---------- Feedback hub (#121): portal What's new, Roadmap, My requests, report form; admin inbox and editors ---------- */
.fb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ember);margin-left:6px;vertical-align:middle;box-shadow:0 0 0 2px var(--card)}
.fb-dot[hidden]{display:none}
.fb-navlink{font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center}
.fb-navlink:hover{color:var(--ink)}
a.pill.fb-pill{text-decoration:none;color:var(--ink)} a.pill.fb-pill:hover{background:var(--card)}
.fb-top{padding:32px 0 8px}
.fb-headrow{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-top:6px}
.fb-actions{display:flex;gap:8px;flex-wrap:wrap}
.fb .tabs{margin-top:20px}
.fb .tabs a{display:inline-flex;align-items:center;gap:6px}
.fb-body{padding-bottom:72px;display:flex;flex-direction:column;gap:16px}
.fb-intro{max-width:720px}
.fb-rich p+p,.fb-rich ul{margin-top:10px} .fb-rich ul{padding-left:20px} .fb-rich li+li{margin-top:4px}
.fb-rich{font-size:15px;color:var(--ink);margin-top:10px;overflow-wrap:anywhere}
.fb-entry h2{margin-top:10px}
.fb-entry-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.fb-asked{margin-top:8px;font-size:14px;font-weight:500;color:var(--t-ok)}
/* vote box: up, score, down */
.fb-vote{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;width:44px;padding:4px 0;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.fb-vote button{width:36px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--ink-3)}
.fb-vote button:hover{background:var(--hover);color:var(--ink)}
.fb-vote button.on{color:var(--on-ink);background:var(--ink)}
.fb-vote b{font-size:14px;font-weight:600;line-height:1.2}
.fb-vote.sm{width:38px} .fb-vote.sm button{width:32px;height:24px}
.fb-vote.lg{width:52px} .fb-vote.lg b{font-size:17px}
/* roadmap */
.fb-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.fb-col{margin:0;border-radius:20px;background:var(--paper-2);border:1px solid var(--line);padding:16px}
.fb-col h2{font-size:16px;letter-spacing:-.01em;display:flex;gap:6px;align-items:baseline}
.fb-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:12px}
.fb-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.fb-card-b{flex:1;min-width:0}
.fb-card-b>a{font-weight:600;font-size:15px;text-decoration:none;color:var(--ink);overflow-wrap:anywhere}
.fb-card-b>a:hover{text-decoration:underline;text-underline-offset:3px}
.fb-meta{display:flex;gap:6px 8px;flex-wrap:wrap;align-items:center;margin-top:6px;font-size:12.5px}
.fb-list{list-style:none;display:flex;flex-direction:column;margin-top:8px}
.fb-list>li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line-2)}
.fb-list>li:first-child{border-top:0}
.fb-ex{font-size:14px;color:var(--ink-2);margin-top:4px;overflow-wrap:anywhere}
.fb-mine>li{padding:14px 10px;align-items:center}
.fb-score{flex:none;min-width:36px;text-align:center;font-weight:600;font-size:14px;padding:4px 8px;border-radius:10px;background:var(--paper-2)}
.tag.fb-pend{background:transparent;border:1px dashed currentColor;color:var(--ink-3)}
/* #323: roadmap toolbar, caps and Show more, results list, phone tabs */
.fb-rm-bar{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}
.fb-rm-q{position:relative;flex:1 1 260px;max-width:420px}
.fb-rm-q svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.fb-rm-q input{padding-left:38px;min-height:42px;border-radius:999px}
.fb-rm-q input::-webkit-search-cancel-button{cursor:pointer}
.fb-rm-chips{margin:0}
.fb-rm-chips .chip{min-height:36px;padding:0 15px;font-size:14px;display:inline-flex;align-items:center}
.fb-rm-chips .chip:hover:not(.on){background:var(--hover)}
.fb-rm-sort{display:flex;align-items:center;gap:8px;margin-left:auto}
.fb-rm-sort label{margin:0;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.fb-rm-sort select{width:auto;min-height:42px;padding-right:32px}
.fb-rm-count{font-size:13px;color:var(--ink-2);margin-top:-6px;font-variant-numeric:tabular-nums}
#fb-rm-board{display:flex;flex-direction:column;gap:16px}
.fb-board{display:flex;flex-direction:column;gap:16px}
.fb-rm-tabs{display:none}
.fb-more{display:inline-flex;align-items:center;justify-content:center;min-height:36px;margin-top:12px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none}
.fb-more:hover{background:var(--hover)}
.fb-col .fb-more{width:100%}
.fb-col .fb-more+.fb-more{margin-top:8px}
.fb-left{margin-left:10px;font-size:13px;font-variant-numeric:tabular-nums}
.fb-results{display:flex;flex-direction:column;gap:16px}
.fb-group h2,.fb-open h2{display:flex;gap:6px;align-items:baseline}
.fb-clear{margin:0}
.fb-vote b{font-variant-numeric:tabular-nums}
/* one post */
.fb-crumb{margin-top:28px}
.fb-post{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;align-items:start}
.fb-post-head{display:flex;gap:16px;align-items:flex-start}
.fb-post h1{font-size:clamp(24px,3vw,32px);letter-spacing:-.03em;overflow-wrap:anywhere}
.fb-note{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--warm-bg);border:1px solid var(--warm-line);font-size:14px}
.fb-ctx{margin-top:16px;font-size:14px} .fb-ctx summary{font-size:14px} .fb-ctx .kv{font-size:13.5px}
.fb-evs{list-style:none;display:flex;flex-direction:column;margin-top:10px}
.fb-ev{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line-2);font-size:14.5px}
.fb-ev:first-child{border-top:0}
.fb-ev .av{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--avatar);font-weight:600;font-size:13px}
.fb-ev.status{align-items:center;color:var(--ink-2)} .fb-ev.status b{font-weight:600;color:var(--ink)} .fb-ev.status .st{margin:0 11px}
.fb-ev p{margin-top:2px;white-space:pre-wrap;overflow-wrap:anywhere}
.fb-who{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13.5px}
.fb-timeline,.fb-open{margin-top:0}
.fb-cform{margin-top:14px;border-top:1px solid var(--line-2);padding-top:6px}
.fb-cform textarea{min-height:84px}
.fb-empty .fb-actions{margin-top:16px}
/* report form */
.fbdlg{width:min(620px,100% - 24px);max-height:calc(100dvh - 24px);margin:auto;border:0;border-radius:24px;padding:22px 24px;background:var(--card);color:var(--ink);box-shadow:var(--shadow-win)}
.fbdlg::backdrop{background:var(--scrim);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.fbdlg-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.fb-seg{border:0;display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.fb-seg label{margin:0;display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer}
.fb-seg label:has(input:checked){background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.fb-seg input{width:16px;height:16px;margin:0;accent-color:var(--ink)}
.fb-seg label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:3px}
.fb-two{align-items:flex-start} .fb-two>div{flex:1;min-width:180px}
.fbdlg textarea{min-height:110px}
.fbdlg input[type=file]{padding:8px}
.fb-warn{margin-top:8px;font-size:13px;padding:10px 12px;border-radius:12px;background:var(--t-amb-bg);color:var(--t-amb)}
.fb-ugc{margin-top:14px;font-size:12.5px;color:var(--ink-2)} .fb-ugc a{color:var(--ink);font-weight:500}
.fbdlg-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
/* admin */
.fba-chips{margin:0}
/* #323: inbox search and sort */
.fba-q{flex:1 1 240px;max-width:340px} .ka .toolbar .fba-q input{max-width:none}
.fba-sort{display:flex;align-items:center;gap:8px;margin-left:auto}
.fba-sort label{margin:0;font-size:13.5px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.fba-sort select{width:auto}
.fba-count{font-size:13px;color:var(--ink-2);margin:-6px 0 10px;font-variant-numeric:tabular-nums}
.fba-title b{display:block;overflow-wrap:anywhere}
.fba-title .dim{font-size:13px}
.ctable tr[data-fb]{cursor:pointer} .ctable tr[data-fb]:hover td,.ctable tr[data-fb]:focus-visible td{background:var(--hover)}
.fba-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;align-items:start}
.fba-grid>div{display:flex;flex-direction:column;gap:16px;min-width:0}
.fba-grid .card textarea{min-height:120px}
.fba-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.fba-cmt{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.fba-types{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.fba-posts{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-height:240px;overflow:auto;padding:8px 10px;border:1px solid var(--line);border-radius:12px}
.fba-posts label{margin:0;font-weight:400;color:var(--ink);display:flex;gap:8px;align-items:flex-start}
.fba-types input,.fba-posts input{width:16px;height:16px;margin-top:3px;flex:none;accent-color:var(--ink)}
/* #153: Claude spend card, duplicate suggestion, decline, the original words, More actions */
.fba-ai{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.fba-ai>div:first-child{flex:1;min-width:240px}
.fba-ai h2{font-size:17px}

.fba-dup{border-color:var(--ink)}
.fba-dup p{margin:0}
.fba-decline{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.fba-decline .flex input{flex:1;min-width:200px}
.fba-orig{margin-top:12px;font-size:14px}
.fba-orig summary{cursor:pointer;font-weight:600}
.fba-orig .fb-rich{margin-top:6px}
.fba-more summary{cursor:pointer;font-weight:600}
.fba-more .flex select{flex:1;min-width:180px}
.fba-st{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
@media (max-width:860px){.fb-cols{grid-template-columns:1fr}.fb-rm-sort{margin-left:0}.fb-post,.fba-grid{grid-template-columns:1fr}}
@media (max-width:600px){.fbdlg{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.fb-headrow{align-items:flex-start}.fb-post-head{gap:12px}}
/* #323: phones stack the toolbar and show the columns as tabs, each with the same caps */
@media (max-width:640px){
  .fb-top .glow{left:0;right:0}   /* the header glow ran 4px past a 390 px screen */
  .fb-rm-q{flex-basis:100%;max-width:none}
  .fb-rm-sort{flex:1 1 100%} .fb-rm-sort select{flex:1}
  .fb-rm-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:-4px;scrollbar-width:none}
  .fb-rm-tabs button{flex:1 0 auto;min-height:44px;padding:0 10px;font-size:14px;font-weight:500;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
  .fb-rm-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
  .fb-board .fb-pane{display:none}
  .fb-board[data-tab="planned"] [data-col="planned"],.fb-board[data-tab="progress"] [data-col="progress"],.fb-board[data-tab="shipped"] [data-col="shipped"],.fb-board[data-tab="open"] [data-col="open"]{display:block}
  .fb-col h2,.fb-open>h2{display:none}
  .fb-col{padding:12px}
}
/* ---------- end feedback hub ---------- */
