/* Замечания: лаконичный ввод, активные правки и отдельная история готовых. */
.fb{--fb-open:#9ABCF5;--fb-working:var(--amber);--fb-done:var(--green);--fb-duration:320ms;--fb-easing:cubic-bezier(.22,1,.36,1);padding:24px;margin-top:20px;display:grid;gap:18px}
.fb-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.digital-workspace .fb h2{font-size:18px;font-weight:600;margin:0}
.fb svg{width:18px;height:18px;flex:none}.fb button{font-family:var(--font-body)}
.fb-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}
.fb-icon:hover{background:var(--surface-2);color:var(--text)}.fb-icon svg{width:18px;height:18px}
.fb button:focus-visible,.fb-lightbox button:focus-visible,.fb-lightbox a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.fb button:disabled{opacity:.45;cursor:default}
.fb-compose{position:relative;display:grid;gap:12px;border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--bg);transition:border-color .18s,box-shadow .18s}
.fb-compose:focus-within{border-color:color-mix(in srgb,var(--teal) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 8%,transparent)}
.fb-compose textarea{min-height:76px;max-height:320px;resize:vertical;border:0;background:transparent;box-shadow:none;padding:2px;font:400 15px/1.55 var(--font-body);color:var(--text);width:100%}
.fb-compose textarea:focus{outline:none;box-shadow:none}
.fb-compose-actions{display:flex;align-items:center;gap:10px;justify-content:space-between}
.fb-compose-actions button{display:inline-flex;align-items:center;gap:8px;min-height:42px;font-size:14px}
.fb-attach{border:0;padding:8px;color:var(--text-soft)}
.fb-form-error,.fb-error{color:var(--red);font-size:13px;line-height:1.5}.fb-form-error:empty,.fb-error:empty{display:none}
.fb-drop-label{display:none;pointer-events:none;position:absolute;inset:0;align-items:center;justify-content:center;border:2px dashed var(--teal);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 95%,transparent);font-size:16px;color:var(--teal)}
.fb-compose.is-dragover .fb-drop-label{display:flex}
.fb-drafts{display:flex;flex-wrap:wrap;gap:10px}.fb-drafts:empty{display:none}
.fb-draft{position:relative;width:112px;height:80px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2)}
.fb-draft img{width:100%;height:100%;object-fit:cover}.fb-draft-remove{position:absolute;right:4px;top:4px;width:28px;height:28px;display:grid;place-items:center;background:#101518dd;border:0;border-radius:50%;color:#fff;cursor:pointer}
.fb-draft-remove svg{width:16px;height:16px}.fb-upload-progress,.fb-uploaded{position:absolute;bottom:4px;right:4px;background:#101518dd;color:#fff;padding:2px 6px;border-radius:5px;font-size:12px}
.fb-uploaded{color:var(--teal)}.fb-retry{position:absolute;inset:auto 4px 4px;min-height:28px;border:0;border-radius:5px;background:var(--surface);color:var(--red);font-size:12px;cursor:pointer}
.fb-filters{display:flex;gap:5px;width:fit-content;padding:4px;border-radius:var(--radius-sm);background:var(--bg)}
.fb-filters button{display:flex;gap:8px;align-items:center;min-height:38px;padding:7px 12px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;transition:background .18s,color .18s}
.fb-filters button[aria-pressed=true]{background:var(--surface-2);color:var(--text)}
.fb-filters span{font:500 12px var(--font-mono);color:var(--text-muted)}
.fb-list{display:grid;gap:12px}.fb-list[aria-busy=true]:empty{min-height:80px;background:linear-gradient(100deg,var(--surface),var(--surface-2),var(--surface));border-radius:var(--radius);animation:fb-pulse 1s ease-in-out infinite alternate}
.fb-item{--fb-color:var(--fb-open);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:grid;gap:12px;background:var(--bg);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--fb-color) 65%,transparent);transition:background var(--fb-duration),border-color var(--fb-duration),box-shadow var(--fb-duration)}
.fb-item[data-state=in_progress]{--fb-color:var(--fb-working)}.fb-item[data-state=done]{--fb-color:var(--fb-done)}.fb-item.is-done{background:color-mix(in srgb,var(--fb-done) 3%,var(--bg))}.fb-item.is-done .fb-body{color:var(--text-soft)}
.fb-item-head{display:flex;align-items:center;gap:9px;min-width:0}.fb-item-head>b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-avatar{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--surface-2);color:var(--text-soft);font-size:12px;font-weight:600}
.fb-item-head time{font-size:12px;color:var(--text-muted);white-space:nowrap}
.fb-state{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:none;padding:5px 9px;border-radius:7px;font-size:12px;font-weight:600;color:var(--fb-open);background:color-mix(in srgb,var(--fb-open) 10%,transparent);transition:color .24s,background .24s}
.fb-state svg{width:14px;height:14px}
.fb-state.is-in_progress{color:var(--fb-working);background:color-mix(in srgb,var(--fb-working) 10%,transparent)}
.fb-state.is-done{color:var(--fb-done);background:color-mix(in srgb,var(--fb-done) 10%,transparent)}
.fb-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.6}
.fb-item-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:2px}
.fb-text-action{padding:6px 0;border:0;background:none;color:var(--text-muted);font-size:13px;cursor:pointer}.fb-text-action:hover{color:var(--text)}
.fb-item-footer .fb-icon{width:32px;height:32px}
.fb-images{display:flex;flex-wrap:wrap;gap:8px}.fb-images button{width:136px;height:94px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);cursor:zoom-in;transition:border-color .15s,transform .15s}
.fb-images button:hover{border-color:var(--teal);transform:translateY(-2px)}.fb-images img{width:100%;height:100%;object-fit:cover}
.fb-empty{padding:20px 0 12px;display:flex;gap:10px;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px}.fb-empty svg{width:20px;height:20px}
.fb-edit{display:grid;gap:10px}.fb-edit textarea{min-height:100px;resize:vertical;width:100%;font-size:15px}.fb-edit>div{display:flex;gap:8px}.fb-edit button{font-size:14px;min-height:40px}
.fb-lightbox,.fb-confirm{margin:auto;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);box-shadow:var(--shadow);padding:16px}
.fb-lightbox::backdrop,.fb-confirm::backdrop{background:#080b0edb;backdrop-filter:blur(5px)}
.fb-lightbox{width:min(1200px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}
.fb-lightbox header,.fb-lightbox footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.fb-lightbox footer{margin-top:12px}.fb-lightbox a{color:var(--text);text-decoration:none}
.fb-lightbox>img{display:block;width:100%;height:calc(100dvh - 180px);object-fit:contain;background:#0a0c0e;border-radius:8px}
.fb-confirm{width:min(400px,calc(100vw - 32px));padding:24px}.fb-confirm h2{font-size:18px}.fb-confirm p{color:var(--text-muted);font-size:14px;margin-top:10px}.fb-confirm>div{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.fb-danger{background:var(--red)}
.fb-enter{animation:fb-enter .2s ease-out}@keyframes fb-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes fb-pulse{to{opacity:.55}}
@media(max-width:640px){.fb{padding:16px;gap:16px}.fb-item{padding:12px}.fb-item-head{flex-wrap:wrap;gap:7px}.fb-item-head time{order:4;width:100%;padding-left:35px}.fb-compose-actions{gap:6px}.fb-compose-actions button{font-size:14px;padding:10px}.fb-images button{width:calc(50% - 4px);height:96px}.fb-item-head>b{max-width:calc(100% - 146px)}.fb-filters{width:100%}.fb-filters button{flex:1;justify-content:center}.fb-lightbox{padding:10px}.fb-lightbox a{font-size:13px}.fb-lightbox>img{height:calc(100dvh - 170px)}}
@media(prefers-reduced-motion:reduce){.fb *,.fb-lightbox *{animation:none!important;transition:none!important}}

/* Основное действие одно; цвет обозначает этап, а не важность автора. */
.fb-progress-count{font-size:13px;white-space:nowrap;color:var(--text-muted);font-variant-numeric:tabular-nums}.fb-progress-count b{color:var(--fb-done);font-size:18px;font-weight:600}
.fb-progress{display:flex;height:5px;margin-top:-6px;overflow:hidden;border-radius:8px;background:var(--surface-2)}
.fb-progress>span{height:100%;width:0;transition:width .6s var(--fb-easing)}.fb-progress-done{background:var(--fb-done)}.fb-progress-working{background:var(--fb-working);opacity:.7}
.fb-statuses{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:0;margin-left:auto}
.fb-statuses button{line-height:20px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}
.fb-primary{padding:8px 13px;color:var(--text);background:var(--surface-2);border-color:var(--border)!important}.fb-primary:hover{background:color-mix(in srgb,var(--fb-working) 10%,var(--surface-2));border-color:var(--fb-working)!important}
.fb-statuses[data-state=in_progress] .fb-primary{color:var(--fb-done);background:color-mix(in srgb,var(--fb-done) 9%,var(--surface-2));border-color:color-mix(in srgb,var(--fb-done) 30%,var(--border))!important}
.fb-statuses[data-state=in_progress] .fb-primary:hover{background:color-mix(in srgb,var(--fb-done) 17%,var(--surface-2));border-color:var(--fb-done)!important}
.fb-statuses svg{width:16px;height:16px}.fb-secondary{padding:8px 12px;background:transparent;color:var(--text-soft)}.fb-secondary:hover{background:var(--surface-2);color:var(--text)}
.fb-statuses button:active{transform:scale(.96)}
.fb-leaving{overflow:hidden;pointer-events:none;min-height:0}
.fb-saved .fb-state.is-done path{stroke-dasharray:30;stroke-dashoffset:30;animation:fb-check .35s ease forwards}
.fb-item[aria-busy=true] .fb-primary{opacity:.65}.fb-item[aria-busy=true] .fb-primary svg{animation:fb-pulse .65s ease-in-out infinite alternate}
.fb-sync-error{display:flex;align-items:center;gap:12px}.fb-sync-error[hidden]{display:none}
@keyframes fb-check{to{stroke-dashoffset:0}}
@media(max-width:640px){.fb-head{gap:8px}.digital-workspace .fb h2{font-size:16px}.fb-progress-count{font-size:12px}.fb-statuses button{min-height:44px}.fb-secondary{width:auto}.fb-compose textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.fb *{animation:none!important;transition:none!important}}
.digital-workspace .fb-compose-actions>button{width:auto;flex:none}
.fb{scroll-margin-top:90px}

.fb-more{position:relative;margin-right:auto;flex:none}.fb-more summary{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;color:var(--text-muted);cursor:pointer;list-style:none}.fb-more summary::-webkit-details-marker{display:none}.fb-more summary:hover,.fb-more[open] summary{background:var(--surface-2);color:var(--text)}.fb-more summary svg{stroke-width:3}.fb-more summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.fb-more-menu{position:absolute;left:0;bottom:calc(100% + 6px);z-index:3;display:grid;min-width:160px;padding:5px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.fb-more-menu button{padding:10px 12px;min-height:40px;text-align:left;border:0;border-radius:6px;background:transparent;color:var(--text);font-size:14px;cursor:pointer}.fb-more-menu button:hover{background:var(--surface)}.fb-more-menu [data-fb-delete]{color:var(--red)}
