.fr-workspace { display:grid; gap:24px; }
.idea-list { display:grid; gap:20px; }
.idea-card { border-top:1px solid var(--line); padding:20px 0; overflow-wrap:anywhere; }
.idea-card-heading { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.idea-card-heading h3 { margin:0; font:24px var(--serif); }
.idea-card time,.idea-attachments small,.idea-upload-list small { color:var(--muted); font-size:12px; }
.idea-description { white-space:pre-wrap; line-height:1.7; }
.idea-attachments { display:flex; flex-wrap:wrap; gap:12px; }
.idea-attachments a { padding:10px; border:1px solid var(--line); }
.idea-delivery { color:var(--muted); font-size:13px; }
.idea-upload-list > div { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.idea-sender { padding:12px; background:var(--cream); line-height:1.6; overflow-wrap:anywhere; }
.idea-dialog textarea { resize:vertical; min-height:80px; }
.idea-dialog textarea[name=description] { min-height:220px; }
.fr-workspace .page-head { margin:0; gap:20px; flex-wrap:wrap; }
.fr-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); overflow-x:auto; }
.fr-tabs a { border:0; border-bottom:3px solid transparent; padding:14px 18px; background:transparent; color:var(--muted); white-space:nowrap; text-decoration:none; cursor:pointer; }
.fr-tabs a:hover { color:var(--walnut); background:var(--white); }
.fr-tabs .active { border-color:var(--walnut); color:var(--walnut); font-weight:700; }
.fr-panel { min-width:0; padding:var(--module-padding); background:var(--white); border:1px solid var(--module-border); box-shadow:var(--module-shadow); }
.fr-list-heading { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.fr-list-heading h3 { font:26px var(--serif); margin:0; }
.fr-list-heading span { color:var(--muted); font-size:12px; }
.fr-list-heading > form { margin-left:auto; }
.fr-panel form[data-fr-action] { margin-top:0; }
.fr-table-scroll { overflow-x:auto; scrollbar-gutter:stable; }
.fr-table { min-width:880px; width:100%; }
.fr-table th,.fr-table td { font-size:13px; vertical-align:top; }
.fr-table th .text-btn { font-size:inherit; text-align:left; }
.fr-description { width:40%; min-width:270px; max-width:540px; overflow-wrap:anywhere; }
.fr-description strong { font-size:14px; }
.fr-description p { white-space:pre-wrap; color:var(--muted); line-height:1.6; margin:8px 0; }
.fr-status { display:inline-block; padding:7px 9px; border:1px solid var(--line); color:var(--walnut); white-space:nowrap; }
.fr-in_progress { border-color:var(--walnut); }
.fr-live { color:var(--meadow); border-color:var(--meadow); }
.fr-rejected { color:var(--red); border-color:var(--red); }
.fr-status-action { display:block; margin-top:8px; }
.fr-vote { min-width:76px; min-height:58px; display:grid; gap:4px; justify-items:center; }
.fr-vote span { font-weight:700; }
.fr-vote small { font-size:11px; }
.fr-voted { border-color:var(--walnut); color:var(--walnut); background:var(--cream); }
.fr-actions { display:flex; gap:12px; }
.fr-delete { color:var(--red); }
.fr-danger { background:var(--red); }
.fr-error { color:var(--red); border:1px solid var(--red); padding:16px; margin-bottom:16px; }
.fr-fields { border:0; padding:0; margin:0; min-width:0; }
.fr-images { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.fr-images img,.fr-upload-preview img { object-fit:cover; border:1px solid var(--line); }
.fr-upload-preview { display:grid; gap:12px; }
.fr-upload-preview > div { display:grid; grid-template-columns:90px minmax(0,1fr) auto; align-items:center; gap:12px; overflow-wrap:anywhere; }
.fr-dialog footer { position:sticky; bottom:-28px; padding:14px 0; background:var(--white); }
.fr-dialog button:disabled { opacity:.6; cursor:wait; }
.fr-workspace button:focus-visible,.fr-tabs a:focus-visible,.fr-dialog button:focus-visible,.fr-images a:focus-visible { outline:2px solid var(--walnut); outline-offset:3px; }
@media(max-width:600px) { .fr-panel { padding:16px; }.fr-tabs a { padding:14px 12px; }.fr-workspace .page-head h2 { font-size:32px; }.fr-list-heading { flex-wrap:wrap; gap:10px; }.fr-upload-preview > div { grid-template-columns:90px minmax(0,1fr); }.fr-upload-preview button { grid-column:2; justify-self:start; }.fr-dialog footer { bottom:-18px; } }
