.ff-file-picker {
  position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px;
  width:100%; min-width:0; margin-top:7px; padding:8px;
  border:1px solid var(--bo-line,#ddd5c9); border-radius:var(--ui-radius,10px);
  background:var(--bo-surface,#fffdf8); color:var(--bo-ink,#302b25);
  font-family:inherit; line-height:1.4; font-weight:400; text-transform:none; letter-spacing:normal;
}
.ff-file-picker input[type="file"].ff-file-picker__input {
  position:absolute!important; width:1px!important; height:1px!important; min-width:0!important; min-height:0!important;
  padding:0!important; margin:0!important; border:0!important; overflow:hidden; clip-path:inset(50%); opacity:0; pointer-events:none;
}
.ff-file-picker .ff-file-picker__choose {
  display:inline-flex; flex:none; align-items:center; justify-content:center; gap:8px;
  min-height:38px; margin:0; padding:9px 12px; border:1px solid var(--bo-line,#ddd5c9); border-radius:var(--ui-radius-small,7px);
  background:var(--bo-bg,#f4f0e8); color:inherit; font-family:inherit; font-size:13px; font-weight:600; line-height:1.3;
  cursor:pointer; white-space:nowrap; transition:background .15s,border-color .15s;
}
.ff-file-picker__icon { display:flex; width:18px; height:18px; color:var(--bo-accent,#b92b32); }
.ff-file-picker__icon svg,.ff-file-picker__clear svg { display:block; width:100%; height:100%; }
.ff-file-picker .ff-file-picker__choose:hover:not(:disabled) { background:var(--ui-raised,#eee5d9); border-color:var(--bo-accent,#b92b32); }
.ff-file-picker__name { flex:1 1 120px; min-width:0; overflow-wrap:anywhere; color:var(--bo-muted,#766f66); font-size:12px; }
.ff-file-picker.is-selected .ff-file-picker__name { color:inherit; }
.ff-file-picker .ff-file-picker__clear {
  flex:none; display:grid; place-items:center; width:32px; height:32px; min-height:32px; margin:0; padding:7px;
  color:var(--bo-muted,#766f66); border:0; border-radius:var(--ui-radius-small,6px); background:transparent; cursor:pointer;
}
.ff-file-picker .ff-file-picker__clear[hidden] { display:none; }
.ff-file-picker .ff-file-picker__clear:hover:not(:disabled) { color:var(--bo-accent,#b92b32); background:#f9ebe7; }
.ff-file-picker button:focus-visible { outline:2px solid var(--bo-accent,#b92b32); outline-offset:3px; }
.ff-file-picker:has(.ff-file-picker__input:focus-visible) { outline:2px solid var(--bo-accent,#b92b32); outline-offset:2px; }
.ff-file-picker.is-disabled { opacity:.65; }
.ff-file-picker button:disabled { cursor:default; }
.task-check-upload > button[type="submit"] { min-height:56px; }
@media(max-width:520px) {
  .task-check-upload > button[type="submit"] { min-height:42px; }
  .ff-file-picker { gap:8px; }
  .ff-file-picker__name { flex-basis:100%; order:3; }
  .ff-file-picker .ff-file-picker__clear { margin-left:auto; }
}
.ff-file-picker .ff-file-picker__camera[hidden] { display:none; }
.ff-camera { width:min(640px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow:auto; margin:auto; padding:24px; border:1px solid var(--bo-line,#ddd5c9); border-radius:var(--ui-radius,16px); background:var(--bo-surface,#fffdf8); color:var(--bo-ink,#302b25); }
.ff-camera::backdrop { background:rgba(25,22,20,.72); }
.ff-camera h2 { margin:0 0 16px; font-size:24px; }
.ff-camera video,.ff-camera canvas { display:block; width:100%; max-height:55dvh; aspect-ratio:4/3; object-fit:contain; border-radius:var(--ui-radius,10px); background:#201d1a; }
.ff-camera [hidden] { display:none!important; }
.ff-camera p { margin:16px 0; font-size:14px; line-height:1.5; }
.ff-camera__actions { display:flex; flex-wrap:wrap; gap:10px; }
.ff-camera__actions .button { min-height:44px; }
@media(max-width:520px) { .ff-camera { padding:16px; } .ff-camera__actions .button { flex:1 1 auto; } }
.ff-file-picker__icon .ti,.ff-file-picker__clear .ti{font-size:18px!important}
